le0s1mba

[CodeEngn] Basic L04 본문

Security Challenges/CodeEngn

[CodeEngn] Basic L04

le0s1mba 2025. 3. 12. 08:41

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