PE文件简介

时间:2014-05-10 09:56:24   收藏:0   阅读:311

PE(Portable Execute)文件是WIN32下可执行文件遵循的数据格式,也是反汇编调试必不可少的文件,常见的pe文件有.exe和.dll文件。本文主要介绍pe文件的结构和虚拟内存地址转换到文件地址的方法。

pe文件的基本结构

基本的pe文件主要包括以下部分:如下图bubuko.com,布布扣

几个重要概念

上面简单介绍了pe的基本结构,现在结合下图,介绍几个存储地址的基本概念,为后面的地址转换做准备。

注意:文件偏移地址≠相对虚拟地址,主要原因是:文件偏移地址是相对于在磁盘存放时候的偏移量,而磁盘以0×200(0.5k)为单位,每个节占用的大小为0×200的倍数(多拆少补0×00),而相对虚拟地址是相对于内存的偏移量,而内存以0×1000(1K)为单位,每个节占用的大小为0×1000的倍数(多拆少补0×00)。由此产生每个节的差量称为为节偏移(.text节的节偏移为(d-4000)-(c-0),即为填充部分),映射方式如下图:bubuko.com,布布扣

文件偏移地址与虚拟内存地址的转换

因此现在我们可以通过IDA得到虚拟内存地址(VA)为b,通过LordPE可以得出节偏移(d-c),然后即可得出a的地址为(a=b-400000-[(d-400000)-(c-0)]),总结成公式即为:

文件偏移地址=VA-Image Base-节偏移

本文出自个人博客:PE文件简介

以上内容基于阅读《0day安全:软件漏洞分析》后个人理解

PE文件简介,布布扣,bubuko.com

评论(0)
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!