-
-
[求助]PAE模式下的页目录表基址,页表基址探求
-
发表于:
2020-10-24 17:36
4157
-
首先从XP中把ntkrnlpa.exe
拽出来,PAE模式下内核文件为ntkrnlpa.exe
,101012模式下为ntoskrnl.exe
拖入IDA定位MmIsAddressValid
函数
通过初步分析得到两个基址:C0600000 C0000000
,根据之前101012模式下的学习,猜测C0600000
为PDT基址
,另一个为PTT
基址
然后开始验证
XP中随便打开一个程序,就记事本吧
WINDBG查看CR3的值
1 2 3 | PROCESS 89c753c0 SessionId: 0 Cid: 0148 Peb: 7ffdf000 ParentCid: 0538
DirBase: 0aac0320 ObjectTable: e151e008 HandleCount: 44.
Image: notepad.exe
|
得出CR3 = 0aac0320
首先验证C0600000
转换二进制:1100 0000 0110 0000 0000 0000 0000 0000
29912格式拆分:11-00 0000 011-0 0000 0000 -0000 0000 0000
得出四个值:3-3-0-0
WINDBG开始看内存
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | kd> !dd 0aac0320 `
PDPTI为 3 所以选第四个: 313a4801 313a4000 + PDI * 8 = 313a4018
kd> !dd 313a4018
得到PDE 00000000 ` 313a4863 PS位为 0 ,小页继续拆 313a4000 + PTI * 8 = 313a4000
kd> !dd 313a4000
得到PTE 00000000 ` 313a5863 物理页: 313a5000 + OFFSET = 313a5000
kd> !dd 313a5000
按理来说这里应该和PDT的值一样,但是明显不一样
|
求助各位大佬,是我IDA分析搞错了,还是拆分查内存的步骤搞错了,
PAE模式下的两个基址都是啥
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)
最后于 2020-10-24 17:38
被SSH山水画编辑
,原因: