Reversing/CodeEngn

[CodeEngn] RCE basic L06 풀이

chan2s 2025. 9. 1. 10:45

Q6. Unpack을 한 후 Serial을 찾으시오. 정답인증은 OEP + Serial Ex) 00400000PASSWORD

[그림 1] 06.exe 최초 실행

06.exe를 실행해보면 다음과 같이 serial 값을 입력받는 칸과 체크하는 버튼이 전부인 프로그램이다.

[그림 2] 잘못된 serial값 입력 시 출력되는 문구

아무 값이나 입력하고 체크 해보면 다음과 같은 에러가 발생했다.

[그림 3] IDA View-EIP

IDA 프로그램을 통해 06.exe를 로드해서 분석해보면 UPX0이라는 UPX패킹과 관련된 정보를 얻을 수 있다.
따라서 UPX 실행 압축 프로그램임을 유추해볼 수 있다.

[그림 4] UPX 언패킹

upx -d 06.exe

UPX 언패킹 툴을 통해 06.exe를 언패킹을 진행한다.

[그림 5] IDA 언패킹한 06.exe 로드

UPX 언패킹을 진행한 06.exe를 열어보면 AD46DFS547값이 보이고, Good Job! 문구도 확인해 볼 수 있었다.
이 프로그램의 Serial 값은 'AD46DFS547' 인 것 같다.

[그림 6] Serial값 검증

Serial값 검증 성공, 하지만 문제에서는 Serial값과 OEP를 물어보았다.
OEP는 Original Entry Point로, 실제 프로그램의 시작 위치를 나타낸다.
'리버싱 핵심원리' 교재에 따르면, 실행 압축 해제된 코드의 EP가 OEP라고 한다.

[그림 7] IDA Stack view

IDA로 언패킹한 06.exe를 로드해서 디버깅 해보면 00401360 주소에서 start 문구라고 적혀있는 것을 확인해 볼 수 있었다.

[그림 8] OllyDbg OEP

마찬가지로 OllyDbg에서도 언패킹한 06.exe를 디버깅 후 프로그램을 종료해서 돌아오면 EP인 00401360 주소로 돌아오게 되는 것을 확인해 볼 수 있었다.

정답인증은 OEP + Serial 값이므로 00401360AD46DFS547이다.

'Reversing > CodeEngn' 카테고리의 다른 글

[CodeEngn] RCE basic L08 풀이  (0) 2025.09.01
[CodeEngn] RCE basic L07 풀이  (2) 2025.09.01
[CodeEngn] RCE basic L05 풀이  (3) 2025.08.31
[CodeEngn] RCE basic L04 풀이  (0) 2025.08.31
[CodeEngn] RCE basic L03 풀이  (1) 2025.08.29