欢迎来到 嗅灵易学

零基础也能上手的脚本技术课,一对一答疑带你入门

重载内核 完爆SSDT hook

重载内核 完爆SSDT hook

说明这是暑假期间弄得一个小东西。对驱动了解甚少。但是觉得SSDT HOOK比较容易破。于是自己也试了一下重载内核,注入我的DLL,通过我自己的函数进入内核完成功能。
附件内三个文件,一个说明以及测试文档。
加附件有驱动,加载驱动有风险,请虚拟机调试。否则。造成的损失小菜不负责。
一切的调试信息都用dbgview查看,对于被注入的软件 例如CE ,OD要求ntdll.dll内的nt系列函数没有被HOOK。因为我是通过ntdll.dll内的值取得ssdt服务号的

还缺少的就是你电脑的一个内核驱动文件。也就是ntxxxx.exe系列的一个驱动。没有放进来是为了保证能在其他电脑尽量不会蓝屏。所以为了能使用,请先将自己电脑内的这个驱动复制一份重命名为kernel.dll然后和附件的三个文件放在一起

HKKernelDbg.dll
负责加载本地的内核(kernel.dll)作为COPY到内核的数据。以及R3 HOOK nt系列函数

HKKernelDbg.ini
配置 是否要hook的 nt函数(不能自己添加,我只写了一些常用的函数)
HKKernelDbg.sys
初始化数据,包括从R3复制一个内核的副本
内核副本数据的重定位。
以及内核函数的调用。与R3通信
使用注入器注入hkkerneldbg.dll到OD 或者CE以后,这个DLL先加载kernel.dll也就是把内核驱动当DLL加载,然后加载sys,然后DeviceIoControl发送信息通知sys复制副本到内核,进行数据重定位。最后 在R3 HOOK ini配置里的API。
接下来就是如何调用这些函数了。HOOK的R3函数会把内核中对应函数的偏移,以及函数参数,参数个数通过同一个控制码用
DeviceIoControl和sys通信,并把执行结果返回给R3。我并没有像其他人那样修改Kifastcallentry,也就是我并没有修改真正内核的一个字节,只是建立了一个自己的通道去内核执行函数。
后来虚拟机测试了用CE修改受保护的某游戏。修改数据成功了。呵呵

DLL 以及SYS 源码  在HKDBG.ZIP  上传了。写的比较烂。。各位莫笑。。毕竟还是菜鸟
VS2010+DDK

上传的附件 hkkerneldbg.zip
HKDBG.zip

注意:上传附件及图片大小不得大于30M。

⚠️ 版权声明:
本博客所有内容(含教程、源码、工具)仅供个人技术学习与研究交流使用,严禁商用、倒卖、二次分发及非法用途。
未经作者书面授权,任何组织或个人不得转载、复制或用于其他平台,违者将追究相关责任。

0 0 0 举报
复制成功