CodeEngn

CodeEngn.com Basic RCE L09

レ(゚∀゚)ヘ=3 2023. 12. 22. 08:55
728x90

1) StolenByte를 구하는 문제

더보기

※ StolenByte

 : 패커가 위치를 이동시킨 코드로써 보호된 프로그램 코드의 윗부분

 - 이동된 코드들은 OEP 주소로 점프하기 전에 PUSH가 된다. UPX패킹이 되어있는 프로그램에서는 마지막 JMP를 하기 전 POPAD 이후의 PUSH를 해주는 코드이다. StolenByte를 복구하지 못하면 위와 같이 정상적으로 작동하지 못한다.

2) 09.exe 실행 화면

3) PEiD를 통해 UPX로 패킹되어 있는 것 확인

4) upx.exe로 언패킹 진행

5) 언패킹 후 실행 화면 - 글씨 깨짐

6) 올리디버거(언패킹 09.exe 실행) - OEP 주소 쪽이 NOP로 채워진 것을 확인 - StolenByte가 있어야 하는 부분으로 유추

7) UPX 패킹 되어 있는 09.exe 파일 구조 : PUSHAD-코드-POPAD-코드-JMP
8) StolenByte : POPAD 한 다음에 오는 코드에서 PUSH 부분 → PUSH 0, PUSH 09.00402000, PUSH 09.00402012

9) StolenByte 복구

10) new09.exe 덤프 따서 정상적인 실행 확인 (Plugins → 4 OllyDump → Dump debugged process)

11) 글씨가 깨지지 않고 잘 실행되는 것 확인

12) 정답 코드 : 복구할 때 입력했던 StolenByte = 6A0068002040006812204000

'CodeEngn' 카테고리의 다른 글

CodeEngn.com Basic RCE L11  (0) 2023.12.22
CodeEngn.com Basic RCE L10  (0) 2023.12.22
CodeEngn.com Basic RCE L08  (0) 2023.12.22
CodeEngn.com Basic RCE L06  (0) 2023.12.21
CodeEngn.com Basic RCE L05  (0) 2023.12.21