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

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

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

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

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

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

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

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

마찬가지로 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 |