CodeEngn

CodeEngn.com Basic RCE L08

レ(゚∀゚;)ヘ=З=З=З 2023. 12. 22. 08:54
728x90

1) OEP 구하는 문제

2) 08.exe 파일 실행 시 나오는 화면

3) PEiD를 통해 정보 확인 시 UPX 패킹이 되어 있는 것 확인

더보기

※ UPX 패킹 파일

 

1. UPX 패킹 파일 구조

[SECTION UPX0] : 메모리가 로드 된 후 압축 코드가 해제 될 공간
[SECTION UPX1] : 압축코드가 저장되어 있는 공간

2. 올리디버거를 통해 OEP 확인

[PUSHAD] - 코드 - [POPAD] - [JMP]
[PUSHAD] : Stack에 레지스터에 있는 EAX, ECX, EDX, EBX, ESP, EBP, ESI, EDI 총 8개 값을 넣어주는 명령어
[POPAD] : stack안에 있는 8개의 레지스터를 거꾸로 빼오는 명령어

4) PUSHAD와 POPAD 사이에 있는 코드 중 루프문 : 압축된 코드를 해제하는 과정
5) 이 부분은 압축된 코드가 들어있는 [SECTION UPX1]에서 해제가 될 공간인 [SECTION UPX0]으로 코드 복사가 이뤄지는 과정

6) [POPAD]명령어가 실행되는 부분

7) [POPAD]가 실행되고 [JMP]명령어가 실행
8) OEP : [JMP]명령어 뒤에 오는 01012475
9) upx.exe로 언패킹을 하여 올리디버거로 확인 과정

10) upx.exe로 08.exe 언패킹

11) 올리디버거로 08.exe를 실행하여 01012475가 OEP가 맞다는 것 확인

 

'CodeEngn' 카테고리의 다른 글

CodeEngn.com Basic RCE L10  (0) 2023.12.22
CodeEngn.com Basic RCE L09  (0) 2023.12.22
CodeEngn.com Basic RCE L06  (0) 2023.12.21
CodeEngn.com Basic RCE L05  (0) 2023.12.21
CodeEngn.com Basic RCE L04  (0) 2023.12.21