Microsoft Portable Executable (PE) and Common Object File Format...

需积分: 9 1 下载量 196 浏览量 更新于2024-08-01 收藏 196KB DOCX 举报
"Microsoft Portable Executable and Common Object File Format Specification (Revision 8.1)" 这篇文档详细阐述了在Windows家族操作系统中可执行(image)文件和对象文件的结构,即Portable Executable (PE) 和 Common Object File Format (COFF) 文件。PE文件格式是微软为Windows系统设计的一种二进制文件格式,用于存放编译后的代码和数据,包括应用程序、动态链接库(DLL)等。而COFF文件格式则是一种通用的对象文件格式,它包含了编译器生成的中间结果,可以被链接器进一步处理。 PE和COFF文件结构主要由以下几个部分组成: 1. **文件头(File Header)**:包含文件的基本信息,如目标机器类型、节表入口点、文件大小等。其中,COFF文件头定义了程序的目标体系结构,如Intel x86或AMD64。 2. **可选头(Optional Header)**:提供了关于可执行文件的额外信息,如程序入口点、基地址、段对齐方式、子系统类型等。对于PE文件,这个部分是可选的。 3. **节头部表(Segment or Section Headers)**:定义了文件中的各个节(segment或section),每个节可能包含代码、数据或者其他资源。 4. **节数据(Segments or Sections)**:实际的数据区,如代码、初始化数据、未初始化数据、资源、导入和导出表等。 5. **重定位信息(Relocations)**:描述了由于加载时基地址的变化,代码和数据需要进行的位置调整。 6. **符号表(Symbol Table)**:存储了源文件中的函数和变量的符号信息,用于链接过程。 7. **字符串表(String Table)**:包含了模块引用的字符串,如函数名和库名。 8. **导出表(Export Table)**:描述了该文件对外提供的函数和变量。 9. **导入表(Import Table)**:列出了文件依赖的其他模块及其导出的函数和变量。 10. **资源表(Resource Table)**:包含了用户界面相关的资源,如图标、菜单、字符串等。 11. **异常处理表(Exception Handling Table)**:提供了异常处理机制的信息。 12. **线程局部存储表(Thread Local Storage Table)**:管理线程局部变量的分配和访问。 13. **调试信息(Debug Information)**:帮助调试器理解代码结构和运行时行为。 14. **证书表(Certificate Table)**:用于签名验证,确保文件未被篡改。 该规范的修订8.1版适用于以下操作系统:Windows Server 2008、Windows Vista、Windows Server 2003、Windows XP和Windows 2000。尽管此文档有助于开发工具和应用,但微软保留不事先通知就修改文档的权利。开发者应关注微软的官方网站以获取最新的信息和更新。 参考和资源列表可在文档末尾找到,也可以访问 http://www.microsoft.com/whdc/system/platform/firmware/PECOFF.mspx 获取更多信息。合法通知表明,PE和COFF格式的使用必须遵守微软的相关条款和条件。