PE文件格式学习

感觉这博客写起来和抄书差不多。。。

概述

PE文件的全称是Portable Executable File Format(可移植文件),比较常见的PE文件有DLL exe文件等。

一些基本概念

  • 基地址(Image Base)当PE文件通过Windows加载器被载入内存后,内存中的版本被称作模块(Module)。映射文件的起始地址被称作模块句柄(hMoudule),可以通过模块句柄访问其他的数据结构。这个初始内存地址就是基地址。默认情况下,exe文件在内存中的基地址时0x00400000, DLL文件是0x10000000,这些位置可以通过修改编译选项更改。

  • 虚拟内存地址(Virtual Address)PE文件中的指令被载入内存后的地址

  • 相对虚拟内存地址(Reverse Virtual Address)即内存地址相对于映射基址的偏移量。例如:一个exe文件从地址40000h处载入,并且它的代码区块开始于41000h ,代码区的RVA将是1000h

  • 文件偏移地址(File Offset Address)当PE文件存储在磁盘上时,某个数据的位置相对于文件头的偏移量称为文件偏移地址(或者叫物理地址,RAW Offset)

上一篇:大白菜U盘PE重装系统


下一篇:ICLR 2020 |《Multi-Scale Representation Learning For Spatial Feature Distributions Using Grid Cells》