可执行文件格式.doc

  1. 1、本文档共32页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
可执行文件格式

可执行文件格式 1、裸机中的可执行文件没有文件头部,是纯代码文件。因为没有操作系统,不 能依靠加载器构建可执行程序的映像。故一般裸机中的执行文件都没有文件格 式。 2、标准的Dos可执行文件包括批处理文件、Dos下的可加载驱动程序(.SYS) 文件以及普通的.COM、.EXE可执行文件。 批处理文件,是以.BAT结尾的文件,在.BAT文件中可以包括一些DOS命 令,以及在批处理文件中调用其它的可执行文件。批处理文件还有一些简单的流 程控制功能,可以实现循环、条件判断等简单的编程工作。 设备驱动文件,是以.sYS结尾的文件,如config.SYs和IO.sys等,是Dos 操作系统使用的设备驱动程序。 COM文件,是以.COM结尾的纯代码文件。没有文件头部分,默认情况下 总是从0xl00H处开始执行,没有重定位项,这也限制了它所有代码和数据必须 控制在64KB以内。 EXE文件,是以.EXE结尾的文件,这种文件以英文字母MZ开头,通 常称之为MZ文件。MZ文件有一个文件头,用来指出每个段的定义,以及重定 位表。.EXE文件摆脱了代码大小最多不能超过64KB的限制,是DOS下,最主 要的文件格式。 MZ文件的格式:MZ文件由三部分构成:文件头、重定位表和二进制代码。 Mz文件头包含Ms-Dos用于加载程序的信息,例如程序的大小和寄存器的初始 值。文件头还指向一个重定位表,该表包含指向程序映像中可重定位段的指针链 表。文件头的格式用EXEHHEADER结构定义如下(注释符号后面的十六进制 表示相应字段的偏移) EXEHEADER STRUC exsi,ature dw?;00H,文件类型标记:ox4DSA(ASCll字符Mz) exExraBytes dw?;oZH,文件最后一页的字节数(51ZB一页) exPages dw?;04H,文件的总页数 exRefocltems dw?;06H,重定位项的个数 exHeadersize dw?;0SH,以字节为单位的文件头大小 exMIILAlfoo dw?;0AH,根据代码大小分配的最小内存 exMaxAlloc dw?;OCH,根据代码大小分配的最大段(Para歹aph)数 exlnitSS dw?;0EH,初始55值,相对于入口点 exlnitSP dw?;1OH,初始SP值 exChechsum dw?;12H,校验和或者零 exlnitIP dw?;14H,初始IP值 exlnitCS dw?;16H,初始CS值,相对入口点 exRelocTable dw?;lSH,重定位表的偏移地址 exoverlay dw?;IAH,连接程序产生的覆盖号 EXEHEADER ENDS 下面简单介绍DOS下.EXE文件的加载过程。 MZ文件包含一个文件头和一个可重新定位程序映像(载入模块)。文件头 包含MS一DOS用于加载程序的信息,例如程序的大小和寄存器的初始值。程序 映像包含处理器代码和程序的初始数据,它紧接在文件头之后,它的大小等于 MZ文件大小减去文件头的大小。MS一DOS通过把该映像直接从文件复制到内存 加载EXE程序,然后调整定位表中说明的可重定位段的地址。 重定位表示一个重定位指针数组,每个指针指向程序影响中的可重定位段地 址。文件头中的偏移06H处说明了数组中指针的个数。偏移18H处指向重定位 表的指针链表。每个重定位指针由两个16位值(即偏移量和段地址)组成。 3、诚ndows下的可执行文件格式 NE格式: Windows3.0/3.1版本中,微软推出了一种新的可执行文件格式,在MZ 文件头之后又有一个以NE开始的文件头,称之为NE(NewExecutable)文件。 由于Windows的可执行文件同DOS相比增加了很多内容,如资源、动态库等, NE格式表现极为复杂,NE格式文件在装载程序读取磁盘上的文件后,需要在 内存中组装成一个完全不同的数据结构才开始运行。 PE格式: 在Windows32位平台微软又推出了一种新的可执行文件格式-可移植的可执行文件 (PortableExecutable File)格式。即PE格式。它同NE格式不同的是在MZ文件头之后是 一个以PE开始的文件头。PE文件格式是从COFF(UNIX中广泛使用的通用二进制文件 格式)的对象格式发展而来,它比NE格式前进了一大步,其文件在磁盘中的格式同内存 中的格式区别不大,装载程序实现起来相当简单。 PE文件格式被组织为一个线性的数据流,它由一个MS一DOS头部开始,接 着是一个是模式的程序残余以及一个PE文件标志,这之后紧接着PE文件头和 可选头部。这些之后是所有的段头部,段头部之后跟随着所有的段实体。文件的 结束处是一些其它的区域,其中是一些混杂的信息,包括重分配信息、符号表信 息、行号信息以及字串表

文档评论(0)

pangzilva + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档