- 软件大小: 167KB
- 软件语言: 简体中文
- 软件类别: 国产软件 | 编译工具
- 运行环境: 2000/Xp/2003/Vista/Win7
- 授权方式: 免费版
- 软件等级:
- 更新时间: 2012/10/21 7:01:02
- 开 发 商:
软件介绍:
相对虚拟地址(Relative Virual Address,RVA)表示此段代码在内存中相对于基地址的偏移。即:相对虚拟地址(RVA)=虚拟地址(VA)-基址(imageBase)。
文件中的地址与内存中表示不同,它是用偏移量(File offset)来表示的。
在SoftICE和W32Dasm下显示的地址值是内存地址(memory offset),或称之为虚拟地址(Virual Address,VA)。而十六进制工具里,如:Hiew、Hex Workshop等显示的地址就是文件地址,称之为偏移量(File offset) 或物理地址(RAW offset)。
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 物理地址即该字节在文件中的位置,当然是相对于文件头的偏移位置。
关键字: RVA 偏移 虚拟偏移