“PE文件格式”1.9版 完整译文(附注释)(1)

豆豆网   技术应用频道   2007年01月14日  【字号: 收藏本文

本文详细介绍“PE文件格式”1.9版 完整译文(附注释)(1)

  原著:Bernd.Luevelsmeyer               

  翻译:ah007

  [注意:本译文的所有大小标题序号都是译者添加,以方便大家阅读。圆圈内的数字是注释的编号,其中注释②译自微软的《PECOFF规范》,其它译自网络。----译者]

  一、前言(Preface)

  ------------------

  PE(“portableexecutable”,可移植的可执行文件)文件格式,是微软WindwosNT,Windows95和Win32子集①中的可执行的二进制文件的格式;在WindowsNT中,驱动程序也是这种格式。它还能被应用于各种目标文件②和库文件中。

  这种文件格式是由微软设计的,并于1993年被TIS(toolinterfacestandard,工具接口标准)委员会(由Microsoft,Intel,Borland,Watcom,IBM,等等组成)所批准,它明显的基于COFF文件格式的许多知识。COFF(“commonobjectfilefromat”,通用目标文件格式)是应用于好几种UNIX系统③和VMS④系统中的目标文件和可执行文件的格式。

  Win32SDK⑤中包含一个名叫<winnt.h>的头文件,其中含有很多用于PE格式的#define和typedef定义。我将逐步地提到其中的很多结构成员名字和#define定义。

  你也可能发现DLL文件“imagehelp.dll”很有用途,它是WindowNT的一部分,但其书面文件却很缺乏。它的一些功用在“DeveloperNetwork”(开发者网络)中有所描述。

  二、总览(GeneralLayout)

  -------------------------

  在一个PE文件的开始处,我们会看到一个MS-DOS可执行体(英语叫“stub”,意为“根,存根”);它使任何PE文件都是一个有效的MS-DOS可执行文件。

  在DOS-根之后是一个32位的签名以及魔数0x00004550(IMAGE_NT_SIGNATURE)(意为“NT签名”,也就是PE签名;十六进制数45和50分别代表ASCII码字母E和P----译者注)。

来源:bbs.pediy.com    作者:ah007    责编:豆豆技术应用

正在加载评论...