1、dos頭
//dos mz頭,大小為64個位元組
typedef struct
_image_dos_header image_dos_header, *pimage_dos_header;
dos mz頭下面是dos stub,整個dos stub是乙個位元組快,其內容隨著鏈結時使用的鏈結器不同而不同,而且長度不固定。
2、nt頭
//nt 頭
typedef struct
_image_nt_headers image_nt_headers32, *pimage_nt_headers32;
(1)緊跟在dos stub後面的是pe頭標識
佔四個位元組,內容固定為「pe\0\0「。
(2)標準pe頭、檔案頭、coff頭,佔20個位元組
3、檔案頭
typedef struct_image_file_header image_file_header, *pimage_file_header;
4、擴充套件pe頭
//32位程式當中擴充套件頭的大小為224個位元組
typedef struct
_image_optional_header image_optional_header32, *pimage_optional_header32;
//資料目錄項
typedef struct
_image_data_directory image_data_directory, *pimage_data_directory;
structimage_data_directory_array datadirarray
[0]struct image_data_directory export //
匯出表[1]struct image_data_directory import //
匯入表[2]struct image_data_directory resource //
資源表[3]struct image_data_directory exception //
異常表[4]struct image_data_directory security //
安全表[5]struct image_data_directory baserelocationtable //
重定位表
[6]struct image_data_directory debugdirectory //
除錯資訊
版權資訊
[8]struct image_data_directory globalptr //
全域性ptr
[9]struct image_data_directory tlsdirectory //
執行緒本地儲存
[10]struct image_data_directory loadconfigurationdirectory //
配置載入表
[11]struct image_data_directory boundimportdirectory //
繫結匯入表
[12]struct image_data_directory importaddresstable //
匯入函式位址表
[13]struct image_data_directory delayloadimportdescriptors //
延遲載入表
[14]struct image_data_directory comruntimedescriptor //
clr頭
[15]struct image_data_directory reserved //
預留
6、區段頭表
//節表項typedef struct
_image_section_header misc;
dword virtualaddress;
//節區的rva位址
dword sizeofrawdata; //
在檔案中對齊後的尺寸
dword pointertorawdata; //
在檔案中的偏移
dword pointertorelocations; //
在obj檔案中使用
dword pointertolinenumbers; //
行號表的位置(供除錯使用)
word numberofrelocations; //
在obj檔案中使用
word numberoflinenumbers; //
行號表中行號的數量
dword characteristics; //
節的屬性
} image_section_header, *pimage_section_header;
1//rva 轉 foa
2 dword rva2foa(image_nt_headers*pnt, dword dwrva)313
}14return -1
;15 }
WinPE基礎知識之匯入表
匯入表 結構體陣列,以乙個全零元素為結尾,每乙個陣列元素,代表乙個pe檔案匯入資訊 匯入表儲存的是從其它pe檔案匯入過來的函式名 序號,載入到記憶體之後,還儲存這些函式的位址 typedef struct image import descriptor dummyunionname dword ti...
WinPE基礎知識之匯出表
匯出的東西包括函式 變數 類 位址,序號,函式 變數 類 名 typedef struct image export directory image export directory,pimage export directory a 匯出表應該被安排在.edata中,不過這個段一般都會合併到.rd...
WinPE基礎知識之重定位表
typedef struct image base relocation image base relocation typedef image base relocation unaligned pimage base relocation 1 當重定位發生的時候,只需知道現在pe檔案的載入基址,...