Windows PE文件结构简介

本文介绍了Microsoft Windows操作系统上可执行文件的标准格式——PE文件的基本概念、关键特性及内部结构。PE文件不仅包括.EXE可执行文件,也涵盖了.DLL动态链接库文件。文章详细解释了RVA(相对虚拟地址)的概念及其计算方式,并对PE文件中的Section(节)进行了说明。

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

 


评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值