L_Chae 2023. 3. 28. 18:12

04.7z
0.04MB

 

디버거를 프로그램을 탐지하는 함수를 찾는 문제

 

먼저 PEiD로 패킹 여부를 확인

 

이뮤니티 디버거로 해당 부분을 진행했을 시

프로그램 실행창에 다음과 같은 내용이 출력된다.

 

해당 부분(00408454)에 F2로 브레이크포인트를 걸고 진입해보았다.

진입!

들어가자마자 00401030으로 점프하는 어셈블리 명령어를 찾을 수 있고,

00401030 근처에서 IsDebuggerPresent라는 명령어를 찾을 수 있었다.

 

https://learn.microsoft.com/ko-kr/windows/win32/api/debugapi/nf-debugapi-isdebuggerpresent

 

IsDebuggerPresent 함수(debugapi.h) - Win32 apps

호출 프로세스가 사용자 모드 디버거에 의해 디버깅되는지 여부를 확인합니다.

learn.microsoft.com

 

그리고 00401074를 지나면 '디버깅 당함'이라는 메시지가 출력되는 것을 확인할 수 있었다.

 

HxD에디터로 '디버깅 당함'메시지를 찾아보면 해당 메시지가 출력되지 않도록 하거나 다른 메시지가 출력되도록 할 수도 있을 것 같다.