Windbg查看虚拟地址转物理地址数据简单流程

本文详细介绍了在双机调试环境下,如何通过kd命令逐步解析虚拟机中test.exe文件的内存地址,从exe打印的虚拟地址开始,经过一系列转换,最终定位到具体的数据位置。

1.双机调试下

虚拟机打开test.exe文件

int main()
{
    printf("%p" , "aaabbbccc");
}

exe打印的虚拟地址:00217B30

2.转二进制: 00000000 ‭00100001 01111011 00110000‬

按10-10-12拆分:00000000‭00 1000010111 101100110000‬

变成了:0-217-B30

3.kd> ! process 0 0 test.exe

获取到到DirBase:00258000

4.kd> !00258000

根据【0-217-B30】的【0】项,获取到27bf4847

清除后三位获得 27bf4000

5.kd> !dd 27bf4000 +217*4

根据【0-217-B30】的【217】下标,获取到281f5005

清除后三位获得 281f5000

6.kd> !db 281f5000 +B30

根据【0-217-B30】的【B30】偏移,获取到数据

转载于:https://www.cnblogs.com/ltyandy/p/11418352.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值