EXWOLF°Q½×°Ï's Archiver

wolf µoªí©ó 2008-1-6 18:36

¦blinux¾Þ§@«Y²Î¤¤¦p¦óºIÀò«Y²Î½Õ¥Î

¨Ï¥ÎLinuxKernelModuleªº¤@¯ë¥Øªº´N¬OÂX®i«Y²Îªº¥\¯à¡A©ÎªÌµ¹¬Y¨Ç¯S®íªº³]³Æ´£¨ÑÅX°Êµ¥µ¥¡C¨ä¹ê§Q¥ÎLinux¤º®Ö¼Ò¶ô§Ú­ÌÁÙ¥i¥H°µ¤@¨Ç¤ñ¸û¡§¶Â«È¡¨ªº¨Æ±¡¡A¨Ò¦p¥Î¨ÓÄdºI«Y²Î½Õ¥Î¡AµM«á¦Û¤v³B²z¡C¼K¼K¡A¦³·N«äªº»¡¡C

¤U­±µ¹¥X¤@­Ó²³æªº¨Ò¤l¡A»¡©ú¤F¨ä°ò¥»ªº¤u§@¹Lµ{¡C
¡@

[table=95%][tr][td][color=#ff0000]¥H¤U¬°¤Þ¥Îªº¤º®e¡G[/color]
¡@¡@#defineMODULE
¡@¡@#define__KERNEL__
¡@¡@#include<linux/module.h>
¡@¡@#include<linux/kernel.h>
¡@¡@#include<asm/unistd.h>
¡@¡@#include<sys/syscall.h>
¡@¡@#include<linux/types.h>
¡@¡@#include<linux/dirent.h>
¡@¡@#include<linux/string.h>
¡@¡@#include<linux/fs.h>
¡@¡@#include<linux/malloc.h>
¡@¡@externvoid*sys_call_table[];/*sys_call_tableisexported,sowecanaccessit*/
¡@¡@int(*orig_mkdir)(constchar*path);/*theoriginalsystemcall*/
¡@¡@inthacked_mkdir(constchar*path)  
¡@¡@{
¡@¡@return0;/*everythingisok,buthenewsystemcall
¡@¡@doesnothing*/
¡@¡@}
¡@¡@intinit_module(void)/*modulesetup*/
¡@¡@{
¡@¡@orig_mkdir=sys_call_table[SYS_mkdir];
¡@¡@sys_call_table[SYS_mkdir]=hacked_mkdir;
¡@¡@return0;
¡@¡@}
¡@¡@voidcleanup_module(void)/*moduleshutdown*/
¡@¡@{
¡@¡@sys_call_table[SYS_mkdir]=orig_mkdir;/*setmkdirsyscalltotheorigal
¡@¡@one*/
¡@¡@}[/td][/tr][/table]
¡@¡@
¤j®a¬Ý¨ì«e­±ªº¥N½X¤F¡A«D±`²³æ¡A§Ú­Ì´N¬O´À´«¤F¤º®Öªº«Y²Î½Õ¥Î¼Æ²Õ¤¤§Ú­ÌÃö¤ßªº«ü°wªº­È¡A«Y²Î½Õ¥Î¦b¤º®Ö¤¤¹ê»Ú´N¬O¤@­Ó¼Æ²Õ¦Cªí«ü°w¹ïÀ³ªº¨ç¼Æ¦Cªí¡C§Ú­Ì³q¹L´À´«§Ú­Ì·Q¡§¶Â¡¨ªº¨ç¼Æªº«ü°w¡A´N¥i¥H¹F¨ì§Ú­Ì¯S©wªº¥Øªº¡C³o­Ó¨Ò¤l¤¤§Ú­Ì´À´«¤F¡§mkdir¡¨³o­Ó¨ç¼Æ¡C³o¼Ë¡A¥Î¤áªºÀ³¥Îµ{§Ç¦pªG½Õ¥Îmkdir«á¡A·í¤º®ÖÅTÀ³ªº®É­Ô¡A¹ê»Ú¤W¬O½Õ¥Î§Ú­Ì¡§¶Â¡¨¤Fªº¨ç¼Æ¡A¦Ó§Ú­Ì¹ê²{ªº¨ç¼ÆùØ­±¬O¤°¤\³£¨S¦³·F¡A©Ò¥H³oùØ·|¾É­P¥Î¤á¹B¦æ ¡§mkdir¡¨±o¤£¨ìµ²ªG¡C³o­Ó¨Ò¤l«Ü²³æ¡A¦ý¬O§Ú­Ì¥i¥H¬Ý¥X¡A¦pªG§Ú­Ì·QºIÀò¤@­Ó«Y²Î½Õ¥Î¡A¨º¤\§Ú­Ì¥u»Ý­n°µ¥H¤Uªº¨Æ±¡¡G [color=#f5fafe][/color] 1¡B¬d§ä¥X·P¿³½ìªº«Y²Î½Õ¥Î¦b«Y²Î¤º®Ö¼Æ²Õ¤¤ªº¤J¤f¦ì¸m¡C¥i¥H°Ñ¬Ýinclude/sys/syscall.h¤å¥ó¡C [color=#f5fafe][/color]
2¡B±N¤º®Ö¤¤­ì¨Óªº½Õ¥Î¨ç¼Æ¹ïÀ³ªº«ü°wsys_call_table[X]«O¯d¤U¨Ó¡C [color=#f5fafe][/color]
3¡B±N§Ú­Ì·sªº°°³yªº«Y²Î¨ç¼Æ«ü°wµ¹sys_call_table[X]¡C

­¶: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.