第5章 WINDOWS PE/COFF

5.1

Windows的二進(jìn)制文件格式PE/COFF

Win32平臺(tái)下標(biāo)準(zhǔn)文件格式為PE,PE=Protable

Executable。

PE和ELF同根同源都是從COFF(Common Object File Format)發(fā)展而來(lái)。

5.2

PE的前身COFF

PE文件被裝載時(shí)直接映射到進(jìn)程虛擬空間中運(yùn)行,它是進(jìn)程虛擬空間的映像,所以PE很多時(shí)候被稱為映像文件。

5.3鏈接指示信息

COFF文件結(jié)構(gòu)和ELF文件結(jié)構(gòu)大體相同,只是前者多了兩個(gè)段——drectve段和debug$S段。

drectve很顯然就是directive的某種縮寫形式,而directive是指令的意思,因此它是編譯器傳遞給鏈接器的鏈接指令。

5.4調(diào)試信息

在COFF中所有以debug開頭的段都是調(diào)試信息段。

debug$S表示與符號(hào)相關(guān)的調(diào)試信息段。

還有其他段可參見P165。

5.5大家都有符號(hào)表

與ELF不同的是COFF還會(huì)為字符串常量自動(dòng)生成符號(hào)。

5.6

WINDOWS下的ELF——PE

PE比COFF多了兩個(gè)主要的變化:

1、PE文件的開始部分是DOS MZ可執(zhí)行文件格式的文件頭和樁代碼。

2、COFF格式中的IMAGE_FILE_HEADER被擴(kuò)展成為IMAGE_NT_HEADERS。

DOS和WINDOWS下的可執(zhí)行文件格式都是exe,但是DOS下的卻是MZ格式。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容