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

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

2012-10-6 12:05
42555

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


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

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

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

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

[/QUOTE]

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

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

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