Q16. Name이 CodeEngn일때 Serial을 구하시오

Name과 Password를 입력받고 값을 체크하는 프로그램이다.
Name : CodeEngn, Password : 12345를 입력 후 인증 해보니 Wrong password!가 출력되었다.

PEiD로 분석해본 결과 C++로 작성된 파일이라고 한다.
해당 파일이 작성된 소프트웨어를 간단하게 조사해보았다.
Dev-C++ - 나무위키
Dev-C++
Dev-C++는 GNU 라이선스로 보급되는 사용이 자유로운 C / C++ 언어의 통합 개발 환경 이다.
namu.wiki
> Bloodshed Software가 Dev-C++로 제작한 프로그램을 지칭하는 듯 하였다. 현재는 개발이 멈춘 상태이다 (포크 후 이어지기를 반복했기 때문이라고 한다..)

OllyDbg에서 All referenced text stirngs에서 Good Job!이라는 체크 성공 시 출력될 문구를 확인하고 해당 주소로 가보았다.

이번에는 성공 분기점 위에 바로 CMP, JNZ가 있는 구조가 아닌
다른 주소를 호출한 뒤에 성공문구가 출력되는 구조임을 알아낼 수 있었다.
(이 때는 40159F 주소의 CMP와 JNZ분기점을 확인하지 못했었다.)

따라서 Name, Password 값을 받아오는 메모리 주소에 BP를 걸고 한 줄씩 디버깅을 시도했다.



Password에 ‘12345’를 입력하고 분석했더니 16진수 값으로 3039가 찍힌 주소가 40159C에서 처음 등장하였다.

그 다음에 EAX와 E4C60D97과 비교하고 JNZ 분기점으로 넘어가는 것을 확인했다.
이 때 40159F 주소의 EBP-3C(70FEEC)의 값 E4C60D97이 의미하는 값을 알아내기 위해서 16진수를 확인해보기로 했다.

E4C60D97을 10진수로 변환 하였을 때 3838184855 라는 값을 얻을 수 있었다.

'Reversing > CodeEngn' 카테고리의 다른 글
| [CodeEngn] RCE basic L18 풀이 (0) | 2025.09.05 |
|---|---|
| [CodeEngn] RCE basic L17 풀이 (0) | 2025.09.04 |
| [CodeEngn] RCE basic L15 풀이 (0) | 2025.09.03 |
| [CodeEngn] RCE basic L14 풀이 (0) | 2025.09.03 |
| [CodeEngn] RCE basic L13 풀이 (0) | 2025.09.01 |