第5章 WINDOWS PE/COFF

5.1

Windows的二进制文件格式PE/COFF

Win32平台下标准文件格式为PE,PE=Protable

Executable。

PE和ELF同根同源都是从COFF(Common Object File Format)发展而来。

5.2

PE的前身COFF

PE文件被装载时直接映射到进程虚拟空间中运行,它是进程虚拟空间的映像,所以PE很多时候被称为映像文件。

5.3链接指示信息

COFF文件结构和ELF文件结构大体相同,只是前者多了两个段——drectve段和debug$S段。

drectve很显然就是directive的某种缩写形式,而directive是指令的意思,因此它是编译器传递给链接器的链接指令。

5.4调试信息

在COFF中所有以debug开头的段都是调试信息段。

debug$S表示与符号相关的调试信息段。

还有其他段可参见P165。

5.5大家都有符号表

与ELF不同的是COFF还会为字符串常量自动生成符号。

5.6

WINDOWS下的ELF——PE

PE比COFF多了两个主要的变化:

1、PE文件的开始部分是DOS MZ可执行文件格式的文件头和桩代码。

2、COFF格式中的IMAGE_FILE_HEADER被扩展成为IMAGE_NT_HEADERS。

DOS和WINDOWS下的可执行文件格式都是exe,但是DOS下的却是MZ格式。

你可能感兴趣的:(第5章 WINDOWS PE/COFF)