PE檔案載入時Section結構中的變化

2021-05-24 15:51:15 字數 325 閱讀 5413

pe檔案section的名稱儲存在name陣列中。當pe檔案被從磁碟載入到記憶體的過程中,本地長度為virtualsize的資料所獲得的記憶體大小為sizeofrawdata;這段資料在磁碟中相對檔案頭的偏移pointertorawdata,在記憶體中表現為這些資料的位置距離記憶體中pe起點為virtualaddress!

pointertorawdata  <----> baseofcode

0 <----> imagebase

virtualsize <----> sizeofrawdata

virtualaddress <---->  addressofentrypoint

載入PE檔案 PE載入器模擬法

1 找到檔案載入到記憶體的基址 通常為0x0040 0000 2 取得記憶體對齊粒度 3 載入pe頭,按照記憶體對齊粒度讀取到指定起始位址的記憶體處 4 載入各個節。得到節數目,定位節表,按照記憶體對齊粒度讀取到記憶體,不足的用0填充。5 基址不對,需要重定位修復。include stdafx.h ...

載入PE檔案 記憶體對映檔案

將程式安裝記憶體對齊的方式讀取到記憶體有兩種方法 1 記憶體對映檔案 2 pe載入器模擬法 1 記憶體對映檔案 lpheader所指記憶體是唯讀的,儘管是page readwrite include stdafx.h include include int main int argc,char ar...

PE檔案載入過程揭秘(2)

2011年10月09日 星期日 16 23 自 cvvd 最終編輯 cvvd 圖1pe 載入器在完成檔案實體資料到記憶體虛擬資料的對映之後,便開始從位於 image option header 末端的image data directory 陣列的第 2項 如圖 2 取出輸入表的 rva和大小,準備...