[note]chapter3--系统机制(IDT,GDT,SSDT,shadow SSDT)

这一章讲的有点多,与很多RK技术相关的也不少.

具体来分析的话,想详细的剖析下以下知识点

1.系统机制:

@ IDT

@ GDT

@ SSDT

@ Shadow SSDT

@ 增加一个系统服务分发

上面这些,包括一些HOOK技术,可能都显得很古老了,但是真正剖析和理解清楚,还是需要下一番功夫的.

 

2.windows对象管理详解

 

3.WinObj的设计与实现

 

4.句柄表剖析.

 

@@  IDT 检测

关于IDT_Hook技术可以参考,combaojiang大侠的rootkit的专题,那里已经讲的很详细了.

对于检测IDT_Hook:(其他HOOK检测也类似)

1.因为IDT的ISR地址位于ntoskrnl.exe和hal.dll中,可以通过比较模块基地址和大小,来判断.

 

2.dump&disk

 

2.1_KPCR结构中是有一份记录的:

kd> dt 82b7bc00 _KPCR -y IDT*
ntdll!_KPCR
+0x038 IDT : 0x80b95400 _KIDTENTRY
kd> r idtr
idtr=80b95400

如果HOOK程序没有改这里,那么是可能找到的,其实就是fs:0x38的位置:
kd> dd fs:38 l1
0030:00000038 80b95400 

 

2.2 如果代码 Hook 了,可以自己 Map 内核,搜索 IDT 特征,之所以特征搜索是因为特征太明显了,可以精准对比 ExtendedOffset、Selector 等。
类似的方法可用于搜索 KiServiceTable。而不是用那什么“A more stable way to locate real KiServiceTable”。

代码后期贴上...

ps下:一个IDTguard的程序..呵呵~附带源代码的,讲述的就是2.2思路的实现...

 

posted @ 2010-10-13 11:48  Tbit  阅读(690)  评论(0编辑  收藏  举报