<문제>
<풀이>
01번 문제(https://studyforall.tistory.com/65)를 풀었을 때와 같이 문제 파일을 다운로드하고,
7-Zip File Maneger로 압축을 푼다.
04.exe 파일을 실행해본다.
검은색 창이 열리고 알 수 없는 특수문자가 한 줄씩 출력되는데,
문제에서 이 프로그램이 디버거 프로그램을 탐지하는 기능이 있다고 한 것으로 보아
디버거 프로그램 탐지가 이루어지고 있는 것으로 추측할 수 있다.
올리디버거를 이용해 04.exe 파일을 열어보았다.
우선 F8을 눌러 명령어를 한 줄 씩 실행해보았다.
화면의 한쪽에는 디버거를 한 줄 씩 실행하고 한쪽에는 실행되고 있는 프로그램을 두어서
어느 명령어가 실행됐을 때 디버거 프로그램 탐지가 작동하기 시작하는 지 확인하려고 한다.
00408454 주소에 있는 CALL 명령어를 실행하는 시점부터
디버거 프로그램을 탐지하는 특수문자가 찍히기 시작했다.
해당 주소의 명령에 breakpoint를 찍고
프로그램을 중단한 뒤 다시 처음부터 실행시키기 시작했다.
실행하다가 breakpoint가 걸린 부분에서 F7을 눌러서 step into 하였고
계속 F8로 한 줄 씩 진행했다.
그렇게 한 줄 씩 진행하다가 발견한 코드에서
IsDebuggerPresent 라는 매우 수상한 이름의 함수를 발견했다.
<정답제출>
코드엔진 Auth 페이지에서 Key 값으로 IsDebuggerPresent를 입력하니 Success!!가 떴다.
'CodeEngn' 카테고리의 다른 글
[CodeEngn] Basic RCE L06 (1) | 2023.11.02 |
---|---|
[CodeEngn] Basic RCE L05 (0) | 2023.09.23 |
[CodeEngn] Basic RCE L03 (0) | 2023.09.23 |
[CodeEngn] Basic RCE L02 (0) | 2023.09.23 |
[CodeEngn] Basic RCE L01 (0) | 2023.09.23 |