首页 > 其他 > 详细

PE文件结构 | RVA与FOA的转换

时间:2020-12-12 18:32:09      阅读:41      评论:0      收藏:0      [点我收藏+]

引出问题:如果想改变全局变量的初始值,该怎么做?

如果有初始值,初始值是存在PE文件中的。
在文件中和在内存中的对齐方式不一样。
内存中展开从ImageBase(扩展PE头中)开始,然后依次对齐。
RVA:
相对虚拟地址
=内存中的地址-ImageBase
FOA:
file offset address
转化:
1.判断RVA是不是在头部,如果在直接查
2.判断当前的值在哪一个节里面,与节表中的VritualAddress进行比较
如果在,用RVA-节.VirtualAddress算出偏移
FOA = 节.PointerToRawData + 偏移
反过来的转化同理~

over.

PE文件结构 | RVA与FOA的转换

原文:https://www.cnblogs.com/Mz1-rc/p/14124307.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!