반응형
64bit Windows에서 32bit 시스템 파일들은 C:\Windows\SysWOW64 폴더에 있다.
Windows 7 64bit에서 32bit notpad.exe의 AddressOfEntryPoint를 보면 31C9이다.
.text 섹션의 VirtualAddress는 1000이고, 사이즈는 A6FC이다.
PointerToRawData는 400이다
즉, HxD에서 EP 영역으로 가자면 31C9(RVA) - 1000(.text VirtualAddress) + 400(PointerToRawData) = 25C9이다.
파일(ImageBase : 1000000) | 프로세스 메모리(로딩 주소 : B40000) |
1001100 | B41100 |
1001104 | B41104 |
100C0A4 | B4C0A4 |
위 HxD에서의 EP 영역 사진에서는 하드코딩된 주소가 ImageBase(1000000) 기준으로 되어 있다.
notepad.exe 파일이 생성(빌드)될 때는 실제 어느 주소에 로딩이 될지 예측할 수 없으므로 ImageBase 기준으로 하드 코딩 주소를 적어놓았지만 실행되는 순간에 PE 재배치 과정을 거치면서 이 주소들은 모두 로딩 주소 기준으로 변경된다.
그렇기에 프로그램이 에러 없이 정상 동작할 수 있게 되는 것이다.
B41100, B41104 주소는 “.text” 섹션의 IAT 영역이고, B4C0A4 주소는 “.data” 섹션의 전역 변수이다.
반응형
'Reversing > 실습' 카테고리의 다른 글
[Reversing 실습] 지뢰찾기.exe DLL Injection (0) | 2022.08.24 |
---|---|
Windows 7 64bit에서 32bit notepad.exe PE 재배치(Base Relocation Table) (0) | 2022.06.19 |
UPX packer로 notepad.exe 실행 압축한 파일 분석 (0) | 2022.06.13 |
windows11 64bit 환경에서 PE 파일(Kernel32.dll) EAT 분석 냠냠쓰 (1) | 2022.06.08 |
Windows 11 64bit 환경에서 PE 파일(notepad.exe) 분석 냠냠쓰 (3) | 2022.06.07 |