我刚刚读过它们在磁盘上的文件,RVA和VA加载到内存后的指令偏移量。我还读到,如果一个PE文件完全像在磁盘中一样加载到内存中,那么RVA将与文件偏移量相同(并且发生这种情况会非常不寻常)。
我怀疑 - 在正常情况下,这些RVA相对于什么?特定PE数据结构的开始?
编辑:通过PE数据结构我的意思是 - PE头,DOS头,DOS存根,PE文件头,图像可选头,节表和数据目录。
答案 0 :(得分:11)
RVA是加载到内存后的相对于图像基址的地址。
相对虚拟地址。在图像文件中,将项目的地址加载到内存后,从中减去图像文件的基地址。项目的RVA几乎总是与它在磁盘上的文件位置(文件指针)不同。