第五章 Windows PE/COFF
1. VS2005编译器cl,链接器link,可执行文件查看器dumpbin等
映像:因为PE文件在装载的时候被直接映射到进程的虚拟空间中运行,它是进程的虚拟空间的映像。所以PE可执行文件很多时候被叫做映像文件。
2. COFF Object File Format
Image Header IMAGE_FILE_HEADER
Section Table IMAGE_SECTION_HEADER[]
.text
.data
.drective //编译器传递给链接器的指令,即如何链接这个目标文件
.debug$S //表示包含的是符号(Symbol)相关的调试信息段
other sections
Symbol Table
注:我们可以在cl编译器参数里加/Zl来关闭默认C库链接指令
PE文件头与COFF相比有如下变化:
文件最开始不是COFF头,而是DOS MZ可执行文件格式文件头和桩代码(DOS MZ File Header and Stub)
原来的COFF文件头中的IMAGE_FILE_HEADER部分扩展为PE文件头IMAGE_NT_HEADERS,这个结构包括了原来的Image Header及新增的PE扩展头部结构(PE Optional Header)
参见“WinNT.h”
本文介绍了使用VS2005编译器时涉及到的PE(可执行)和COFF(通用对象文件格式)的相关概念。详细解析了PE文件的结构及其在进程虚拟空间中的映射原理,并对比了PE文件头与COFF文件头的主要区别。
408

被折叠的 条评论
为什么被折叠?



