- 4
- 0
- 约2.85万字
- 约 38页
- 2016-11-28 发布于河南
- 举报
PE文件格式说明
PE文件格式说明
PE文件格式系列译文之一
【翻译】“PE文件格式”1.9版 完整译文(附注释)
=========================================================
原著:Bernd. Luevelsmeyer
翻译:ah007
[注意:本译文的所有大小标题序号都是译者添加,以方便大家阅读。圆圈内的数字是注释的编号,其中注释②译自微软的《PECOFF规范》,其它译自网络。译者]
一、前言(Preface)
PE(“portable executable”,可移植的可执行文件)文件格式,是微软WindwosNT,Windows95和Win32子集①中的可执行的二进制文件的格式;在WindowsNT中,驱动程序也是这种格式。它还能被应用于各种目标文件②和库文件中。
这种文件格式是由微软设计的,并于1993年被TIS(tool interface standard,工具接口标准)委员会(由Microsoft,Intel,Borland,Watcom,IBM,等等组成)所批准,它明显的基于COFF文件格式的许多知识。COFF(“common object file fromat”,通用目标文件格式)是应用于好几种UNIX系统③和VMS④系统中的目标文件和可执行文件的格式。
Win32 SDK⑤中包含一个名叫winnt.h的头文件,其中含有很多用于PE格式的#define和typedef定义。我将逐步地提到其中的很多结构成员名字和#define定义。
你也可能发现DLL文件“imagehelp.dll”很有用途,它是WindowNT的一部分,但其书面文件却很缺乏。它的一些功用在“Developer Network”(开发者网络)中有所描述。
二、总览(General Layout)
在一个PE文件的开始处,我们会看到一个MS-DOS可执行体(英语叫“stub”,意为“根,存根”);它使任何PE文件都是一个有效的MS-DOS可执行文件。
在DOS-根之后是一个32位的签名以及魔数0(IMAGE_NT_SIGNATURE)(意为“NT签名”,也就是PE签名;十六进制数45和50分别代表ASCII码字母E和P译者注)。
之后是文件头(按COFF格式),用来说明该二进制文件将运行在何种机器之上、分几个区段、链接的时间、是可执行文件还是DLL、等等。(本文中可执行文件和DLL文件的区别在于:DLL文件不能被启动,但能被别的二进制文件使用,而一个二进制文件则不能链接到另一个可执行文件。)
那些之后,是可选头(尽管它一直都存在,却仍被称作“可选”因为COFF文件格式仅为库文件使用一个“可选头”,却不为目标文件使用一个“可选头”,这就是为什么它被称为“可选”的原因)。它会告诉我们该二进制文件怎样被载入的更多信息:开始的地址呀、保留的堆栈数呀、数据段的大小呀、等等。
可选头的一个有趣的部分是尾部的“数据目录”数组;这些目录包含许多指向各“节”数据的指针。例如:如果一个二进制文件拥有一个输出目录,那么你就会在数组成员“IMAGE_DIRECTORY_ENTRY_EXPORT”(输出目录项)中找到一个指向那个目录的指针,而该指针指向文件中的某节。
跟在各种头后面我们就发现各个“节”了,它们都由“节头”引导。本质上讲,各节中的内容才是你执行一个程序真正需要的东西,所有头和目录这些东西只是为了帮助你找到它们。
每节都含有和对齐、包含什么样的数据(如“已初始化数据”等等)、是否能共享等有关的一些标记,还有就是数据本身。大多数(并非所有)节都含有一个或多个可通过可选头的“数据目录”数组中的项来参见的目录,如输出函数目录和基址重定位目录等。无目录形式的内容有:例如“可执行代码”或“已初始化数据”等。
++
| DOS-stub | --DOS-头
++
| file-header | --文件头
++
| optional header | --可选头
|- - - - - - - - - -|
| |
| data directories | --数据目录
| |
++
| |
| section headers | --节头
| |
您可能关注的文档
- 夏威夷英语介绍ppt.ppt
- Module 8 Unit 1 How do I get to the Forbidden City.ppt
- Drunken Cambridge students cause havoc in public park.ppt
- 正反观点.ppt
- M2 U1(初二下外研版).ppt
- 观点作文.ppt
- 对比性作文训练.ppt
- 英语图表作文3.ppt
- 新牛津Unit 5 Good manners reading2.ppt
- 滨水开发案例--伦敦.ppt
- 人教版九年级英语Unit 4曾害怕课件3a-4c.pdf
- 雅思口语考题回顾:朗阁海外考试研究中心2019年10月10日Part 1考题总结.pdf
- 2026届高三地理一轮复习课件小专题河流袭夺.pptx
- 【名师原创】复习专题5 三角函数 作者:合肥市第八中学 蒲荣飞名师工作室.docx
- 高中数学一轮复习 微专题2 抽象函数.docx
- 高中数学——复习专题4 空间向量与立体几何.docx
- 高中数学一轮复习 微专题3 空间几何体中的截面、轨迹问题.docx
- 高中数学一轮复习 微专题4 空间几何体的最值、范围问题.docx
- 导流洞施工质量通病防治手册.docx
- 江苏省徐州市第一中学、徐市第三中学等五校2026届高三上学期12月月考历史试题含答案.docx
最近下载
- 驱动电机及控制技术中职全套教学课件.pptx
- 创意简约卡通小清新医疗静脉输液的安全通用PPT模板.pptx VIP
- 标准图集-12J003-室外工程.pdf VIP
- 基于单片机的出租车计价器设计.docx VIP
- 实施指南《GB_T28698-2012滚动轴承电机用深沟球轴承技术条件》实施指南.docx VIP
- 新型水处理技术推广商业计划书.doc
- 期末复习+课件-2025-2026学年浙教版科学七年级上册科学.pptx VIP
- 我国航海教育管理研究的开题报告.docx VIP
- 新解读《GB_T 28698-2012滚动轴承 电机用深沟球轴承 技术条件》.pptx VIP
- 盆底康复治疗临床诊疗指南.docx VIP
原创力文档

文档评论(0)