본문 바로가기

Security/System Hacking

엑티브엑스 컨트롤을 이용한 후킹 프로그램 1. DLL만들기

엑티브엑스 컨트롤을 이용한 후킹 프로그램

 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(dllexportvoid InstallHook(HWND hWnd)

{

        MyhWnd=hWnd;

        hKeyHook=SetWindowsHookEx(WH_KEYBOARD,KeyHookProc,hModule,NULL);

        hMouseHook=SetWindowsHookEx(WH_MOUSE,MouseHookProc,hModule,NULL);

}

 

extern "C" __declspec(dllexportvoid 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 파일이 생긴 것을 확인 할 수 있다.