' BlockInput() '
설명
키보드 및 마우스 입력 이벤트가 애플리케이션에 도달하지 못하도록 차단합니다.
함수 원형
BOOL BlockInput(
[in] BOOL fBlockIt
);
fBlockIt :
이 매개 변수가 TRUE이면 키보드 및 마우스 입력 이벤트가 차단됩니다.
이 매개 변수가 FALSE이면 키보드 및 마우스 이벤트가 차단 해제됩니다.
디버깅 중 BlockInput(True); 함수가 호출되면 키보드와 마우스 이벤트 동작이 먹통이 되므로
다른 안티디버깅 루틴 처럼 디버깅 여부를 탐지 해내기 보다는
분석을 하는 행위에 직접적으로 방해를 주는 안티디버깅 기술 이다.
내부적으로 NtUserBlockInput() 를 호출 하여 키보드 , 마우스 이벤트 동작을 차단한다.
CODE
#include <stdio.h>
#include <windows.h>
int main()
{
int a;
BlockInput(TRUE);
printf("Input: ");
scanf("%d", &a);
return 0;
}
실습
1. ctrl + alt + del 키를 눌러 탈출이 가능하다. (해당 키 입력도 막는게 가능하여 막힌다면 다른 방법을 사용해야 함)
2. BlockInput() 함수의 fBlockIt를 False 로 인자를 준다.
'Reversing > Anti-Debugging' 카테고리의 다른 글
| [Dynamic 안티디버깅] Assembly instructions (0) | 2024.02.25 |
|---|---|
| [static 안티디버깅] NtSetInformationThread() (0) | 2023.06.09 |
| [static 안티디버깅] NtQueryInformationProcess() (0) | 2023.06.07 |
| [static 안티디버깅] CheckRemoteDebuggerPresent() (0) | 2023.06.06 |
| [static 안티디버깅] IsDebuggerPresent (0) | 2023.06.05 |