
Windows NT Portable Executable (PE) Format Specification v6.0详解
下载需积分: 10 | 883KB |
更新于2024-07-16
| 14 浏览量 | 举报
收藏
Portable Executable and Common Object File Format (PE/COFF) 是由微软公司制定的一种用于Windows NT平台的二进制可执行文件和目标文件的标准格式,版本为6.0,发布于1999年2月。这份规格文档旨在帮助开发者开发适用于Windows NT的操作系统工具和应用程序,尽管它可能不是所有方面的完整规范,因为微软保留了随时更新文档的权利。
1. **General Concepts**:
PE/COFF文件格式的主要概念包括可执行性和可重定位性,这意味着程序可以在不同的平台上运行,并且允许在链接时进行动态调整。它支持模块化设计,使得多个独立的模块可以组合成一个大型应用。
2. **File Headers**:
- **MS-DOS Stub (Image Only)**: 文件的开始是MS-DOS引导部分,即使在非DOS环境下也存在,负责加载实际的PE结构。
- **Signature (Image Only)**: 签名确认文件是PE格式,如"\x4D\x5A"代表MZ头,是DOS引导记录的前缀。
- **COFF File Header**: 对象文件和可执行文件共有的基本元数据,包含机器类型和特征位,用于识别目标机器架构。
- **Optional Header**: 可选的,通常在可执行文件中存在,包含了操作系统特定的信息,如地址空间布局、导入导出表等。
3. **Section Table (Section Headers)**:
- **Section Flags**: 指示每个节(section)的属性,如可执行、可读、只读等。
- **Grouped Sections**: 可以按照逻辑将多个节组织在一起,便于管理。
4. **Other Content of the File**:
- **Section Data**: 包含程序的实际代码、数据和资源,每个节都有自己的起始地址和大小。
- **COFF Relocations**: 在对象文件中,用于存储节间关系和动态地址调整的信息。
- **COFF Line Numbers**: 提供源代码行号信息,有助于调试。
- **COFF Symbol Table**: 存储符号名称及其对应的地址和类型,方便链接器进行链接和定位。
5. **Type Indicators**: 在重定位表中,指示不同类型的数据调整操作,例如相对地址调整、绝对地址调整等。
这份文档详细介绍了如何解析和创建符合PE/COFF标准的文件,对Windows开发人员来说,理解并遵循这些规则至关重要,以便确保程序能够在各种Windows环境中正确编译、链接和运行。同时,对于研究低级系统编程、逆向工程或安全分析等领域的人来说,掌握PE/COFF结构是不可或缺的技能。
相关推荐

















beebeeyoung
- 粉丝: 19
最新资源
- 网络版黑白棋游戏的开源代码分析
- 智能计算器程序及其源文件下载
- Java开发指南:实现随机验证码制作
- 初学者必备:全面的XML学习指南
- 批处理脚本学习经典范例
- CXMLControl类库使用教程与操作指南
- 掌握轻量级J2EE实战:Struts+Spring+Hibernate整合开发
- 掌握WEB服务器控件操作:免费域名系统学习指南
- 单片机多机通信源码分享与分析
- 开放源代码的ENO企业人事管理系统使用与完善指南
- NHibernate入门实例教程:VS2005与Oracle10g配置
- Delphi编写的最小二乘法曲线拟合工具介绍
- LIBUIDK.Dll:界面皮肤的优化与应用
- Linux/Unix Shell命令大全及编程指南完整教程
- KingReport报表组件使用指南与源码公开
- 站长265美化版动易SQL商业全功能无限制发布
- Java可执行JAR文件包制作与jar命令深入解析
- 探索昔日Flash网站的构建与展示
- 代码宠物:管理代码的OLE 2.0与数据管道技术助手
- C++对象模型内部机制深入剖析
- SkinLoad界面换肤工具源代码及其下载指南
- EastDraw: 简易图形处理软件的源码与资源分享
- 智能版ONSHPAC单用户购物系统免费下载与功能介绍
- 简易银行存款利息计算器源码分享