PE文件與(虛擬)內存中的地址映射
-
文件偏移地址
PE文件中的數據的地址,就是在文件內部的地址,也可以理解成在文件系統中相對於文件頭的偏移地址。在PE文件內部,數據是按數據節存放的,但每一個數據節都是0x200字節的倍數,不足的用0x00補齊。
-
裝載地址(Image Base)
PE文件裝入內存時的基礎地址,一般exe文件在內存中的基址是0x00400000,dll文件時0x10000000。
-
虛擬內存地址(VA)
PE文件中的指令被裝入內存後的地址。
-
相對虛擬地址(RVA)
內存地址相對於映射基址(即裝載地址)的偏移量。在裝入內存之後,將按照內存數據標準存放,每一個數據節都是0x1000字節的倍數,不足的用0x00補齊。
-
節偏移
定義節偏移=RVA-文件偏移
滿足下面公式:
VA=Image Base+RVA