문제 : 정답은 무엇인가
풀이 :
프로그램을 실행시키면 창이 뜨지만 아무런 변화가없고 바로 꺼진다.
디버거를 켜서 확인해보자.
문자열을 검색해보니 다음과 같이 실행시켰을 때 나와야하는 문자열들을 확인할 수 있었다.
해당 위치에 BP걸고 달려봤지만, 특정부분에서 막혀 화면에는 아무것도 출력되지않고 프로그램이 꺼진다.
따라서 OEP부터 흐름을 따라가면서 분석해봤다.
해당 분기문에서 2번 정도 돌다가 아까와 같이 꺼지는 것을 확인했다. 이 분기문을 통과하기위해 JE로 바꿔보자.
분기문을 통과하니 정상적으로 문자열이 떴다.
이제 아무 Password를 입력해보자.
Password를 입력후 루프를 반복하다가 call edx 명령어로 인해 프로그램이 꺼져버린다.
Stepinto해서 분석해보자.
한 글자씩 cmp하는 것을 확인할 수 있다.
글자가 다르면 바로 프로그램이 종료된다.
밑에는 문자열이 다 맞았을 때 WELLDONE이라는 문자열을 보여주는 것 같다.
그럼 저 글자들을 모두 조합하여 Password에 입력해보자.
성공한 것 같다.
다른 분들의 Write up을 봤을 때는 다들 처음부터 문자열이 정상적으로 나오는것 같다. 환경의 문제인건가 싶다.
[Write-up] CodeEngn Advance RCE 6 (0) | 2020.02.01 |
---|---|
[Write-up] CodeEngn Advance RCE 5 (0) | 2020.01.31 |
[Write-up] CodeEngn Advance RCE 4 (0) | 2020.01.30 |
[Write-up] CodeEngn Advance RCE 3 (0) | 2020.01.30 |
[Write-up] CodeEngn Advance RCE 1 (0) | 2020.01.30 |
댓글 영역