首页
社区
课程
招聘
[原创]重载内核 完爆SSDT hook
2012-10-6 12:05 41929

[原创]重载内核 完爆SSDT hook

2012-10-6 12:05
41929
说明这是暑假期间弄得一个小东西。对驱动了解甚少。但是觉得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

[CTF入门培训]顶尖高校博士及硕士团队亲授《30小时教你玩转CTF》,视频+靶场+题目!助力进入CTF世界

上传的附件:
收藏
点赞3
打赏
分享
最新回复 (49)
雪    币: 707
活跃值: (1301)
能力值: ( LV9,RANK:190 )
在线值:
发帖
回帖
粉丝
qyc 4 2012-10-6 12:10
2
0
无码无真相
雪    币: 1412
活跃值: (4209)
能力值: ( LV13,RANK:240 )
在线值:
发帖
回帖
粉丝
IamHuskar 4 2012-10-6 12:12
3
0
码在虚拟机里。。。还没拿出来。如果要的人多我就发了。。

PS 看LS的注册日期。我想说,求包养
雪    币: 242
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
showhuman 2012-10-6 13:08
4
0
reload kernel都放了好几个类似的代码了.你这放个bin.估计没人有兴趣提什么建议,
雪    币: 1412
活跃值: (4209)
能力值: ( LV13,RANK:240 )
在线值:
发帖
回帖
粉丝
IamHuskar 4 2012-10-6 13:19
5
0
嗯。待会去虚拟机拿代码
雪    币: 1412
活跃值: (4209)
能力值: ( LV13,RANK:240 )
在线值:
发帖
回帖
粉丝
IamHuskar 4 2012-10-6 13:29
6
0
上码了,求牛们勿喷。。
雪    币: 242
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
showhuman 2012-10-6 13:33
7
0
支持支持支持~
雪    币: 389
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
plgs 2012-10-6 13:49
8
0
路过,支持一个
雪    币: 116
活跃值: (72)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
ruoko 2012-10-6 14:51
9
0
路过,收下。膜拜。
谢谢
雪    币: 25
活跃值: (84)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
tihty 2 2012-10-6 15:54
10
0
有码应该支持的
雪    币: 794
活跃值: (370)
能力值: ( LV9,RANK:380 )
在线值:
发帖
回帖
粉丝
Winker 8 2012-10-6 16:04
11
0
  A盾reload kernel src 完爆楼主的bin&&src~~
雪    币: 116
活跃值: (72)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
ruoko 2012-10-6 17:05
12
0
我不知道不通过KiFastCallEntry是怎样实现调用的,
雪    币: 22
活跃值: (423)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
靴子 2012-10-6 18:12
13
0
xp sp3 一注入就 蓝了。。
雪    币: 1412
活跃值: (4209)
能力值: ( LV13,RANK:240 )
在线值:
发帖
回帖
粉丝
IamHuskar 4 2012-10-6 18:23
14
0
不会吧,是不是 内核驱动 XXXX.exe 找错了啊
雪    币: 1412
活跃值: (4209)
能力值: ( LV13,RANK:240 )
在线值:
发帖
回帖
粉丝
IamHuskar 4 2012-10-6 18:24
15
0
大神自然是爆小菜几条街。小菜正在赶上去。
雪    币: 1412
活跃值: (4209)
能力值: ( LV13,RANK:240 )
在线值:
发帖
回帖
粉丝
IamHuskar 4 2012-10-6 18:25
16
0
DeviceIoControl。
雪    币: 11
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
rqqeq 2012-10-6 18:28
17
0
搞一个KiFastCallEntry的镜像函数……然后在KiFastCallEntry头来个jmp……完爆“完爆SSDT hook ”
雪    币: 1412
活跃值: (4209)
能力值: ( LV13,RANK:240 )
在线值:
发帖
回帖
粉丝
IamHuskar 4 2012-10-6 18:56
18
0
如果连DeviceIoControl都要XX00的话那我也没话说了。
雪    币: 107
活跃值: (27)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
哟哟哟哟 2012-10-7 22:35
19
0
注入hkkerneldbg.dll到CE时,出错,LZ看看怎么回事?
XP SP3

雪    币: 1412
活跃值: (4209)
能力值: ( LV13,RANK:240 )
在线值:
发帖
回帖
粉丝
IamHuskar 4 2012-10-8 21:28
20
0
[QUOTE=哟哟哟哟;1107123]注入hkkerneldbg.dll到CE时,出错,LZ看看怎么回事?
XP SP3

[/QUOTE]

这个 ,你用DEBUGVIEW看看有什么调试信息没?目前我没有遇到这个问题。。。。源码在下面,你可以自己编译试试
雪    币: 107
活跃值: (27)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
哟哟哟哟 2012-10-10 01:48
21
0
换了实体机就可以注入了

但是注入后蓝屏.什么原因?

是不是您使用了硬编码?
雪    币: 73
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
kingcomer 2012-10-11 11:33
22
0
学习学习~~都是大牛啊
雪    币: 1152
活跃值: (847)
能力值: ( LV8,RANK:150 )
在线值:
发帖
回帖
粉丝
freakish 1 2012-10-12 11:17
23
0
ReloadKernel  强大的很,网上有很多的更好思路的代码,比较通用,自己改一个自己的版本吧,不要直接拿别人的Bin , 到头来还是什么都明白....
雪    币: 74
活跃值: (543)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
wodexinren 2013-3-3 19:28
24
0
这个要顶
雪    币: 71
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
mumaren 2013-3-3 20:32
25
0
mark
3q
游客
登录 | 注册 方可回帖
返回