kj0on

[RCE] Basic L05 본문

Reversing/CodeEngn

[RCE] Basic L05

kj0on 2025. 6. 29. 18:43
목차 접기

0. 실행환경

 

0-1. 운영체제 (1)

Window 11 Home


0-2. 툴 (3)

x32dbg
Detect it easy

 

upx.exe


1. 파일

https://codeengn.com/challenge/rce_basic
05.7z
0.12MB

 

password : codeengn


2. 프로그램 동작

[이미지1] Basic 05

프로그램 실행 시 위의 GUI가 나타난다.

 

[이미지2] Basic 05

Register now ! 버튼 클릭시 "Wrong Serial,try again!" 메시지를 출력한다.

 

[이미지3] Basic 05

Name 값을 입력하지 않았을 때는 "Enter a Name!" 메시지를 출력한다.

 

[이미지4] Basic 05

Serial 값을 입력하지 않았을 때는 "Enter a Serial!" 메시지를 출력한다.

 

[이미지5] Basic 05

Quit the Crackme 버튼 클릭시 "Mail Name/Serial to acidbytes@gmx.net" 메시지를 출력하고 종료된다.


3. Detect It Easy

[이미지6] DIE 실행 결과

32비트 실행파일, UPX 패킹 된 것을 확인할 수 있다.

 

[이미지7] DIE 실행 결과 (언패킹)

언패킹 후 실행결과 델파이로 작성된 프로그램인 것을 확인했다.


4. 분석

[이미지8] UPX

upx 언패킹 후 분석을 진행했다.

 

[이미지9] EntryPoint

EntryPoint로 이동 후 분석을 진행한다.

 

[이미지10] 문자열 참조

EntryPoint에서 문자열 참조 시 [이미지2]에 나타나는 문자열을 확인할 수 있다.

 

[이미지11] 문자열 참조

위치로 이동 후 전체적인 동작을 파악한다.

 

[이미지12] 전체 실행흐름

전체 흐름을 보면 위와 같다. 여러 조건에 의해 출력 메시지가 다르게 나타난다.

 

[이미지13] 전체 흐름

좀 더 쉽게 전체 흐름을 표현해 보면 위와 같다.

 

[이미지14] 전체 흐름

Name과 Serial에 입력값이 있는지를 우선 판별한다.

 

[이미지15] 전체 흐름

Name의 입력값이 "Registered User"인지를 판별한다. 해당 값은 하드코딩 된 값이다.

 

[이미지16] 전체 흐름

Serial의 입력값이 "GFX-754-IER-954"인지를 판별한다. 해당 값은 하드코딩 된 값이다.

 

[이미지17] 전체 흐름

분기 수정 또는 Name, Serial 입력값을 줘서 성공메시지를 출력하도록 한다.

 

[이미지18] Basic 05

결과 성공메시지가 잘 출력된다.


5. 풀이

 

[이미지19] 전체 흐름

문제에서 등록키를 묻고 있기 때문에 정답은 Serial에 해당하는 값인 "GFX-754-IER-954"이다.


 

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

[RCE] Basic L07  (0) 2025.07.11
[RCE] Basic L06  (0) 2025.06.29
[RCE] Basic L04  (0) 2025.06.29
[RCE] Basic L03  (0) 2025.06.28
[RCE] Basic L02  (0) 2025.06.28