1) 내가 풀어본 과정
파일을 실행해보면
위의 창이 나오는데 '123456'을 입력 후 Check 버튼을 눌렀더니
serial이 맞지 않다는 문자열이 나온다. 맞는 시리얼을 입력했을 때 문제가 풀릴 것으로 보인다.
Immunity Debugger에 넣고 Search for -> All referenced text strings 를 했을 때
마지막에 보면 "Yep, you entered a correct serial!"이라는 문자열이 보이는데 이것이 맞는 시리얼을 입력했을 때 나오는 문자열일 것 같다. 눌러서 들어간 후 위로 조금 올려보았더니 시리얼로 의심되는 문자열인 4562-ABEX와 L2C-5781이 보인다. 그런데 두 문자열 사이에 ADD 어셈블리어가 여러 개 보이고 두 문자열을 붙여서 입력한 후 나오는 결과가 시리얼이 맞지 않다는 내용임을 확인했으므로 중간에 어떤 문자열들이 더 들어간 값이 정확한 시리얼일 것이라고 예측할 수 있다.
그냥 처음부터 다시 F8로 실행을 하다가 메인 부분을 찾아 들어간 뒤 계속 F8로 진행하다 보니 덤프창에
이러한 문자열이 나왔다. 이것을 그대로 복사해서 07.exe 파일을 실행했을 때 나오는 창에 넣고 Check 버튼을 눌렀더니
문제가 풀린 것을 확인할 수 있다. 정확한 시리얼은 L2C-5781Ykpfows4562-ABEX 였다.
그런데 문제가 컴퓨터 C드라이브의 이름이 CodeEngn 일 경우 시리얼이 생성될 때 CodeEngn은 'ß어떤것'으로 변경되는가 였기 때문에 flag는 알아내지 못 했다.
2) 출제자 의도 풀이
일단 가상머신 window7에서 C드라이브의 이름을 CodeEngn으로 변경했다.
그 후 디버거에 넣고 Search for -> All referenced text strings로 "Yep, you entered a correct serial!" 을 눌러 들어간 후 break point를 설정해주고 Ctrl + F2로 다시 시작 후 F8로 쭉 실행했다. 그 후 '123456'을 시리얼로 입력한 후 F9를 눌러 F8로 쭉 실행한 결과 CodeEngn이 EqfgEngn으로 바뀌는 과정을 확인할 수 있었다.
정확한 시리얼은 L2C-5781EqfgEngn4562-ABEX 이었고,
Flag : EqfgEngn
'Security study > CTF' 카테고리의 다른 글
[Reversing] CodeEngn Basic RCE L17 (0) | 2021.02.27 |
---|---|
[Reversing] 레지스터 (0) | 2021.02.26 |
[Reversing]codeengn Basic RCE L15 (0) | 2021.02.25 |
[Reversing] codeengn Basic RCE L09 (0) | 2021.02.24 |
[Reversing] codeengn Basic RCE L04 (0) | 2021.02.24 |