Tesla.Angela 发表于 2014-8-26 22:48:49

《WIN64驱动教程》补充[18]:内核IAT HOOK的实现

作者:Tesla.Angela

内核IAT HOOK的差别,跟RING3的IAT HOOK差别有点大。在教程的RING3 IAT HOOK代码里,我修改的是『导入表』。但是在内核IAT HOOK里,我修改的是『导入函数地址表』。虽然只差了两个字,但却是完全不同的东西。『导入表』有很复杂的结构,但『导入函数地址表』却只是一个有限长度的SIZE_T数组。也就是说,要实现HOOK的话,不需要计算偏移地址,直接找到记录原始地址的地方,然后直接填写代理函数的地址即可,类似于WIN32的SSDT HOOK。为什为我在RING0要修改『导入函数地址表』呢?因为这个导入表很有可能在驱动加载后就被抛弃了。但是『导入函数地址表』是一直存在的。至于IAT HOOK有什么用,我只能说用处不太大,只见过360在WIN7X64上HOOK WIN32K.SYS导入表的ntoskrnl!KeUserModeCallback实现主动防御。在WIN8X64以及之后的系统,PATCHGUARD保护了包括WIN32K.SYS在内的驱动,PATCH WIN32K.SYS也会导致蓝屏。所以360就没有在WIN8X64上这么做了。
**** Hidden Message *****

5ak 发表于 2024-1-2 20:01:30

学习了

baggiowangyu 发表于 2024-1-26 22:37:35

2024补充学习

ruin1990 发表于 2024-2-6 16:11:20

很有参考意义,感谢分享

nj001 发表于 2024-3-19 08:32:57

学习一下

yimingqpa 发表于 2024-3-29 10:14:09

主要想看看隐藏内容。

wst5898 发表于 2025-1-26 09:54:33

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