PE 结构的三种地址
阅读原文时间:2023年08月24日阅读:1

三种地址

  (一)VA(虚拟地址):PE 文件被 Windows 加载到内存后的地址。

  (二) RVA(相对虚拟地址):PE 文件虚拟地址相对于映射基地址(对于 EXE 文件来说,映射基地址是 IMAGE_OPTIONAL_HEADER 的 ImageBase 字段的值)的偏移地址。

  (三)FOA(文件偏移地址):相对于 PE 文件在磁盘上文件开头的偏移地址。

地址转换

  VA -> RVA:VA - IMAGE_OPTIONAL_HEADER.ImageBase(DLL 减去装载地址) = RVA

  RVA -> FOA:

  IMAGE_OPTIONAL_HEADER.SectionAlignment == IMAGE_OPTIONAL_HEADER.FileAlignment 时,RVA == FOA

  IMAGE_OPTIONAL_HEADER.SectionAlignment != IMAGE_OPTIONAL_HEADER.FileAlignment 时,当前节的 FOA + (当前数据的 VA (RVA)  - 当前节的 VA (起始 RVA) ) = 当前数据的 FOA

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器

你可能感兴趣的文章