看流星社区

 找回密码
 注册账号
查看: 3219|回复: 0

重载内核 玩爆SSDT hook

[复制链接]

该用户从未签到

发表于 2013-4-29 09:11:06 | 显示全部楼层 |阅读模式
说明这是暑假期间弄得一个小东西。对驱动了解甚少。但是觉得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

http://pan.baidu.com/share/link?shareid=510379&uk=3895950538
点击按钮快速添加回复内容: 支持 高兴 激动 给力 加油 苦寻 生气 回帖 路过 感恩
您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

小黑屋|手机版|Archiver|看流星社区 |网站地图

GMT+8, 2024-5-4 05:08

Powered by Kanliuxing X3.4

© 2010-2019 kanliuxing.com

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