문제
이 프로그램은 디버거 프로그램을 탐지하는 기능을 가지고 있다. 디버거를 탐지하려는 함수의 이름은 무엇인가
풀이
일반 실행 시 [정상]으로 뜨던 메시지가 x32 를 통해 실행하였을 땐 디버거를 탐지하여 [디버깅 당함] 이라는 메시지를 출력하였다.
<그림 2>가 반복되면서 IsDebuggerPresent 를 분기점으로 <그림 3> 과 같이 EAX 값이 0 -> 1로 변하며 [디버깅 당함] 이라는 메시지가 출력됨을 볼 수 있다.
즉, IsDebuggerPresent 라는 디버깅 탐지 함수는 디버깅을 당하면 0을 리턴한다는 것을 알 수 있다. 이제 [정상]이라는 메시지를 출력하기 위해 EAX 값을 0으로 바꿔 실행하면 <그림 5>과 같이 원하는 메시지가 출력됨을 볼 수 있다.
Flag
IsDebuggerPresent
'챌린지 > CodeEngn' 카테고리의 다른 글
[CodeEngn] CodeEngn Basic 3 (0) | 2019.02.10 |
---|---|
[CodeEngn] CodeEngn Basic 2 (0) | 2019.02.10 |
[CodeEngn] CodeEngn Basic 1 (0) | 2019.02.10 |