RAV to RAW

RAV to RAW

学习《逆向工程核心原理》笔记

参考:https://tech-zealots.com/malware-analysis/understanding-concepts-of-va-rva-and-offset/

名词介绍

Relative Virtual Address (RVA)

VA指的是虚拟内存绝对地址

Relative Virtual Address (RVA)

指从某个基准位置(ImageBase)开始的相对地址

File Offsets(RAW)

文件偏移

RVA可以理解为内存偏移;RAW可以理解为文件偏移

RVA计算

RVA = VA – ImageBase

PS:

Virtual Address = 0x00401000
ImageBase = 0x00400000
RVA = 0x00001000

RAV to RAW

image-20220124013113565

未命名绘图.drawio(1)

Offset of entry point in EXE file = (AddressOfEntryPoint – .section[VirtualAddress]) + .section[PointerToRawData]

注意

RVA计算中的VA是RVA的虚拟地址,这章里的的VA是section的VA

RVA = 5000,FIle Offset = ?

  1. 寻找RAW所在节区

    RVA的VA地址 = 5000(RVA) + 1000000(ImageBase) = 1005000

    通过表2可以知道RVA在.text节区

  2. 计算RAW(FIle Offset)

    RAW = 5000(RAW) - 1000(section的VA地址) + 400(section的PointerToRawData) = 4400

    section的VA地址:查表1

    PointerToRawData :指针偏移

posted @ 2022-01-24 02:13  MuRKuo  阅读(129)  评论(0编辑  收藏  举报