一)先来针对未开启PAE模式来进行分析
测试机器XP 32位系统:(Dbgview.exe程序的线性(虚拟)地址与物理地址的对应)
这里关闭了PAE模式。
我先用OD载入Dbgview.exe程序,并且运行,
看到程序入口点的线性(虚拟)地址:004153B7==> 00000000 01000001 01010011 10110111
根据INTEL手册中的定义:
进行分段:0000000001 0000010101 001110110111
PDE PTE 物理偏移
打开WindDbg,查看DebugView 中EPROCESS==>KPROCESS==>DirectoryTableBase[2]:
PDE:0000000001==》 1
值:13ddc067==》物理页面的起始地址:13ddc000
PTE:0000010101==》21
值080a3025==》物理页面起始地址:080a3000加上 物理偏移001110110111==》0x3B7
对比OD
机器码是一样的,说明物理内存地址找对了!
接下来修改一下物理内存~~ !eb 080A33B7 80将E8随便修改成80看看效果
嘿嘿,修改成功~~~表示地址对应无误!