下载此文档

PE文件格式.doc


文档分类:IT计算机 | 页数:约33页 举报非法文档有奖
1/33
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/33 下载此文档
文档列表 文档介绍
PE文件格式详解(上)
作者:MSDN
译者:李马 (/~titilima)
摘要
   Windows NT 。PE文件格式的规范包含在了MSDN的CD中(Specs and Strategy, Specifications, Windows NT File Format Specifications),但是它非常之晦涩。
   然而这一的文档并未提供足够的信息,所以开发者们无法很好地弄懂PE格式。本文旨在解决这一问题,它会对整个的PE文件格式作一个十分彻底的解释,另外,本文中还带有对所有必需结构的描述以及示范如何使用这些信息的源码示例。
   为了获得PE文件中所包含的重要信息,,本文中所有出现的源码示例亦均摘自于此。这个DLL和它的源代码都作为PEFile示例程序的一部分包含在了CD中(译注:示例程序请在MSDN中寻找,本站恕不提供),你可以在你自己的应用程序中使用这个DLL;同样,你亦可以依你所愿地使用并构建它的源码。在本文末尾,。我觉得你会发现这些函数会让你从容应付PE文件格式的。
介绍
   Windows操作系统家族最近增加的Windows NT为开发环境和应用程序本身带来了很大的改变,这之中一个最为重大的当属PE文件格式了。新的PE文件格式主要来自于UNIX操作系统所通用的COFF规范,同时为了保证与旧版本MS-DOS及Windows操作系统的兼容,PE文件格式也保留了MS-DOS中那熟悉的MZ头部。
   在本文之中,PE文件格式是以自顶而下的顺序解释的。在你从头开始研究文件内容的过程之中,本文会详细讨论PE文件的每一个组成部分。
   许多单独的文件成分定义都来自于Microsoft Win32 ,在这个文件中你会发现用来描述文件头部和数据目录等各种成分的结构类型定义。但是,,在这种情况下,我定义了自己的结构来存取文件数据。,。
   ,还有一个单独的Win32示例应用程序,。创建这一示例目的有二:首先,,并且某些情况要求我同时查看多个文件;其次,很多解决PE文件格式的工作和直接观看数据有关。例如,要弄懂导入地址名称表是如何构成的,、导入映像数据目录、,而EXE

   闲话少叙,让我们开始吧。
PE文件结构
   PE文件格式被组织为一个线性的数据流,它由一个MS-DOS头部开始,接着是一个是模式的程序残余以及一个PE文件标志,这之后紧接着PE文件头和可选头部。这些之后是所有的段头部,段头部之后跟随着所有的段实体。文件的结束处是一些其它的区域,其中是一些混杂的信息,包括重分配信息、符号表信息、行号信息以及字串表数据。我将所有这些成分列于图1。

   从MS-DOS文件头结构开始,我将按照PE文件格式各成分的出现顺序依次对其进行讨论,并且讨论的大部分是以示例代码为基础来示范如何获得文件的信息的。。这些示例都利用了Windows NT最酷的特色之一——内存映射文件,这一特色允许用户使用一个简单的指针来存取文件中所包含的数据,因此所有的示例都使用了内存映射文件来存取PE文件中的数据。
   注意:。
MS-DOS头部/实模式头部
   如上所述,PE文件格式的第一个组成部分是MS-DOS头部。在PE文件格式中,它并非一个新概念,因为它与MS-DOS -DOS头部是完全一样的。保留这个相同结构的最主要原因是,当你尝试在Windows -DOS ,操作系统能够读取这个文件并明白它是和当前系统不相兼容的。换句话说,当你在MS-DOS NT可执行文件时,你会得到这样一条消息:“This program cannot be run

PE文件格式 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数33
  • 收藏数0 收藏
  • 顶次数0
  • 上传人iris028
  • 文件大小177 KB
  • 时间2021-01-02