windows pe) RVA to RAW(file offset)
Reversing/Windows PE
2014. 7. 15. 23:28
windows pe에서 RVA(file offset) to RAW는 매우 중요합니다.
RVA에서 RAW로 변환하기위해서는 간단한 식이 있는데요
RAW(file offset)=RVA-VA+PointerToRawData)
입니다.
간단하게 textview에서 찾아보겟습니다.
일단 IMPORT_TABLE구조체가 중요하기 이 구조체의 RAW(file offset)을 알아보도록하겟습니다.
IMPORT_TABLE의 RVA의 값은 84cc입니다.
84CC는 .rdata의 섹션해더에 있습니다.
섹션 뒤지면서 위치를 대략 적으로 찾으시면 됨니다.
이섹션해더에가서 VA랑 PointerToRawData의 값을 가져오시면됨니다.
어 근데 VA는 없고 RVA만 있는데요?
pe view는 메모리 로딩했을때를 나타내므로 RVA가 나오기때문 입니다.
실제 VA값이 여기선 RVA값이라고 생각해주세요
Pointer To RawData의 값이 5200입니다.
84CC-6000+5200은 76CC이므로
IMPORT_TABLE의 RAW(file offset)의 값은 76CC입니다.
그렇다면 이제 확인해봐야겟져?
hexedit로 76cc의 데이터와 pe view로본 86cc의 값을 비고하시면 됨니다.
이 둘을 비교하시면 서로 같습니다.
오른쪽 value로 비교하시지 마시고 hex코드를 비교해보시기 바람니다.
예외로 RAW(file offset)의 값이 안나오는경우가있는데
이경우는 virtual size의 값이 Size Of RAW Data보다 크기때문 입니다.
'Reversing > Windows PE' 카테고리의 다른 글
windows pe) IAT (0) | 2014.07.25 |
---|---|
windows pe) null패딩이 진짜 null패딩인지 확인하기 (0) | 2014.07.23 |
windows pe)NT_HEADER 하 (0) | 2014.07.11 |
windows pe) NT_HEADER 상 (0) | 2014.07.10 |
windows pe)DOS_STUB (0) | 2014.07.10 |