PE文件解析(一)
基本概念
什么是PE文件
- PE文件的全程:Portable Executable,即可移植的可执行文件
- 常见的PE文件:EXE文件、DLL文件、OCX文件、SYS文件、COM文件
- PE文件通常是指32位的,而64位的PE文件通常称为PE32+、PE+、PE64
文件偏移地址、虚拟地址与相对虚拟地址
- 文件偏移地址:PE文件存储在磁盘中时,某个数据的位置相对于文件头部的偏移量,通常将其称为文件偏移地址(File Offset Address)或物理地址(RAW Offset)
- 虚拟地址:在Windows系统中,PE文件会被系统加载器映射到内存中,而每个PE文件都有其自己的独立的虚拟空间,这个虚拟空间的内存地址就被称为虚拟地址(Virtual Address)
- 相对虚拟地址:当PE文件映射到内存之后,某个数据相对于文件载入点地址(即基地址,ImageBase)的偏移量,通常称其为相对虚拟地址(Relative Virtual Address),虚拟地址与相对虚拟地址存在如下关系:虚拟地址(VA) = 基地址(ImageBase) + 相对虚拟地址(RVA)