《WIN64驱动教程》补充[5]:获得SSDT函数地址(WIN32/WIN64全兼容)
作者:Tesla.AngelaWIN32和WIN64在NTOSKRNL里差别最大的地方,非SSDT莫属。不过这个差别,说大也大,说不大也不大。主要在以下四个方面:1.WIN32上KeServiceDescriptorTable是导出的,WIN64上需要自己定位;2.WIN32的KeServiceDescriptorTable->ServiceTableBase记录了函数的完整地址,而WIN64上记录的则是“耍了花样的”偏移地址(在低四位里存放了函数的参数个数)。3.SYSTEM_SERVICE_TABLE的定义是一样的,但因为SIZE_T和PVOID的长度都是跟平台相关的,所以此结构体在WIN32上的长度是4*4=16,在WIN64上的长度是4*8=32。4.NT5X64和NT6X64的SSDT偏移地址的计算方法还有点不同,NT5是dwTmp & 0xfffffff0,NT6是dwtmp=dwtmp >> 4。综上所述,整理出了适合所有NT平台的代码。
**** Hidden Message ***** 学习了
学习了 学习了 还在研究,感谢分享,SSDT用处多多啊 2024补充学习 学习一下 学习一下 这个必须看看 需要用到.看看兼容性.谢谢tesla分享. 认真学习一下 {:4_225:}学习一下
页:
[1]