|
作者:Tesla.Angela
IRP HOOK比较好理解,就是替换驱动的分发函数地址,来实现特定功能。
网上关于IRP HOOK的例子很多,不过都只能用于32位,而且以HOOK键盘、鼠标、NTFS的居多。
下面我给出一个例子能通用于32、64位系统。而且是挂钩DISK.SYS(网上没有类似的例子)。
在主教程里,我说过NTFS等『文件系统驱动』会发IRP给『磁盘驱动』DISK.SYS进行下一步处理。
但DISK.SYS拿到的IRP就不再有文件的概念了,而是磁盘的绝对偏移。
所以对DISK.SYS的IRP_MJ_READ做HOOK,就能起到超强的反上传/反扫描作用(做马做挂的秒懂了吧)。
因为一般的杀毒软件/游戏保护都是使用NtReadFile,或者直接发IRP到『文件系统驱动』来读文件的。
由于在内核里获得文件的绝对偏移太麻烦,为了演示方便,下面就以保护MBR为例子,禁止读写磁盘的MBR。
以下代码的测试系统为WINXP和WIN7X64。加载驱动后,打开WINDBG解析磁盘,会提示“无法读取扇区0”。
当然,除了无法读取,写入也是不可能的。
|
|