PE檔案結構

2021-04-09 00:49:13 字數 1242 閱讀 2879

pe檔案結構

a, dos header(timagedosheader)  其中

-- _lfanew 指向 【c】

-- e_magic 為 mz

b, dos stub  用於不支援pe的作業系統,顯示錯誤提示如「this program requires windows」,不定長

c, pe header(timagentheaders)

-- pe 標誌 (timagentheaders.signature) 必須等於 image_nt_signature,即 pe/0/0

-- pe 基本資訊 (timagefileheader)

其中 numberofsections 決定了【d】中元素的數目

timedatestamp 為檔案建立的時間

-- pe 可選頭 (timageoptionalheader)

其中 sizeofheaders 是 【a】+【b】+【c】+【d】的總空間

datadirectory 是image_data_directory結構的陣列,每個結構給出了乙個重要資料結    構的 

rva,如引入位址表、匯出位址表等。例如 

timageimportdescriptor = packed record

originalfirstthunk: dword;

timedatestamp  : dword;

forwarderchain : dword;

dllname        : dword;

firstthunk     : dword;

end;                      

end;

d, 節表 (array of timagesectionheader)

-- e ....

各個節=========== 關於節===================

★  pe檔案的真正內容劃分成塊,稱之為sections(節)。每節是一塊擁有共同屬性的資料,比如**/資料、讀/寫、匯入/匯出等。我們

可以把pe檔案想像成一邏輯磁碟,pe header 是磁碟的boot扇區,而sections就是各種檔案,每種檔案自然就有不同屬性,如唯讀、系統、隱

藏、文件等。節的劃分是基於各組資料的共同屬性,而不是邏輯概念。重要的不是資料/**是如何使用的,如果pe檔案中的資料/**擁有相

同屬性,它們就能被歸入同一節中。

=========== 關於節===================

PE檔案頭結構

typedef struct image file header image file header,pimage file header 1.machine 每個cpu都有唯一的machine碼,用來指定檔案的執行平台 define image file machine unknown 0 def...

PE檔案結構(一)

pe portable execute 檔案是windows下可執行檔案的總稱,常見的有dll,exe,ocx,sys等,事實上,乙個檔案是否是pe檔案與其副檔名無關,pe檔案可以是任何副檔名。pe檔案是指32位可執行檔案,也稱pe32。64位可執行檔案稱為pe 或pe32 是pe pe32 的一種...

PE檔案結構詳解(四)PE匯入表

pe檔案結構詳解 二 可執行檔案頭的最後展示了乙個陣列,pe檔案結構詳解 三 pe匯出表中解釋了其中第一項的格式,本篇文章來揭示這個陣列中的第二項 image directory entry import,即匯入表。也許大家注意到過,在image data directory中,有幾項的名字都和匯入...