본문 바로가기
메가IT아카데미 국기과정/리버싱과 악성코드 분석

[1-5] PE 파일 분석(RVA to RAW)

by 한님폐하 2022. 9. 13.

1. RAW

  • 파일이 실행되기 이전에 파일에서의 주소를 의미한다. 즉 File Offset(Pointer to RAW Data)를 의미한다.
  • RAW = X_RVA - 섹션_RVA + Pointer to Raw Data
  • 섹션_RVA 섹션 헤더 멤버의 RVA 주소
  • Virtual Size 메모리에서 차지하는 섹션의 크기(패딩/Null 포함)
  • X_RVA 메모리에서 찾고자 하는 어떤 데이터의 주소
  • Size of Raw Data 파일에서 섹션의 크기(패딩/Null 포함)
  • Pointer to Raw Data 파일에서 섹션의 주소



2. RVA to RAW 구하기

  • X_RVA=0x1000인 경우, RAW는? (메모리 RVA 0x1000에 있는 데이터는 파일에서 어디 주소에 있는가?)
  • RAW = X_RVA - 섹션_RVA + Pointer to Raw Data

    [메모리]
    ──────── 0x01001000

         .text 섹션 

    -------------------- 0x01053CA1
    패딩 : 0x035F
    ──────── 0x01053FFF
  • X_RVA 0x1000
  • 섹션_RVA 0x1000
  • Pointer to Raw Data 0x400
  • 파일에서 .text 섹션 범위 0x400 ~ 0x53200(0x400 + 0x52E00) 이전까지
    • RAW = 0x1000 - 0x1000 + 0x400 = 0x400
    • X_RVA가 '0x1000'인 경우, RAW는 '0x400'이며, 파일에서 .text 섹션 시작 주소를 의미한다.