-
-
[求助]关于Win7-32位中NtReadVirtualMemory的疑惑
-
发表于:
2015-5-17 17:57
4988
-
[求助]关于Win7-32位中NtReadVirtualMemory的疑惑
1.经查,NtReadVirtualMemory在ntdll.dll中能找到倒出,与SSDT中的符合。
2.用[PC Hunter]检测,发现 NtReadVirtualMemory 函数位于[ntkrnlpa.exe]中。(不知为什么会这样)
3.查找物理地址,发现代码对不上。
实体机ntkrnlpa.exe ,基址0x84015000,大小0x415000
NtReadVirtualMemory[ntkrnlpa.exe]
[PC Hunter Professional][[Disasm]]: 70
地址 二进制 汇编
84276D9B 6A 18 push 18
84276D9D 68 68C70684 push 8406C768
84276DA2 E8 19DCE1FF call 840949C0
84276DA7 64:8B3D 24010000 mov edi, dword ptr fs:[124]
84276DAE 8A87 3A010000 mov al, byte ptr [edi+13A]
84276DB4 8845 E4 mov byte ptr [ebp-1C], al
84276DB7 8B75 14 mov esi, dword ptr [ebp+14]
84276DBA 84C0 test al, al
函数头84276D9B-基地址84015000 = 261D9B(相对RAV)
用[CFF Explorer]查节表,应位于节PAGE中,节RAV起点为12B200
261D9B-12B200 = 136B9B(RAV2)
物理地址为 16D000 + 136B9B = 2A3B9B
用UE打开后,发现函数的字节对不上。
我本来是想从文件中读取重定位表,修正地址的,
有劳指点,谢谢
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课