[PE文件结构学习]1.相对虚拟地址(RVA)与物理地址的转换

本文介绍了PE文件结构中的关键概念,如虚拟地址(VA)、相对虚拟地址(RVA)、映像基址(ImageBase)和物理地址(PA),并详细阐述了RVA到PA转换的过程,涉及Dos MZ Header、NT文件头、SECTION TABLE等关键元素。
摘要由CSDN通过智能技术生成

正在学习PE文件结构,本人小菜鸟一个,如有不正确,欢迎指正。

 

PE结构即可执行文件的硬盘存储结构,Windows系统下面有exe dll等格式,PE结构先不介绍了,网上资料很多,看雪的文库里面的资料很好。

 

首先以我个人的理解来解释一下各种概念。

 

1.VA VA即virtual address。解释为虚拟地址,它是经过PE载入器重定位后的在该进程地址空间中能访问到的地址,在调试时候访问一些全局变量,变量的地址即虚拟地址。

 

2.RVA  RVA即Relative virtual address。它是一个虚拟地址,凡是牵扯到虚拟地址的,都是在PE文件被PE载入器映射入内存后的地址,即与内存有关,与在磁盘文件中的存储无关。RVA主要是减轻PE载入器的工作量和方便计算VA而存在的,PE物理文件中的地址基本全都是RVA,RVA是一个偏移地址,是相对于ImageBase的偏移,假如代码段内访问一个RVA为0x00000111的内存单元,那该内存单元的VA即为(实际的)ImageBase + 0x00000111。

 

3.ImageBase ImageBase为映像的基址,PE文件在映射入内存的时候,会载入一个特定的基址,PE文件头中的ImageBase是推荐映射入内存的地址,一般为0x00400000,所有的RVA再根据ImageBase来转换成VA进行正确的内存访问行为。

 

4.物理地址 Physical Address PA  物理地址即该字节在文件中的位置,当然是相对于文件头的偏移位置。

 

在实际情况下,我们常常会遇到将代码段中访问的

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值