Tesla.Angela 发表于 2014-7-11 16:54:25

《WIN64驱动教程》补充[16]:DISK IRP HOOK的实现

作者: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”。
当然,除了无法读取,写入也是不可能的。
**** Hidden Message *****

5ak 发表于 2024-1-2 16:44:09

学习了

xtfpg 发表于 2024-1-9 15:48:21

抄一抄

baggiowangyu 发表于 2024-1-26 17:51:21

2024补充学习

ruin1990 发表于 2024-2-6 16:09:27

非常感谢分享这些资料,棒

nj001 发表于 2024-3-19 08:30:08

学习一下

yimingqpa 发表于 2024-3-29 10:17:57

感谢楼主, 学习一下

lzhlzhvip 发表于 2024-12-13 15:33:57

学习一下

wst5898 发表于 2025-1-25 22:46:25

好好学习一下
页: [1]
查看完整版本: 《WIN64驱动教程》补充[16]:DISK IRP HOOK的实现