PE文件格式学习心得【1】

原创 2012年03月26日 10:23:03

PE文件是Protable Executable File Format(可移至的执行体),是目前Windows平台上的主流可执行文件格式。

PE可以简单理解为一个结构,这个结构用来告诉Windows加载器如何去加载这个文件。PE会告诉它其资源、导入表等信息。而这些信息对应在PE文件的不同成员变量。暂时理解PE文件,通过其几个主要的结构来学习。

先给张有总结性的网上大量流传的PE文件格式图:


我觉得,还有必要加深理解几个和地址有关的定义:基地址、相对虚拟地址、文件偏移地址。

基地址吧,PE文件被加载进入内存后,其映射文件的起始位置就是基地址,其实我们的模块句柄也是这个值。用VC的默认选项编译的EXE基地址为00400000h,DLL基地址为10000000h。

相对虚拟地址,其作用吧,简单点说,避免在PE文件中有确定的内存地址。既是相对于文件载入点的大小吧,目标地址 - 装入地址 = RVA。内存的虚拟地址 = 基地址  + RVA。

文件偏移地址,既是物理地址吧,从0开始计数,用UE等打开看到的地址就是这个。


然后开始学PE文件的格式了。差点忘了说,这些结构名有些许出入,大多是32位和64位的差异。可以到我们的系统盘(C:\Program Files\Microsoft SDKs\Windows\v6.0A\Include里面的winnt.h头文件)的里面找找看。

首先是被称为DOS头部的结构,这个,其实现在没太大价值的感觉。只用知道在3ch位置,记录着PE文件头的文件偏移地址(用4个Bytes)即可。由于Intel是小端规则,所以需要留意“B0000000”代表“000000B0”地址。

然后就是我们的PE文件头了,IMAGE_NT_HEADER由三部分组成,上面也看到了。

Signature字段记录着“PE00”。用UE打开可以很明显看到。

IMAGE_FILE_HEADER结构的话,成为映射文件头结构吧。需要留意的可能是文件属性字段吧,普通的EXE文件的话则为010fh,DLL文件的话则为0210h。

IMAGE_OPTIONAL_HEADER结构,是对上面的一个补充。具体结构也上图吧。


以此类推,可以看出,上图大概可以帮我们理解PE文件格式了。然后输入表、输出表、块、基地址重定位等,都需要在此基础上理解了才能学好。所以,先消化这些。


PE文件学习

1.介绍 什么是PE文件? PE文件是windows操作系统下使用的可执行文件格式。32位就直接叫PE或PE32,64位的就PE+或PE32+,注意不是PE64哦!!!! 学习PE文件其实...

C++中虚析构函数的作用-- 从内存角度来看这个问题

----引用 我们知道,用C++开发的时候,用来做基类的类的析构函数一般都是虚函数。可是,为什么要这样做呢?下面用一个小例子来说明:         有下面的两个类: class C...

关于c#调用c++ dll 的一些问题和解决方案

关于c#调用c++dll的一些实践

PE文件格式 - 节的原始数据 1(Sections' raw data)

http://hi.baidu.com/softopen/blog/item/7ef2c2cc60b6fa570fb3452a.html 八、节的原始数据(Sections' raw d...
  • zhgn2
  • zhgn2
  • 2012年07月09日 21:16
  • 1995

PE文件格式详解(1)

PE头由许多结构体组成,接下来分别解释一下各部分。 1.DOS头     微软最初创建PE格式的时候,DOS文件被人们广泛的使用,为了实现PE文件对DOS文件的兼容性。结果是在PE头的最前面...

《逆向工程核心原理》学习总结(四) - PE文件格式

介绍PE文件是windows操作系统的可执行文件格式(包括.exe、.scr、.dll、.sys、.obj等文件),PE文件指32位的可执行文件,也称为PE32。64位可执行文件称为PE+或PE32+...

PE文件格式学习 (CHM资料)

  • 2006年01月13日 09:51
  • 0B
  • 下载

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

SizeOfRawData       20 00 00 00             ; 代码的大小     PointerToRawData    a0 01 00 00            ...

初步了解PE文件格式(上)

今天这篇博客只对PE文件进行大致的分析,使用一个例子并结合一个简单的PE文件格式图来说明PE文件格式。...

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

PE文件格式系列译文之一----           【翻译】“PE文件格式”1.9版 完整译文(附注释) ============================================...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:PE文件格式学习心得【1】
举报原因:
原因补充:

(最多只允许输入30个字)