ShadowSSDT
首先使用windbg进行调试,但是我的符号表并没有KeServiceDescriptorTableShadow
这个符号,但是我误打误撞发现win7下面的+0x40正好是shadow,哈哈。
但是我们发现跟不进去他的基地址,原因是必须要在GDI下面进去,所以我们要下一个内核的消息循环断点,但是我的符号表还是没有NtUserXXX的。
我们在读取ShadowSSDT表的时候,不可以在入口函数入口函数读取,因为他并不在GDI中,我们需要在有GDI的程序的线程中进行读取,这个一般是应用程序的IOCL命令下进行读取。
hook的话呢和之前一样,或者是直接修改ShadowSSDT数据,不要忘记修改页面保护。
C硬编码
我们在使用asm内联汇编的时候,如果遇到不识别的汇编指令,我们可以使用_emit 0xf
类型设置硬编码,用OD可以看到。