首先看下KTHREAD的结构
在Windows 2003 sp1的系统下 ServiceTable的偏移0x118
如果当前获得的KTHREAD是图形应用程序中的线程,那么ServiceTable就会指向KeServiceDecriptorTableShadow这个结构
再看下KeServiceDecriptorTableShadow 这个结果在当前内存中的地址
编写一个mfc小程序,与驱动程序通信,在驱动程序中调用PsGetCurrentThread获得ETHREAD,或者调用KeGetCurrentThread直接获得KTHREAD都行,因为两个的地址一样。
然后通过KTHREAD中的偏移就可以找到ServiceTable,然后就可以获得KeServiceDescriptorTableShadow这个结构的基地址了,从而就找到了SSSDT表