当从Ring3进入Ring0的时候会将所需要的SSDT索引放入到寄存器EAX中去,
所以我们这里通过EAX的内容得到函数在SSDT中的索引号,然后计算出它的地址
首先打开WinDbug,我们以函数ZwQueryObject为例:

使用WinDbg获取SSDT函数表对应的索引再计算得出地址-LMLPHP

从mov eax 0F8h,知道我们的索引号是0F8h.
来验证一下,看看是不是函数ZwQueryObject。

我们先获取到SSDT的地址:

使用WinDbg获取SSDT函数表对应的索引再计算得出地址-LMLPHP

第一个8488a43c是SSDT的基地址,我们知道函数的地址等于SSDT基地址
+4*索引号,算出函数指针地址为8488a81c

使用WinDbg获取SSDT函数表对应的索引再计算得出地址-LMLPHP

最后u 84a0e0b5得到反汇编看出我们正确得到了ZwQueryObject

使用WinDbg获取SSDT函数表对应的索引再计算得出地址-LMLPHP

这两天学习一个大神的SSDT Hook下次贴出来当作心得

05-06 00:57