-
-
[讨论]Win7x64 无法通过替换表项进行SSDT HOOK???
-
发表于:
2013-9-11 14:15
5400
-
[讨论]Win7x64 无法通过替换表项进行SSDT HOOK???
RT
刚开始玩x64驱动 想试试SSDT HOOK
在论坛资源以及各位兄弟的帮助下 目前搞定了PG SSDT获取 NT函数定位 等等
我想尝试用x86替换SSDT中ServiceTable表项的方式进行SSDT HOOK
但是发现一个不知道该怎么解决的问题
问题描述:
以下都是WINDBG 调试过程中 我记录的一些值
0xfffff800`0190a840 struct _SERVICE_DESCRIPTOR_TABLE *
0xfffff800`016da300 ServiceTable
0xfffff800`019ca1c8 NtReadFile
kd> u Drv!NtReadFile
Drv!NtReadFile [d:\desktop\x64hookssdt\x64hookssdt\drv.c @ 26]:
0xfffff880`1552a050 4889542410 mov qword ptr [rsp+10h],rdx
问题在这里:
根据X64 SSDT 定位NT函数的办法 可以简单的描述位 NTADDR= ServiceTable[Index]>>4 +ServiceTable
但是这样算的前提是 NT函数和 ServiceTable的高位地址相同
但是我新加载的驱动 高位地址 从0xfffff800 变成了 0xfffff880
这样的话 原来的NT函数定位公式就不合适了
我想问下 在Win7X64环境下 是否可以跟x86环境下一样 通过表项进行SSDT HOOK
如果可以的话 那么 ServiceTable[index] 里面对应的值应该怎么写呢?
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)