Microsoft Portable Executable (PE) and Common Object File Format...
需积分: 9 76 浏览量
更新于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格式的使用必须遵守微软的相关条款和条件。
2019-05-31 上传
2008-10-26 上传
2020-05-03 上传
2022-09-23 上传
2007-08-13 上传
2010-11-25 上传
2022-09-21 上传
2008-03-19 上传
2008-07-16 上传
yunque100
- 粉丝: 7
- 资源: 16
最新资源
- 开源通讯录备份系统项目,易于复刻与扩展
- 探索NX二次开发:UF_DRF_ask_id_symbol_geometry函数详解
- Vuex使用教程:详细资料包解析与实践
- 汉印A300蓝牙打印机安卓App开发教程与资源
- kkFileView 4.4.0-beta版:Windows下的解压缩文件预览器
- ChatGPT对战Bard:一场AI的深度测评与比较
- 稳定版MySQL连接Java的驱动包MySQL Connector/J 5.1.38发布
- Zabbix监控系统离线安装包下载指南
- JavaScript Promise代码解析与应用
- 基于JAVA和SQL的离散数学题库管理系统开发与应用
- 竞赛项目申报系统:SpringBoot与Vue.js结合毕业设计
- JAVA+SQL打造离散数学题库管理系统:源代码与文档全览
- C#代码实现装箱与转换的详细解析
- 利用ChatGPT深入了解行业的快速方法论
- C语言链表操作实战解析与代码示例
- 大学生选修选课系统设计与实现:源码及数据库架构