c++ 키보드 후킹 예제

내 예에서 후크 기능을 설치하는 installhook 기능은 다음과 같습니다. 오늘은 프로그램에서 키보드 후크 (C ++)를 설정하는 방법을 보여줍니다. 그것은이 튜토리얼의 끝에서, 당신은 사용자가 자신의 키보드에 키를 누를 때 알 수 있을 거 야, 어떤 키, 때 그는 그것을 해제 합니까, 얼마나 많은 시간 그는 키 등을 누르면 않았다… 갑시다! 후킹을 반대로 하려면 프로세스에서 DLL을 언로드한 후 DllMain에서 Mhook_Unhook을 호출해야 합니다. 일반적으로 다음작업을 수행합니다: 참고 디버그 후크는 이러한 유형의 저수준 키보드 후크를 추적할 수 없습니다. 응용 프로그램이 낮은 수준의 후크를 사용해야 하는 경우 작업을 작업자 스레드로 전달한 다음 즉시 반환하는 전용 스레드에서 후크를 실행해야 합니다. 응용 프로그램이 낮은 수준의 후크를 사용해야 하는 대부분의 경우 원시 입력을 대신 모니터링해야 합니다. 이는 원시 입력이 낮은 수준의 후크보다 다른 스레드를 대상으로 하는 마우스 및 키보드 메시지를 비동기적으로 모니터링할 수 있기 때문입니다. 원시 입력에 대한 자세한 내용은 원시 입력을 참조하십시오. 우리가 이미 말했듯이, API 후킹 예제를 제공하기 위해, 우리는 프로세스 목록에 표시되지 않는 calc.exe 프로세스를 만들 것입니다 – 이러한 목록을 나타내는 모든 Windows 도구에 대한.

이 예제에서는 DLL을 만들고 프로세스에 삽입하여 전역 API 후크를 설정하고 일종의 appinit_dlls 루트킷을 만드는 방법을 보여 줍니다. 제공된 API 후크가 전역이기 때문에 Windows 작업 관리자와 유사한 기능을 가진 다른 프로그램에서 동일한 결과가 표시되는 것을 볼 수 있습니다. 예를 들어, 마크 루시노비치의 프로세스 탐색기입니다. 키보드 메시지의 식별자입니다. 이 매개 변수는 WM_KEYDOWN, WM_KEYUP, WM_SYSKEYDOWN 또는 WM_SYSKEYUP 중 하나일 수 있습니다. wParam 및 lParam 매개 변수에는 키보드 메시지에 대한 정보가 포함되어 있습니다. 나는 또한이 기사를 발견, 이것에 대해? http://www.codeproject.com/KB/DLL/keyboardhook.aspx SetWindowsHookEx 함수와 함께 사용되는 응용 프로그램 정의 또는 라이브러리 정의 콜백 함수입니다. 새 키보드 입력 이벤트가 스레드 입력 큐에 게시될 때마다 시스템에서 이 함수를 호출합니다. 후크에 하나 이상의 필터 함수가 연결되어 있고 후크를 트리거하는 이벤트가 발생하면 Windows는 필터 함수 체인의 첫 번째 필터 함수를 호출합니다.

Comments

comments