Self-Improvement
RVA, VA, RAW (x64dbg, CFF Explorer) 본문
VA
Vitual Address로 메모리의 절대 주소를 의미한다.
즉 x96dbg로 프로그램을 올렸을시에 로딩된 메모리 주소를 뜻한다.
VA = RVA - Imagebase
Easy_Keygen.exe 프로그램을 x64dbg에 올린 후 "Input Name:" 문자열이 로딩된 주소는 0x00408060이며 이것이 VA(Vitual Address)이다.
RVA
Relative Virtual Address로 프로세스 가상 메모리의 상대주소를 의미한다.
RVA = VA - Image Base
RVA = RAW + VA - PointToRawData
위의 VA가 0x00408060일 시 RVA 는 0x8060이 된다.
RAW
RAW는 디스크 상의 파일에서의 주소라 하며 우리가 잘 알고 있는 오프셋이라고 부른다.
RAW = PVA - VirtualAddress + PointToRawData
CFF Explorer 연습
x64dbg에 프로그램을 올린 후 "Input Serial" 문자열이 로딩된 주소는 0x00408044로 확인된다.
CFF Explorer에서 Address Converter 에 VA 값에 0x00408044을 입력하면 알아서 RVA, RAW(Offset)값을 알아내서 보여준다.
8044 오프셋 위치에 "Input Serial" 문자열이 존재하게 된다.
이것을 수동으로 계산해보자면 RAW = RVA - VirtualAddress + PointToRawData(RawAddress)
RVA = VA(0x00408044) - Image Base(0x00400000) = 0x8044
RAW = RVA - VirtualAddress + PointToRawData(RawAddress)
위 그림에서 RVA 값 0x8044 는 .data 영역에 속한다.
RVA(0x8044) - VirtualAddress(0x8000) + RawAddress(0x8000) = 0x8044
'리버싱 기초' 카테고리의 다른 글
x64dbg (x64dbg, x32dbg) 메모리 맵 (.rdata, .data, .text), 메모리 종류 (0) | 2020.05.08 |
---|---|
x64dbg(x64dbg, x32dbg) IAT (0) | 2020.05.07 |
x64dbg(x64dbg, x32dbg) Easy_CrackMe 풀이 분석 (0) | 2020.05.06 |
x64dbg 패치 및 저장 (0) | 2020.05.06 |
x32dbg, x64dbg 디컴파일(snowman) 플러그인 설치? (4) | 2020.05.06 |