PE文件的裝載過程(2)

上一篇講到PE load程序已經找到了PE文件頭,PE文件頭的定義如下所示:

 

複製代碼

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個字節的結構,其定義如下:

 


IMAGE_FILE_HEADER STRUCT
  Machine WORD ? ;運行平臺
  NumberOfSections WORD ? ; 文件的節數目
  TimeDateStamp DWORD ? ; 文件創建日期和時間,它的數值是從
                              1969年12月31日下午4:00開始到創
                               建時間爲止的總秒數
  PointerToSymbolTable DWORD ? ; 指向符號表(用於調試)
  NumberOfSymbols DWORD ? ; 符號表中的符號數量(用於調試)
  SizeOfOptionalHeader WORD ? ;IMAGE_OPTIONAL_HEADER32
                                結構的長度
  Characteristics WORD ? ; 文件屬性
IMAGE_FILE_HEADER ENDS

各個字段的意義如註釋所示,其中元素SizeOfOptionalHeader的值始終爲e0h,表示可選頭的大小,e0h換算成十進制表示224,即可選頭的大小始終爲224個字節。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章