文件偏移地址计算
本帖最后由 luoluoovo 于 2019-11-14 22:41 编辑虚拟内存地址是0x4010D4 ,装载基址是0x400000
VOffset是1000h
ROffset是200h
文件偏移地址=虚拟内存地址-装载基址-(文件虚拟地址偏移量-文件物理地址偏移量) =0x4010D4-0x400000(1000h-200h)=0x8D4
结果在16进制中查的0x8D4 不是虚拟内存地址0x4010D4的数据。
而在0x2D4中查到了虚拟内存地址0x4010D4的数据。
请问为什么会这样呢,计算应该没错阿。
本帖最后由 苏紫方璇 于 2019-11-14 22:51 编辑
0x4010D4-0x400000 -(1000h-200h)
=10D4-E00h
=2D4 苏紫方璇 发表于 2019-11-14 22:24
0x4010D4-0x400000 -(1000h-200h)
=10D4-800h
=2D4
一开始算错了。1000h-200h是等于E00 计算方法有两个,你用的是其中一个。还有一个我感觉更方便。
首先,
虚拟地址-装在地址=0x4010D4-0x400000=0x10D4
查看区段,看看这个0x10D4在哪个区段的VOffset下。
根据你的图片,明显是.text(0x10000)。
然后用0x10D4-0x10000=0xD4。在用这个偏移加上.text对应的ROffset(0x200)就得到了VOA
VOA=0x200+0xD4=0x2D4 luoluoovo 发表于 2019-11-14 22:40
一开始算错了。1000h-200h是等于E00
我也犯二算错了{:1_924:} 学习一下 ,,,, 0
一开始算错了。1000h-200h是等于E00
我也犯二算错了计算方法有两个,你用的是其中一个。还有一个我感觉更方便。
首先,
虚拟地址-装在地址=0x4010D4-0x400000=0x10D4
查看区段,看看这个0x10D4在哪个区段的VOffset下。
根据你的图片,明显是.text(0x10000)。
页:
[1]