windbg由虚拟地址查找对应物理地址(内核调试)

转载自:https://blog.csdn.net/wesley2005/article/details/81303435

(1)虚拟地址通过pte指令,找到pfn

假设虚拟地址为0xfffff880`00d5e9e0

0: kd> !pte 0xfffff880`00d5e9e0
                                           VA fffff88000d5e9e0
PXE at FFFFF6FB7DBEDF88    PPE at FFFFF6FB7DBF1000    PDE at FFFFF6FB7E200030    PTE at FFFFF6FC40006AF0
contains 000000007FF84863  contains 000000007FF83863  contains 000000007FF8C863  contains 8000000000BE0963
pfn 7ff84     ---DA--KWEV  pfn 7ff83     ---DA--KWEV  pfn 7ff8c     ---DA--KWEV  pfn be0       -G-DA--KW-V

找到pte对应的pfn为0xbe0,单位是4k(4096)。

(2)根据pfn和相对地址,找到虚拟地址对应物理地址位置

pfn为0xbe0,则物理页地址是0xbe0000(0xbe0 × 0x1000)。

页内偏移为0x9e0(0xfffff880`00d5e9e0)

那么 物理地址=物理页地址+页内偏移 = 0xbe0000+0x9e0 = 0xbe09e0

(3)打印物理内存和虚拟内存

打印物理内存

0: kd> !dc 0xbe09e0
#  be09e0 00000114 00000006 00000001 00001db1 ................
#  be09f0 00000002 00000000 00000000 00000000 ................
#  be0a00 00000000 00000000 00000000 00000000 ................

打印虚拟内存

0: kd> dc 0xfffff880`00d5e9e0
fffff880`00d5e9e0  00000114 00000006 00000001 00001db1  ................
fffff880`00d5e9f0  00000002 00000000 00000000 00000000  ................
fffff880`00d5ea00  00000000 00000000 00000000 00000000  ................

 

发现两者相同
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值