pe文件格式研究及pedump的实现论文.doc
约64页DOC格式手机打开展开
pe文件格式研究及pedump的实现论文,摘要:详细介绍pe文件格式,包含文件头、节表、节、资源目录、资源等等。研究如何用程序对各部分的内容进行读取分析显示,甚至对原pe文件的内容进行可行的修改、导入导出等功能。并实现对分析结果的文本导出保存。此软件使用delphi在windows系统下开发完成。abstract:the pe ("portable execu...
内容介绍
此文档由会员 wanli1988go 发布
摘要:
详细介绍PE文件格式,包含文件头、节表、节、资源目录、资源等等。研究如何用程序对各部分的内容进行读取分析显示,甚至对原PE文件的内容进行可行的修改、导入导出等功能。并实现对分析结果的文本导出保存。
此软件使用DELPHI在Windows系统下开发完成。
ABSTRACT:
The PE ("portable executable") file format is the format of executable binaries (DLLs and programs) for MS windows NT, windows 95 and win32s; This article introduced the PE format,include DOS ”MZ” Header, Dos stub, NT Header,Section Table,Section,Resource directory,Resource,etc.Study how to read all parts of PE format files and displayed it in our program,even do some change to that PE format file and rewrite into it,also can read out one part of it and save it as another file,Study how to put a TXT file for the result.
This software named Pedump was programed by Delphi,run in windows.
目 录
第一章 问题定义 …………………………………………………………1
第一节 PE格式简要介绍 ……………………………………………… 1
第二节 PE格式分析器开发意义 ……………………………… 15
第三节 PE格式分析器开发目标 ……………………………… 16
第二章 系统可行性分析 ……………………………………….. 17
第一节 可行性研究 …………………………………………………….…. 17
第二节 系统基本模型 …………………………………………………… 18
第三节 数据流图 ……………………………………………………………. 19
第四节 数据字典 ……………………………………………………………. 19
第三章 需求分析 ……………………………………………………… 23
第一节 系统需求分析 …………………………………………………… 23
第二节 目标确定 ……………………………………………………………. 24
第三节 设计思想和性能设计 ……………………………………. 25
第四章 系统总体分析 ……………………………………………. 26
第一节 选择合理的方案 …………………………………………….. 26
第二节 系统功能分解 ………………………………………………….. 27
第三节 资源数据导出导入的分析设计 …………………. 27
第四节 文本结果导出的分析设计 …………………………… 28
第五章 系统程序设计 ……………………………………………. 29
第一节 分析模块的实现 …………………………………………….. 29
第二节 基本信息显示模块的实现 ………………………….. 29
第三节 资源数据导出导入模块的实现 ……………….… 42
第四节 文本结果导出模块的实现 …………………………… 46
第六章 运行结果及界面 ………………………………………. 48
第七章 总结 ………………………………………………………………. 51
附录一 参考文献 ……………………………………………………… 52
附录二 文件分析文本结果事例 …………………………. 53
第一章 问题定义
对于一个程序员或电脑使用者,总要和PE文件打交道,PE文件是 Win32环境自身所带的可执行文件格式,它的一些特性继承自Unix的COFF(Common Object File Format)文件格式。PE即Portable Executable(可移植执行)的缩写,意味着此文件格式是跨Win32平台的:即使Windows运行在非Intel的CPU上,PE装载器都能识别和使用该文件格式。我们平时在Windows下使用的.exe文件就是典型的PE类型文件,当然PE文件还包含了例如32位的.DLL等任何可在Win32环境下执行的文件,很多时候我们需要对自己或者已有的PE文件作一个分析,以便改进或者研究,由于PE文件是计算机中最重要,最常用的文件,因而学习,了解PE文件格式对于我们不无裨益。
第一节 PE格式简要分析
PE文件格式主要由微软制定,此格式基本已成为Windows下可执行文件的标准格式,一个标准的PE文件包含了很多部分,每部分都有自己的结构,它的主要组成如表1.1.1:
英文标示 说明
DOS MZ Header DOS文件头
Dos stub
Signature PE文件头,
包含数据目录
File header
Optional header
Section Table 节表
Sections 节
Resource Directory 资源目录
表1.1.1
以下我将对以上几个部分分别介绍,由于资料有限,每部分不可能说得非常详细,只是每部分的介绍都加上了我的一些研究心得,这将为后章的PEDUMP文件分析器的实现打下基础。
1.1 DOS文件头
所有PE文件都必须以一个简单的DOS MZ Header开始。有了它,一旦程序在DOS下执行,DOS就能识别出这是有效的执行体,通常以两字节的"MZ"(IMAGE_DOS_SIGNATURE)标示字符开始的,然后运行紧随MZ header之后的DOS stub(片断)。DOS stub实际上是个有效的EXE,在不支持PE文件格式的操作系统中(例如DOS系统),它将简单显示一个错误提示,类似于字符串" This program must be run under Win32"或者程序员可根据自己的意图实现完整的DOS代码。
大多数情况下DOS文件头是由汇编器/编译器自动生成,它简单调用21h中断服务来显示字符串。
在Dos文件头中有两个比较重要的值,一个是位于文件开始位置的.e_magic的值,包含了标志字符串"MZ",另一个是._lfanew的值,指出了PE header的起始地址,通常在文件开始$003C偏移地址指明,比如偏移地址的值为$1000,表示PE文件头从文件地址$1000处开始。
详细介绍PE文件格式,包含文件头、节表、节、资源目录、资源等等。研究如何用程序对各部分的内容进行读取分析显示,甚至对原PE文件的内容进行可行的修改、导入导出等功能。并实现对分析结果的文本导出保存。
此软件使用DELPHI在Windows系统下开发完成。
ABSTRACT:
The PE ("portable executable") file format is the format of executable binaries (DLLs and programs) for MS windows NT, windows 95 and win32s; This article introduced the PE format,include DOS ”MZ” Header, Dos stub, NT Header,Section Table,Section,Resource directory,Resource,etc.Study how to read all parts of PE format files and displayed it in our program,even do some change to that PE format file and rewrite into it,also can read out one part of it and save it as another file,Study how to put a TXT file for the result.
This software named Pedump was programed by Delphi,run in windows.
目 录
第一章 问题定义 …………………………………………………………1
第一节 PE格式简要介绍 ……………………………………………… 1
第二节 PE格式分析器开发意义 ……………………………… 15
第三节 PE格式分析器开发目标 ……………………………… 16
第二章 系统可行性分析 ……………………………………….. 17
第一节 可行性研究 …………………………………………………….…. 17
第二节 系统基本模型 …………………………………………………… 18
第三节 数据流图 ……………………………………………………………. 19
第四节 数据字典 ……………………………………………………………. 19
第三章 需求分析 ……………………………………………………… 23
第一节 系统需求分析 …………………………………………………… 23
第二节 目标确定 ……………………………………………………………. 24
第三节 设计思想和性能设计 ……………………………………. 25
第四章 系统总体分析 ……………………………………………. 26
第一节 选择合理的方案 …………………………………………….. 26
第二节 系统功能分解 ………………………………………………….. 27
第三节 资源数据导出导入的分析设计 …………………. 27
第四节 文本结果导出的分析设计 …………………………… 28
第五章 系统程序设计 ……………………………………………. 29
第一节 分析模块的实现 …………………………………………….. 29
第二节 基本信息显示模块的实现 ………………………….. 29
第三节 资源数据导出导入模块的实现 ……………….… 42
第四节 文本结果导出模块的实现 …………………………… 46
第六章 运行结果及界面 ………………………………………. 48
第七章 总结 ………………………………………………………………. 51
附录一 参考文献 ……………………………………………………… 52
附录二 文件分析文本结果事例 …………………………. 53
第一章 问题定义
对于一个程序员或电脑使用者,总要和PE文件打交道,PE文件是 Win32环境自身所带的可执行文件格式,它的一些特性继承自Unix的COFF(Common Object File Format)文件格式。PE即Portable Executable(可移植执行)的缩写,意味着此文件格式是跨Win32平台的:即使Windows运行在非Intel的CPU上,PE装载器都能识别和使用该文件格式。我们平时在Windows下使用的.exe文件就是典型的PE类型文件,当然PE文件还包含了例如32位的.DLL等任何可在Win32环境下执行的文件,很多时候我们需要对自己或者已有的PE文件作一个分析,以便改进或者研究,由于PE文件是计算机中最重要,最常用的文件,因而学习,了解PE文件格式对于我们不无裨益。
第一节 PE格式简要分析
PE文件格式主要由微软制定,此格式基本已成为Windows下可执行文件的标准格式,一个标准的PE文件包含了很多部分,每部分都有自己的结构,它的主要组成如表1.1.1:
英文标示 说明
DOS MZ Header DOS文件头
Dos stub
Signature PE文件头,
包含数据目录
File header
Optional header
Section Table 节表
Sections 节
Resource Directory 资源目录
表1.1.1
以下我将对以上几个部分分别介绍,由于资料有限,每部分不可能说得非常详细,只是每部分的介绍都加上了我的一些研究心得,这将为后章的PEDUMP文件分析器的实现打下基础。
1.1 DOS文件头
所有PE文件都必须以一个简单的DOS MZ Header开始。有了它,一旦程序在DOS下执行,DOS就能识别出这是有效的执行体,通常以两字节的"MZ"(IMAGE_DOS_SIGNATURE)标示字符开始的,然后运行紧随MZ header之后的DOS stub(片断)。DOS stub实际上是个有效的EXE,在不支持PE文件格式的操作系统中(例如DOS系统),它将简单显示一个错误提示,类似于字符串" This program must be run under Win32"或者程序员可根据自己的意图实现完整的DOS代码。
大多数情况下DOS文件头是由汇编器/编译器自动生成,它简单调用21h中断服务来显示字符串。
在Dos文件头中有两个比较重要的值,一个是位于文件开始位置的.e_magic的值,包含了标志字符串"MZ",另一个是._lfanew的值,指出了PE header的起始地址,通常在文件开始$003C偏移地址指明,比如偏移地址的值为$1000,表示PE文件头从文件地址$1000处开始。