RAV : 메모리 주소
RAW : 파일 주소
[ 공식 ]
RAW - PointerToRawData = RVA - VA
RAW = RVA - VA + PointerToRawData
풀어보기
.text
RAW : 0x400 ~ 0x12C00
RVA : 0x1001000 ~ 0x10136B0
.data
RAW : 0x12C00 ~ 0x13600
RVA : 0x1014000 ~ 0x101501C
.rsrc
RAW : 0x13600 ~ 0x1C000
RVA : 0x1016000 ~ 0x101E960
문제 1. RVA 0x1009000 일때 File Offset은 ?
[0x1009000]의 주소는 .text 부분에 속하는 것을 알 수 있다
그럼 RAW로 변환하기 위한 공식을 대입해본다
RAW = RVA - VA + PointerToRawData
0x1009000 - 0x1001000 + 0x400 = 0x8400
문제 2. RVA 0x1018000 일때 File Offset은 ?
[0x1018000]의 주소는 .rsrc 부분에 속하는 것을 알 수 있다
그럼 RAW로 변환하기 위한 공식을 대입해본다
RAW = RVA - VA + PointerToRawData
0x1018000 - 0x1016000 + 0x13600 = 0x15600
문제 3. RVA 0x101421C 일때 File Offset은 ?
[0x101421C]의 주소는 .rsrc 부분에 속하는 것을 알 수 있다
그럼 RAW로 변환하기 위한 공식을 대입해본다
RAW = RVA - VA + PointerToRawData
0x101421C - 0x1014000 + 0x12C00 = 0x12E1C
문제 4. RVA 0x101B960 일때 File Offset은 ?
[0x101B960]의 주소는 .rsrc 부분에 속하는 것을 알 수 있다
그럼 RAW로 변환하기 위한 공식을 대입해본다
RAW = RVA - VA + PointerToRawData
0x101B960 - 0x1016000 + 0x13600 = 0x18F60