找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
查看: 1181|回复: 8

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

[复制链接]

857

主题

2632

回帖

2

精华

管理员

此生无悔入华夏,  长居日耳曼尼亚。  

积分
36130
发表于 2014-7-11 16:54:25 | 显示全部楼层 |阅读模式
作者: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”。
当然,除了无法读取,写入也是不可能的。
游客,如果您要查看本帖隐藏内容请回复

0

主题

37

回帖

0

精华

铜牌会员

积分
61
发表于 2024-1-2 16:44:09 | 显示全部楼层
学习了

8

主题

68

回帖

0

精华

钻石会员

积分
4115
发表于 2024-1-9 15:48:21 | 显示全部楼层
抄一抄

0

主题

47

回帖

0

精华

贵宾会员

积分
89
发表于 2024-1-26 17:51:21 | 显示全部楼层
2024补充学习

0

主题

21

回帖

0

精华

铜牌会员

积分
53
发表于 2024-2-6 16:09:27 | 显示全部楼层
非常感谢分享这些资料,棒

0

主题

45

回帖

0

精华

铜牌会员

积分
53
发表于 2024-3-19 08:30:08 | 显示全部楼层
学习一下

1

主题

118

回帖

0

精华

金牌会员

积分
856
发表于 2024-3-29 10:17:57 | 显示全部楼层
感谢楼主, 学习一下

0

主题

31

回帖

0

精华

贵宾会员

积分
19
发表于 2024-12-13 15:33:57 | 显示全部楼层
学习一下

0

主题

92

回帖

0

精华

铜牌会员

积分
111
发表于 2025-1-25 22:46:25 | 显示全部楼层
好好学习一下
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

快速回复 返回顶部 返回列表