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中,有幾項的名字都和匯入...