문제 설명
이 프로그램은 디버거 프로그램을 탐지하는 기능을 갖고 있다. 디버거를 탐지하는 함수의 이름은 무엇인가.
개념 설명
디버깅을 탐지하는 함수: IsDebuggerPresent
-> 현재 프로세스가 디버거에 의해 디버깅되고 있는지 여부를 확인하는 데 사용
<함수 원형>
BOOL IsDebuggerPresent(void);
반환값 T(디버깅 되고 있음) , F(디버깅 안되고 있음)
<Intermodular calls>
한 모듈에서 정의된 함수나 서브루틴을 다른 모듈에서 호출하는 것
*ppt를 참고했습니다.
문제 풀이
일단 문제를 열어보자.


정상이라는 문자가 계속 출력되는 것을 알 수 있다.
어셈블리어를 살펴보기 위해 Immunity Debugger를 켜보자.

실행시켜보니

디버깅 당함이라고 뜬다.

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

IsDebuggerPresent 함수가 보이는 것을 확인할 수 있다.
'Reverse Engineering > CodeEngn Basic' 카테고리의 다른 글
| [리버싱] CodeEngn Basic RCE L06 (0) | 2024.09.19 |
|---|---|
| [리버싱] CodeEngn Basic RCE L05 (0) | 2024.09.19 |
| [리버싱] CodeEngn Basic RCE L03 (1) | 2024.09.15 |
| [리버싱] CodeEngn Basic RCE L02 (0) | 2024.09.15 |
| [리버싱] CodeEngn Basic RCE L01 (0) | 2024.09.13 |