image_nt_headers struct
signature dword
?;pe檔案標識
fileheader image_file_header
<>
optionalheader image_optional_header32
<>
image_nt_headers ends
signature為pe檔案標識,其值始終為00004550h,查ascii表可以知道45h代表字元e,50h代表字元p。緊接著pe檔案標識的是image_file_header結構,這是乙個20個位元組的結構,其定義如下:
code
image_file_header struct
machine word
?;執行平台
numberofsections word
?; 檔案的節數目
timedatestamp dword
?; 檔案建立日期和時間,它的數值是從
2023年12月31日下午4:00開始到創
建時間為止的總秒數
pointertosymboltable dword
?; 指向符號表(用於除錯)
numberofsymbols dword
?; 符號表中的符號數量(用於除錯)
sizeofoptionalheader word
?;image_optional_header32
結構的長度
characteristics word
?; 檔案屬性
image_file_header ends
各個欄位的意義如注釋所示,其中元素sizeofoptionalheader的值始終為e0h,表示可選頭的大小,e0h換算成十進位制表示224,即可選頭的大小始終為224個位元組。
PE檔案的裝載過程(4)
上週畢業答辯,沒完成任務,慚愧慚愧。可選頭的最後一部分是datadirectory欄位,這個字段包含了16個image data directory結構,結構的定義如下 image data directory struct virtualaddress dword 資料的起始rva isize d...
PE檔案的裝載過程(1)
windows下的可執行檔案為pe portable executable file format 可移植的執行體 格式,檔案的組織形式還是比較複雜的,花了大概乙個星期的時間終於稍微弄懂了pe檔案的裝載過程。pe檔案最開始的部分稱為dos頭,存在的作用是為了相容dos下的可執行程式,dos頭的結構如...
PE檔案載入過程揭秘(2)
2011年10月09日 星期日 16 23 自 cvvd 最終編輯 cvvd 圖1pe 載入器在完成檔案實體資料到記憶體虛擬資料的對映之後,便開始從位於 image option header 末端的image data directory 陣列的第 2項 如圖 2 取出輸入表的 rva和大小,準備...