알쓸전컴(알아두면 쓸모있는 전자 컴퓨터)
[reversing] RAV RAW 변환 실습 본문
IAT 설명을 시작 전에 필요한 사전 지식 이 있습니다.
http://idlecomputer.tistory.com/177 포스팅에 보면 RAW,RAV 대한 설명이 있습니다.
이번에는 실제로 변환 하는 예제를 두고 변환 해 보겠습니다.
먼저 저는 예제로
간단히 만든 excel 로 계산을 해보겠습니다.
RAV 는 메모리에 쌓이는 offset 값이고 RAW 메모리에 로딩 되기 전에 파일에 offset 입니다.
파일에는 RAV 값이 주로 적혀 있기 때문에 메모리에 로딩된 값이 파일에 어디 있는지 찾기 위해서
이번과 같은 RAW , RAV 변환 지식 이 필요합니다.
일단 SECTION HEADER 의 정보가 필요 합니다.
그리고 우리는 같은 SECTION 의 코드 중 RVA값이 들어 있는 중 1개가 메모리에 로딩 될때 파일의 어떤 정보를 가져 가는지 알아 보겠습니다.
여기서 우리는 206E0 의 RVA를 프로그램에서 사용하는데요 그렇타면 메모리에서 206E0의 주소값을 가져다 사용 하는데요
파일에 기록된 어떤 데이터를 가져 가는지 알기 위해서 RAW 를 구해 보겠습니다.
RAW = RVA(목표) - VirtualAddress + PointerToRawData
공식은 이렇게 됩니다. 그럼 여기서 VirtualAddress 는 Section Header 에 나와 있는 RVA 를 말합니다.
(해당 내용은 위에 첨부내어 있는 엑셀 수식을 걸어 놓은것입니다. 수식은 위에 있는 공식을 표현 할수 있게 만들었습니다. 10진수는 엑셀내 계산 때문에 들어가 있습니다. )
구분 | (16진수) | (10 진수) |
RVA | 206E0 | 132832 |
Sestion RVA | 20000 | 131072 |
point to RAW | 1BE00 | 114176 |
RAW | 1C4E0 | 115936 |
자 그럼 RAW 1C4E0 값이 나왔는데요
파일에서 20B8C 값을 가져 가네요
옆에 있는 value 칼럼은 지금은 잊고 나중에 생각 할께요.
지금은 RAW RAV 변환 에만 집중해서 보시고 직접 해보시면 value 의 값도 따라가지게 됩니다.
'리버싱' 카테고리의 다른 글
[reversing] EAT(Export Address Table) (기타 = 세션 찾기 64bit pe viwer) (0) | 2018.05.15 |
---|---|
[reversing] IAT (0) | 2018.05.11 |
windows 10 에서 PE 헤더 Image Base 와 ollydebug (0) | 2018.05.08 |
[reversing] PE 헤더 분석 (2) (0) | 2018.05.04 |
[reversing] PE 헤더 분석 (1) (0) | 2018.05.03 |