檔案 偏移 基址 PE檔案涉及的位址概念

2021-10-16 02:15:39 字數 909 閱讀 5828

旋風火雞:pe可執行檔案格式詳解​zhuanlan.zhihu.com

在pe檔案中的節等模組載入到記憶體時,節的資料布局和檔案中的記憶體布局基本保持不變。所以可以根據這個資料尺寸相對不變的特點來由rva正確換算出到資料相對檔案的偏移。即,每個節(section)中的資料的起始位置相對節的起始位置是不變的,不管節是在檔案中還是被載入到記憶體中。

資料相對偏移h=資料rva - 節rva

資料相對偏移h=資料的檔案偏移 – 節的檔案偏移

根據上面兩個等式可以得到資料在檔案中的偏移量的演算法為:

資料的檔案偏移=(資料rva - 節rva) + 節的檔案偏移

va = image base + rva

用pe viewer檢視pe檔案,下面以data節為例說明相對虛擬位址和檔案偏移量。下圖第乙個紅框內的位址為為data節第乙個位元組所在的相對虛擬位址0x00022000,data節第乙個位元組載入到記憶體後虛擬記憶體位址為0x00022000+0x00400000=0x00422000。

下面的例項也說明了虛擬位址、相對虛擬位址、檔案偏移量的相互關係。由上圖的資訊可知相對虛擬位址和檔案偏移量是一致的,均為0x00022000。

在檔案中的偏移量為:0x0002203c,如下圖:

PE檔案的相關術語

pe裡面常見的術語 rva relative virtual address 相對虛擬位址,是相對於pe檔案的裝載基位址的乙個偏移位址.而rva就是基於base address 相對位址 裝載乙個pe可執行檔案的過程 1.讀取檔案的第乙個頁,獲取dos 頭,pe的檔案頭,段表 2.檢查程序位址空間,...

PE檔案的執行順序

當乙個pe檔案被執行時,pe裝載器首先檢查 dos mz header 裡的pe header 的偏移量。如果找到,則直接跳轉到 pe header 的位置。當pe裝載器跳轉到 pe header 後,第二步要做的就是檢查 pe header 是否有效。如果該 pe header 有效,就跳轉到 p...

PE檔案的記憶體對映

如果想要理解pe檔案與虛擬記憶體之間的對映關係,首先要理解一些概念 1.檔案偏移位址 file offset pe檔案資料在硬碟中存放的位址就叫做檔案偏移位址。用winhex程式檢視檔案時的offset就是檔案偏移位址了。檔案偏移位址就是指檔案在磁碟上存放時相對於檔案開頭的偏移。2.裝載基址 ima...