首页
社区
课程
招聘
[原创]2nd: 重加载内核绕过内核钩子之类神马的~
发表于: 2011-9-15 16:31 52270

[原创]2nd: 重加载内核绕过内核钩子之类神马的~

2011-9-15 16:31
52270
这是第二篇,还有一篇很烂的文章

内核自古乃兵家必争之地,某些流氓,某些小人,总喜欢在内核做一堆的patch,你patch就算了,你还去patch那些未导出的危险函数,让机器BSOD, 这也算了,你还加个检测,我勒个去,是可忍孰不可忍!

兔子逼急了还要咬人,哥逼急了直接灭了你

算了,其实很简单的两步。。。。好吧,我承认我是来骗kx的

1:将内核文件映射到我内核空间去;
2:path KiFastCallEntry重定向

一:加载内核

1:关于加载
我代码里用了两种方法,一种被我注释了的:
a:使用ZwCreateSection + ZwMapVieOfSection 结合 SEC_IMAGE 标志来加载,此时加载的地址必定是位于user-mode空间,可以简单的用MDL锁定,然后映射这些页面到kernel-mode空间,也可以直接ExAllocatePool 然后 copy加载的镜像
b : 直接ReadFile啦,对PE格式了解点点,很简单的,不多说,看代码吧

2:关于修正镜像
1:重定位
这个是必须的,但是要注意,必须以原先系统的内核为基址重定位,因为你想自己初始化一些东西如对象头,调度链之类的已经不可能了,你必须让新内核的数据指向老内核

2:修正SDT
这个不需要多说,算算RVA,四则运算一做就好啦

参考资料: 网易博客一篇好像叫《kernel in kernel》的文章……具体我也不清楚了,调试这个驱动时发现的一篇的文章,写的很好

PS:
none

*******************邪恶的分割线**************************
代码+bin:

[课程]Android-CTF解题方法汇总!

上传的附件:
收藏
免费 7
支持
分享
最新回复 (54)
雪    币: 96
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
沙发,,楼主乃强人。。。
2011-9-15 16:38
0
雪    币: 154
活跃值: (90)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
先看看后,在来顶,呵呵
2011-9-15 16:52
0
雪    币: 204
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
呵呵 楼主有偏见啊  我们现在好多代码就是抄微软的。
2011-9-15 17:08
0
雪    币: 1683
活跃值: (674)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
KiFastCallEntry伤不起呀,这么多东西搞它。
2011-9-15 17:11
0
雪    币: 67
活跃值: (91)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
6
这倒是,我的本意也只是给大家一点思路,至于发挥嘛~嘿嘿
2011-9-15 17:46
0
雪    币: 67
活跃值: (91)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
7
不是我有偏见,每个职业都有它们的原则嘛…… 虽然我菜,但是我的代码都是自己的劳动成果。 我放代码时问心无愧就够了~
2011-9-15 17:47
0
雪    币: 94
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
我想说,你都有权限去加载kernel,何不主动去对抗主防的钩子?
2011-9-15 17:48
0
雪    币: 67
活跃值: (91)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
9
说实话吧,这个东西拿来对抗游戏保护最好玩了。据说AGP = reloadKernel + maintain debug object 。就这样。。。我一再强调,我只给个思路而已,至于如何发挥,那与我无关
2011-9-15 19:38
0
雪    币: 8865
活跃值: (2379)
能力值: ( LV12,RANK:760 )
在线值:
发帖
回帖
粉丝
10
http://yukei.blog.163.com/blog/static/112587703201022262224461/

话说,据说是因为你的hook的代码有问题~
2011-9-15 20:26
0
雪    币: 67
活跃值: (91)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
11
那段HOOK代码发帖的时候被我改过再发的,源码倒不是那样。原因就不解释了
2011-9-15 20:47
0
雪    币: 8865
活跃值: (2379)
能力值: ( LV12,RANK:760 )
在线值:
发帖
回帖
粉丝
12
重定位只要把位于XX段的地址重定位给老内核
位于XXx段的可以定给XX~
我想你懂得~
2011-9-16 00:03
0
雪    币: 3107
活跃值: (1249)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
13
你的异常分发抄到哪了。commException和kidispatchxxx这两个函数抄没抄啊
2011-9-16 00:12
0
雪    币: 3107
活跃值: (1249)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
14
俺弄了份。4核不蓝。
2011-9-16 00:18
0
雪    币: 8865
活跃值: (2379)
能力值: ( LV12,RANK:760 )
在线值:
发帖
回帖
粉丝
15
一个都没抄,话说,搞了新方法~
2011-9-16 00:19
0
雪    币: 8865
活跃值: (2379)
能力值: ( LV12,RANK:760 )
在线值:
发帖
回帖
粉丝
16
内核reload太暴力鸟~
2011-9-16 00:20
0
雪    币: 67
活跃值: (91)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
17
嘿嘿,他们有兴趣的再慢慢折腾啦
2011-9-16 00:22
0
雪    币: 870
活跃值: (1033)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
强人 拜一下
2011-9-16 00:24
0
雪    币: 8865
活跃值: (2379)
能力值: ( LV12,RANK:760 )
在线值:
发帖
回帖
粉丝
19
其实第一次看到这种reload内核是在rootkit.com上那个什么什么l隐藏啊~
2011-9-16 00:26
0
雪    币: 67
活跃值: (91)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
20
求内幕…… 以前从朋友那里拿到一份老的release版的AGP,IDA了下就没弄了,那版的AGP在sp2 sp3上蓝的一塌糊涂
2011-9-16 00:26
0
雪    币: 3107
活跃值: (1249)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
21
他发截图了,各种疯狂。。

就不晓得他的新方法能不能兼容WIN7
2011-9-16 00:28
0
雪    币: 67
活跃值: (91)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
22
过几天我放个memory hook的出来玩玩,也许V大你已经知道了,那篇shadow walker论文,写的实在是精彩
2011-9-16 00:28
0
雪    币: 67
活跃值: (91)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
23
其实reloadKernel + memory hook 可以bypass一切游戏保护,只是说调戏还需要AGP的maitain debug object……WRK真是造福全人类啊
2011-9-16 00:30
0
雪    币: 3107
活跃值: (1249)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
24
尼玛的,做游戏保护的你伤不起啊。

memory hook是改内存属性?
2011-9-16 00:36
0
雪    币: 67
活跃值: (91)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
25
你把你邮箱给我,我发给你一篇论文你就知道了…… 那是国外的牛写的,据说是第四代rootkit啦,虽然他所测试的demo有限制:
1:不支持PAE
2:不支持多核
但是我们只要了解它的思想就够了,一定能自己完善
2011-9-16 00:40
0
游客
登录 | 注册 方可回帖
返回
//