日期:2014-05-17  浏览次数:20690 次

关于SSDT的问题
本帖最后由 zx4219770 于 2013-02-05 13:12:08 编辑
最近在学内核编程,但是书上貌似没有关于SSDT的内容。据说很多安全软件都用的是SSDT Hook,我百度了一下SSDT,度娘的解释是说这玩意是把ring3级的API关联到ring0级的API上的一个索引表,并且给出结构体。我想问在32位的4G内存地址中这个SSDT是在哪个位置?是属于用户的2G空间还是系统的2G空间里?还有SSDT只是把ring3的API和ring0的API关联而已,要HOOK的话应该是修改关联的内容,把函数索引到自己的写的HOOK函数,那么这样做的话只能HOOK运行在ring3级的程序啊,按照SSDT的作用来解释也只能这样解释的了,如果是内核模块,直接调用内核函数这样SSDT Hook不就没办法了吗?

------解决方案--------------------
在内核中调用的话,可以inline hook内核的函数。
SSDT的地址是在ntoskrnl.exe里。是内核地址。