首页
社区
课程
招聘
[原创]SSDT Hook的妙用-对抗ring0 inline hook
发表于: 2007-3-10 15:18 231214

[原创]SSDT Hook的妙用-对抗ring0 inline hook

2007-3-10 15:18
231214
收藏
免费 7
支持
分享
最新回复 (186)
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
151
在ring0开辟一个空间,复制整个ntkrnlpa.exe的image,恢复这个image里的hook,调用这个image里的代码实现原ntkrnlpa.exe的函数功能................
2010-10-6 22:22
0
雪    币: 262
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
152
顶一个````````
2011-1-3 02:15
0
雪    币: 387
活跃值: (25)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
153
今天重新把此帖又看了一遍, 感觉稍微看懂了一些
现在有以下疑问, 请帮忙解惑, 谢谢:
1.
  __asm{
    push    0C4h
    push    804eb560h  //共十个字节
    jmp     [JmpAddress]     
  }

这段汇编代码什么意思, 尤其是前面的10个字节的编码到底是什么?

2. 我通过KeServiceDescriptorTable得到了整个函数的地址表,
那么我如何通过这个地址表得到每个函数的名字?

3. __declspec(naked)
这个什么意思? 如果不加会有什么问题?
2011-2-10 15:09
0
雪    币: 278
活跃值: (709)
能力值: ( LV15,RANK:520 )
在线值:
发帖
回帖
粉丝
154
看雪老大以及各位版主都顶了,我也顶哈嘛
2011-2-10 22:02
0
雪    币: 203
活跃值: (229)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
155
如果一上来就恢复SSDT表,那不是无效了。
2011-3-21 11:42
0
雪    币: 1149
活跃值: (888)
能力值: ( LV13,RANK:260 )
在线值:
发帖
回帖
粉丝
156
好贴。。。讲的清晰。。硬编码 要改几处。。。
2011-3-21 13:16
0
雪    币: 220
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
157
驻足留步seeing
2011-5-10 15:57
0
雪    币: 60
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
158
跟着顶贴MARK
2011-5-18 11:27
0
雪    币: 211
活跃值: (118)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
159
LZ的文章很精彩,有些地方有人不明白我补充一点:

1.  在XP以及以上系统中需要打开内核调试,才能用windbg查看 KeSeviceDescriptorTable, 系统的内核调试一般没有打开,如何打开大家可以搜搜。
2.  程序中的硬编码是不对的,很容易出问题
  __asm{
    push    0C4h
    push    804eb560h  //共十个字节
    jmp     [JmpAddress]  
   其中 804eb560 在每个人的机器上不同的,因为在NtOpenProcess载入以后有个重定位的问题,这个值需要动态获得,可以采用增加一个全局变量,在获取NtOpenProcess的地址时,顺便获取该地址,然后将push语句改为
   push   [全局变量名]
3. 如果NP修改了SSDT表,使KeSeviceDescriptorTable的基址+7a*4的位置不再指向NtOpenProcess的位置,那么这个办法肯定是没用了,那个时候,大家利用windbg的内核调试,找新的地址,然后再做跳转,原理是一样的。
4. KeServiceDescriptorTable中的其他函数的前十个字节是否肯定不是这样的,大家可以用IDA静态反汇编ntoskr看看具体是什么。
2011-5-18 15:16
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
160
mark一下,新人学习了
2011-10-25 15:16
0
雪    币: 11
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
161
深入浅出,写的不错适合新手
2011-10-30 21:41
0
雪    币: 29
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
162
好文章啊
思路很清楚,让人能很好的明白啊
2011-11-27 10:50
0
雪    币: 221
活跃值: (50)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
163
受教啦,谢谢!
2012-6-26 17:37
0
雪    币: 63
活跃值: (177)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
164
大概了解你的思路。
这种方法只适用于被inline hook之后。
希望楼主想想如何免疫inline hook。
2012-12-11 09:48
0
雪    币: 3542
活跃值: (239)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
165
SSDT关注!
2012-12-25 20:23
0
雪    币: 37
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
166
谢谢 KANXUE 老大,终于转正了。恭喜下! 另外,看了KANXUE 海风月影 堕落天才 lvg等大牛的所有精华文章,本人甚是膜拜,羡慕之余,隐隐约约内心作痛;大学毕业之后的十五年间,都不知道自己到底在做什么?虽然文科出身,但是对二进制却出奇的迷恋,在这里,在www.pediy.com等等这里,我终于找到了乐趣。热烈欢迎大牛们的精彩文章以及无私的源码奉献!
2012-12-26 16:17
0
雪    币: 4
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
167
学习了,非常感谢楼主
2012-12-27 19:24
0
雪    币: 79
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
168
收藏,好文一篇
2012-12-28 09:18
0
雪    币: 119
活跃值: (14)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
169
你说现在游戏的反外挂驱动怎么这么流氓呢?就拿NP为例,你修改我PC机的内核代码,我没怪你就不错了,我还原HOOK,你居然重启我电脑?你要是关闭游戏,游戏是你开发的,我就认了,重启我电脑是神马意思,我觉得法律上告它都能赢。国外的反外挂有这么流氓的么?
2012-12-28 10:06
0
雪    币: 10
活跃值: (69)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
170
老帖子有时也很有味道,不错哦
2013-1-8 23:33
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
171
push C4
push 804DAAA8
call 80538F10
每个机子都是不一样滴
2013-2-26 05:34
0
雪    币: 184
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
172
不错的文章,支持
2013-3-20 10:27
0
雪    币: 7
活跃值: (100)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
173
好文章,现在看也挺好的
2013-4-7 16:38
0
雪    币: 71
活跃值: (227)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
174
深入浅出。 就这么点文字就把原理讲明白了。厉害。
2013-4-30 13:55
0
雪    币: 59
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
175
哪有《Undocument Windows 2000 Secretes》这本书啊?
2013-8-9 11:26
0
游客
登录 | 注册 方可回帖
返回
//