IMAGE_OPTIONAL_HEADER 結構,正如名字的意思,這是一個可選映像頭,是一個可選的結構,但是呢,實際上IMAGE_FILE_HEADER 結構遠遠不足以來定義 PE 檔案的屬性。因此,這些屬性在 IMAGE_OPTIONAL_HEADER 結構中進行定義。因此這兩個結構聯合起來,才是一個完整的 “PE檔案結構” 。
基本介紹
- 中文名:IMAGE_OPTIONAL_HEADER32
- 含義:可選映像頭,是一個可選的結構
- 屬性:結構
- 結構定義:普通執行檔
結構作用,定義方法,欄位講解,
結構作用
IMAGE_OPTIONAL_HEADER 結構,正如名字的意思,這是一個可選映像頭,是一個可選的結構,但是呢,實際上IMAGE_FILE_HEADER 結構遠遠不足以來定義 PE 檔案的屬性。因此,這些屬性在 IMAGE_OPTIONAL_HEADER 結構中進行定義。
因此這兩個結構聯合起來,才是一個完整的 “PE檔案結構” 。
IMAGE_OPTIONAL_HEADER32
定義方法
typedef struct _IMAGE_OPTIONAL_HEADER
{
//
// Standard fields.
//
+18h WORD Magic; // 標誌字, ROM 映像(0107h),普通執行檔(010Bh)
+1Ah BYTE MajorLinkerVersion; // 連結程式的主版本號
+1Bh BYTE MinorLinkerVersion; // 連結程式的次版本號
+1Ch DWORD SizeOfCode; // 所有含代碼的節的總大小
+20h DWORD SizeOfInitializedData; // 所有含已初始化數據的節的總大小
+24h DWORD SizeOfUninitializedData; // 所有含未初始化數據的節的大小
+28h DWORD AddressOfEntryPoint; // 程式執行入口RVA
+2Ch DWORD BaseOfCode; // 代碼的區塊的起始RVA
+30h DWORD BaseOfData; // 數據的區塊的起始RVA
//
// NT additional fields. 以下是屬於NT結構增加的領域。
//
+34h DWORD ImageBase; // 程式的首選裝載地址
+38h DWORD SectionAlignment; // 記憶體中的區塊的對齊大小
+3Ch DWORD FileAlignment; // 檔案中的區塊的對齊大小
+40h WORD MajorOperatingSystemVersion; // 要求作業系統最低版本號的主版本號
+42h WORD MinorOperatingSystemVersion; // 要求作業系統最低版本號的副版本號