le0s1mba
[CodeEngn] Basic L04 본문

https://codeengn.com/challenge/rce_basic

이번 문제는 실행시키면 위의 사진처럼 "정상"이라는 단어가 계속해서 출력된다.
문제 설명을 보면 "디버거 프로그램을 탐지하는 기능을 갖고 있다"라고 한다.
내가 생각하기엔 저 "정상"이란 단어는 현재 디버거로 실행을 안 시켜서 탐지가 안 됐기 때문에 뜨는 것으로 추측된다.
그럼 이제 디버거가 탐지 됐을 때 어떻게 출력 되는지 알아보기 위해 x32dbg로 열어보겠다.

0x408370에서 시작하는데, 딱히 의심 가는 부분이 없기에 일단 F8로 계속해서 실행을 해보겠다.

0x408454에서 잠깐 멈칫 하더니 저렇게 "디버깅 당함"이 계속해서 출력됐다.

이로써 저 04.40100F에서 어떤 작업을 한다는 것을 알 수 있다.

해당 함수 안으로 들어가면 04.401030으로 jmp 하는데, 0x401030 부분을 보면 밑에 "디버깅 당함"과 "정상" 단어가 있는 것을 볼 수 있다.
여기가 아마 디버거 프로그램을 탐지하는 부분인 것 같다.
문제의 설명에서 디버거를 탐지하는 함수의 이름이 무엇인지 물었기에 저기서 호출되는 함수들을 보면 Sleep, 04.408210, IsDebuggerPresent 이렇게 3개의 함수가 존재한다.
누가 봐도 저 3개의 함수들 중에 디버거 관련 함수는 IsDebuggerPresent 밖에 없기에 해당 함수의 이름을 Auth에 넣어 보면 문제가 풀린다.
더보기
flag : IsDebuggerPresent
'Security Challenges > CodeEngn' 카테고리의 다른 글
| [CodeEngn] Basic L06 (0) | 2025.03.12 |
|---|---|
| [CodeEngn] Basic L05 (0) | 2025.03.12 |
| [CodeEngn] Basic L03 (0) | 2025.03.11 |
| [CodeEngn] Basic L02 (0) | 2025.03.11 |
| [CodeEngn] Basic L01 (0) | 2025.03.11 |