문제

 

이 프로그램은 디버거 프로그램을 탐지하는 기능을 가지고 있다. 디버거를 탐지하려는 함수의 이름은 무엇인가

 

풀이

 

<그림 1> 정상 -> 디버깅

일반 실행 시 [정상]으로 뜨던 메시지가 x32 를 통해 실행하였을 땐 디버거를 탐지하여 [디버깅 당함] 이라는 메시지를 출력하였다.

 

<그림 2> 메시지 출력

 

<그림 2>가 반복되면서 IsDebuggerPresent 를 분기점으로 <그림 3> 과 같이 EAX 값이 0 -> 1로 변하며 [디버깅 당함] 이라는 메시지가 출력됨을 볼 수 있다.

 

<그림 3> EAX 변화

즉, IsDebuggerPresent 라는 디버깅 탐지 함수는 디버깅을 당하면 0을 리턴한다는 것을 알 수 있다. 이제 [정상]이라는 메시지를 출력하기 위해 EAX 값을 0으로 바꿔 실행하면 <그림 5>과 같이 원하는 메시지가 출력됨을 볼 수 있다.

 

<그림 4> EAX 편집

 

<그림 5> Crack

 

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

+ Recent posts