pe文件格式1.9版 完整译文(附注释)

pe文件格式1.9版 完整译文(附注释)

ID:6760210

大小:89.00 KB

页数:39页

时间:2018-01-24

pe文件格式1.9版 完整译文(附注释)_第1页
pe文件格式1.9版 完整译文(附注释)_第2页
pe文件格式1.9版 完整译文(附注释)_第3页
pe文件格式1.9版 完整译文(附注释)_第4页
pe文件格式1.9版 完整译文(附注释)_第5页
资源描述:

《pe文件格式1.9版 完整译文(附注释)》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、PE文件格式1.9版完整译文(附注释)标题:【翻译】“PE文件格式”1.9版完整译文(附注释)作者:ah007时间:2006-02-28,13:32链接:http://bbs.pediy.com/showthread.php?threadid=21932$Id:pe.txt,v1.91999/03/2023:55:09LUEVELSMEYERExp$PE文件格式系列译文之一----【翻译】“PE文件格式”1.9版完整译文(附注释)=========================================================原著:Bernd.Lue

2、velsmeyer翻译:ah007[注意:本译文的所有大小标题序号都是译者添加,以方便大家阅读。圆圈内的数字是注释的编号,其中注释②译自微软的《PECOFF规范》,其它译自网络。----译者]一、前言(Preface)------------------PE(“portableexecutable”,可移植的可执行文件)文件格式,是微软WindwosNT,Windows95和Win32子集①中的可执行的二进制文件的格式;在WindowsNT中,驱动程序也是这种格式。它还能被应用于各种目标文件②和库文件中。这种文件格式是由微软设计的,并于1993年被TIS(tooli

3、nterfacestandard,工具接口标准)委员会(由Microsoft,Intel,Borland,Watcom,IBM,等等组成)所批准,它明显的基于COFF文件格式的许多知识。COFF(“commonobjectfilefromat”,通用目标文件格式)是应用于好几种UNIX系统③和VMS④系统中的目标文件和可执行文件的格式。Win32SDK⑤中包含一个名叫的头文件,其中含有很多用于PE格式的#define和typedef定义。我将逐步地提到其中的很多结构成员名字和#define定义。你也可能发现DLL文件“imagehelp.dll”很

4、有用途,它是WindowNT的一部分,但其书面文件却很缺乏。它的一些功用在“DeveloperNetwork”(开发者网络)中有所描述。二、总览(GeneralLayout)-------------------------在一个PE文件的开始处,我们会看到一个MS-DOS可执行体(英语叫“stub”,意为“根,存根”);它使任何PE文件都是一个有效的MS-DOS可执行文件。在DOS-根之后是一个32位的签名以及魔数0x00004550(IMAGE_NT_SIGNATURE)(意为“NT签名”,也就是PE签名;十六进制数45和50分别代表ASCII码字母E和P---

5、-译者注)。之后是文件头(按COFF格式),用来说明该二进制文件将运行在何种机器之上、分几个区段、链接的时间、是可执行文件还是DLL、等等。(本文中可执行文件和DLL文件的区别在于:DLL文件不能被启动,但能被别的二进制文件使用,而一个二进制文件则不能链接到另一个可执行文件。)那些之后,是可选头(尽管它一直都存在,却仍被称作“可选”----因为COFF文件格式仅为库文件使用一个“可选头”,却不为目标文件使用一个“可选头”,这就是为什么它被称为“可选”的原因)。它会告诉我们该二进制文件怎样被载入的更多信息:开始的地址呀、保留的堆栈数呀、数据段的大小呀、等等。可选头的一

6、个有趣的部分是尾部的“数据目录”数组;这些目录包含许多指向各“节”数据的指针。例如:如果一个二进制文件拥有一个输出目录,那么你就会在数组成员“IMAGE_DIRECTORY_ENTRY_EXPORT”(输出目录项)中找到一个指向那个目录的指针,而该指针指向文件中的某节。跟在各种头后面我们就发现各个“节”了,它们都由“节头”引导。本质上讲,各节中的内容才是你执行一个程序真正需要的东西,所有头和目录这些东西只是为了帮助你找到它们。每节都含有和对齐、包含什么样的数据(如“已初始化数据”等等)、是否能共享等有关的一些标记,还有就是数据本身。大多数(并非所有)节都含有一个或多

7、个可通过可选头的“数据目录”数组中的项来参见的目录,如输出函数目录和基址重定位目录等。无目录形式的内容有:例如“可执行代码”或“已初始化数据”等。+-------------------+

8、DOS-stub

9、--DOS-头+-------------------+

10、file-header

11、--文件头+-------------------+

12、optionalheader

13、--可选头

14、----------

15、

16、

17、

18、datadirectories

19、--数据目录

20、

21、+-------------------+

22、

23、

24、sectionheaders

25、--节头

26、

27、+-------

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。