Programming Language/C,C++

API] SetWindowsHookExA 함수

TwinParadox 2016. 12. 30. 13:22
728x90

SetWindowsHookExA function



1
2
3
4
5
6
HHOOK WINAPI SetWindowsHookEx(
  _In_ int       idHook,
  _In_ HOOKPROC  lpfn,
  _In_ HINSTANCE hMod,
  _In_ DWORD     dwThreadId
);
cs


user32.dll에 있는 해당 함수를 통해 훅을 설정할 수 있음.

대표적인 함수로, MSDN에서 해당 함수의 구조와 사용법에 대해서 알 수 있음.



첫번째 인자, 훅 타입으로 어떤 종류의 메세지를 후킹할 것인지 선택하는 것

두번째 인자, Hook Procedure

세번째 인자, 후킹할 스레드가 속해 있는 DLL의 핸들

네번째 인자, 후킹할 스레드 아이디



첫번째 인자에 들어갈 훅 타입은 구글링으로 체크 가능

두번째 인자로 사용할 훅 프로시저, 파이썬의 경우 CMPFUNC()를 이용해 함수 포인터를 획득

세번째 인자, 마지막 인자는 전역훅 설정 시, NULL과 0

728x90