본문 바로가기

Reverse Engineering/CodeEngn Basic

[리버싱] CodeEngn Basic RCE L04

문제 설명

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


개념 설명

디버깅을 탐지하는 함수: IsDebuggerPresent

-> 현재 프로세스가 디버거에 의해 디버깅되고 있는지 여부를 확인하는 데 사용

<함수 원형>

BOOL IsDebuggerPresent(void);

반환값 T(디버깅 되고 있음) , F(디버깅 안되고 있음)

<Intermodular calls>

한 모듈에서 정의된 함수나 서브루틴을 다른 모듈에서 호출하는 것

*ppt를 참고했습니다.


문제 풀이

일단 문제를 열어보자.

정상이라는 문자가 계속 출력되는 것을 알 수 있다.

 

어셈블리어를 살펴보기 위해 Immunity Debugger를 켜보자.

 

실행시켜보니 

디버깅 당함이라고 뜬다.

 

Search for > All intermodular calls 로 들어가서 함수를 찾아보자.

 

IsDebuggerPresent 함수가 보이는 것을 확인할 수 있다.