취약점 분석/안티 리버싱

NtQueryInformationProcess - ProessDebugPort 우회방법

night-Ohl 2019. 2. 27. 14:27
반응형

NtQueryInformationProcess, ZwQueryInformationProcess - ProcessDebugPort

참고URL : https://docs.microsoft.com/en-us/windows/desktop/procthread/zwqueryinformationprocess


NtQueryInformationProcess는 ZwQueryInformationProcess의  wrapper 함수이다.


[ ZwQueryInformationProcess 함수 ]

[Syntax]


ProcessHandle

: 정보를 받기를 원하는 프로세스의 핸들


ProcessInformationClass [in]

: 받고자 하는 프로세스 정보 타입. (참고 URL을 보면 목록을 볼 수 있다.)

ProcessDebugPort  (0x07)을 넘긴다.


ProcessInformation [out]

: ProcessInformation을 받아올 버퍼 주소


ProcessInformationLength [in]

: 받아올 정보의 길이


ReturnLength [out]

: 성공적으로 잘 받아왔다면 ProcessInformationLength와 값이 같고, 실패했다면 information을 받는데 필요한 최소 크기를 명시해줌.


[안티 디버깅]

1) 두번째 인자의 값을 문서화 되지 않은 값인 ProcessDebugPort(0x07)를 넘기면,

2) 함수 호출 후 3번째 인자 결과  

[ 0xFFFFFFFF : 디버깅 중! / 0 : 디버깅 아니네? ]


[우회 방법]

3번째 인자를 메모리에 띄워놓고 함수 호출 후 0으로 바꿈.


반응형