엑티브엑스 컨트롤을 이용한 후킹 프로그램
1. DLL만들기
먼저 키보드와 마우스를 후킹해주는 DLL파일을 만들어 준다.
새 프로젝트에서 Win32 콘솔 응용프로그램 선택 후 응용프로그램 종료 DLL 선택
KeyHook.cpp와 KeyHook.h 파일 생성
KeyHook.cpp
#include <windows.h> #define WM_HOOKED WM_USER+1 #define WM_HOOKEDM WM_USER+2 #pragma data_seg(".kbdata") HINSTANCE hModule=NULL; HHOOK hKeyHook = NULL; HHOOK hMouseHook = NULL; HWND MyhWnd=NULL; #pragma data_seg() #pragma comment (linker, "/SECTION:.kbdata,RWS") LRESULT CALLBACK KeyHookProc(int nCode, WPARAM wParam, LPARAM lParam) { if (nCode>=0) { SendMessage(MyhWnd,WM_HOOKED,wParam,lParam); } return CallNextHookEx(hKeyHook,nCode,wParam,lParam); } LRESULT CALLBACK MouseHookProc(int nCode, WPARAM wParam, LPARAM lParam) { if (nCode>=0) { SendMessage(MyhWnd,WM_HOOKEDM,wParam,lParam); } return CallNextHookEx(hMouseHook,nCode,wParam,lParam); } extern "C" __declspec(dllexport) void InstallHook(HWND hWnd) { MyhWnd=hWnd; hKeyHook=SetWindowsHookEx(WH_KEYBOARD,KeyHookProc,hModule,NULL); hMouseHook=SetWindowsHookEx(WH_MOUSE,MouseHookProc,hModule,NULL); } extern "C" __declspec(dllexport) void UninstallHook() { UnhookWindowsHookEx(hKeyHook); UnhookWindowsHookEx(hMouseHook); } BOOL WINAPI DllMain(HINSTANCE hInst, DWORD fdwReason, LPVOID lpRes) { switch (fdwReason) { case DLL_PROCESS_ATTACH: hModule=hInst; break; case DLL_PROCESS_DETACH: break; } return TRUE; } |
컴파일 해 준다.
- 디버그 폴더에 다음과 같이 KeyHook.dll파일과 KeyHook.lib 파일이 생긴 것을 확인 할 수 있다.
[출처] 엑티브엑스 컨트롤을 이용한 후킹 프로그램 1. DLL만들기|작성자 Ian
'Security > System Hacking' 카테고리의 다른 글
엑티브엑스 컨트롤을 이용한 후킹 프로그램 3. 후킹 구현 (0) | 2012.07.12 |
---|---|
엑티브엑스 컨트롤을 이용한 후킹 프로그램 2. 폼뷰 만들기 (0) | 2012.07.12 |
No.3 Format 스트링 (0) | 2012.07.11 |
No.2 Buffer OverFlow Attack (0) | 2012.07.11 |
No.1 Process OR SetUID (0) | 2012.07.11 |