Windows PE文件结构简介

1、 PE文件简介

PE(Portable Executable,可移植的可执行文件)文件是指在Microsoft Windows95及其之后的Microsoft操作系统上运行的可执行文件,包括.EXE文件和.DLL文件。

可移植性(Portable)是指在任何机器(Intel 386 、MIPS 、Alpha 、Power PC 等)上的Microsoft Windows操作系统都可以使用相同的可执行文件格式,使得程序加载器以及程序开发工具不需要针对每一个新的操作系统重写。

2、 相关概念

①     RVA(Relative Virtual Address)

当被装载到内存中,可执行文件的某一个项目相对于基地址的偏移。比如一个可执行文件被装载到虚拟地址空间的0x40000处,其中有一个项目位于0x401464处,那么它的RVA就是0x1464。虚拟地址(0x401464)- 基地址(0x400000)= RVA(0x1464)

②     Section(节)

PE文件中最基本的代码或者数据单元。例如,PE文件中的所有代码可以被放在同一个节中,或者每一个函数都可以被放到不同的节中去。节有点类似于Intel 8086的段。PE文件可以有多个节,像.text(代码节)以及.data(数据节)节等。

3、 PE文件结构

下面就是一个典型的PE文件的结构示意图:

MS-DOS 头

 

Offset to
PE Header

MS DOS 2.0 Stub Program

 

Magic Number

PE Header

 

 

Optional header 

 

 

Section headers

 

 

Sections

 


发布了21 篇原创文章 · 获赞 6 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/Perfecter/article/details/41687089
今日推荐