본문으로 바로가기

ZwQueryInformationProcess - ProcessDebugFlags 이용한 안티 디버깅
ZwQueryInformationProcess를 이용하여 디버깅에 관련된 다양한 정보를 얻을 수 있으며, 해당 정보를 이용하여 안티 디버깅 수행.
NtQueryInformationProcess는 ZwQueryInformationProcess 래퍼 함수이며, User-Level에서는 두 함수의 기능이 동일.

 

MSDN

1번째 인자(ProcessHandle) : 정보를 얻을 프로세스의 핸들
2번째 인자(ProcessInformationClass) : 0x1f(ProcessDebugFlags)
3번째 인자(ProcessInformation) : Debugger 연결 중인 경우 0 반환

 

소스 코드


안티 디버깅 우회 방법
1. ZwQueryInformationProcess의 2번째 인자로 0x1f(ProcessDebugFlags)가 전달될 경우 반환되는 3번째 인자 값을 1로 변경
2. 디버거의 안티디버깅 플러그인 이용(ex : OllyDbg의 OllyAdvanced Plug-In을 이용)

 

Reference

MSDN : https://msdn.microsoft.com/en-us/library/windows/desktop/ms725506(v=vs.85).aspx