줴림이 공부하줴림
[CodeEngine] Basic RCE L07 본문
이번 문제는 "컴퓨터 C 드라이브의 이름이 CodeEngn일 경우, 시리얼이 생성될 때 CodeEngn은 '어떤 것'으로 변경되는지'에 대한 문제이다. 07.exe를 실행하면 이런 화면이 나온다. 시리얼을 입력하는 창에 아무 숫자나 입력하면 알맞지 않은 숫자라고 Error가 뜬다.
Ollydbg로 파일을 열었더니 바로 Error 문자열과 성공 문자열을 확인할 수 있었다.
중단점을 걸어준 부분에서 시리얼을 비교하고 일치하는지 아닌지를 판단하는 듯. 중단점 걸고 프로그램을 실행시켜 줬다. 다시 마주한 crackme 창에 아무거나 입력. 그러면 코드에 무언가 변화가 생긴다.
잘 보면, 비어있던 string 부분에 내가 입력한 아무 문자열인 "Enter your serial123"이 들어 있는 걸 볼 수 있다. 저걸 입력으로 받아서 이제 진짜 시리얼과 비교를 하는 것이다.
그외에도 소소한 변화가 있지만, 가장 중요한건 004010A3의 Dest 부분이다. 원래 비어 있었는데 지금은 'EqfgEngn4562-ABEX'라는 문자열이 들어있는 걸 볼 수 있다.
그 밑으로 쭉쭉쭉.... string1과 string2를 비교하는 부분을 보자. string2에는 Enter your serial123이 들어있다. string1과 string2를 비교해서 이제 Error인지 Correct인지 출력하는 것이다. 때문에 004010F2의 string1이 우리가 찾고자 하는 시리얼 넘버이다.
이렇게 입력하면, Correct라고 뜬다! 7번도 해결!
'Study > CodeEngine' 카테고리의 다른 글
[CodeEngine] Basic RCE L09 (0) | 2025.04.22 |
---|---|
[CodeEngine] Basic RCE L08 (0) | 2025.04.21 |
[CodeEngine] Basic RCE L06 (0) | 2025.04.17 |
[CodeEngine] Basic RCE L05 (0) | 2025.04.16 |
[CodeEngine] Basic RCE L04 (0) | 2025.04.14 |