WinPE基礎知識之頭部

2022-06-02 18:27:10 字數 2988 閱讀 6582

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;

struct

image_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檔案的載入基址,...