C++封裝hook,爲了實現系統hook

建立一個標準的win32 DLL就可以了。

 

#define  Dll_Export extern "C" _declspec(dllexport) 

 

//該DLL的應用實例對象

HINSTANCE instance  =  NULL;

 

Dll_Export HHOOK WINAPI SetHook(int hookType,HOOKPROC hookproc) ;

Dll_Export BOOL UnHook(HHOOK hook) ;

 

 //DLL入口,獲取實例對象

BOOL APIENTRY DllMain( HMODULE hModule,
                       DWORD  ul_reason_for_call,
                       LPVOID lpReserved
      )
{
    instance  =  hModule;

    return TRUE;
}

 

//調用函數,用於設置一個HOOK,到HOOK鏈

Dll_Export HHOOK WINAPI SetHook(int hookType,HOOKPROC hookproc)
{
    return  SetWindowsHookEx(hookType, hookproc, instance, NULL);

 

//取消一個hook

Dll_Export BOOL UnHook(HHOOK hook)
{
    if (hook  !=  NULL)
       return  UnhookWindowsHookEx(hook);
    else 
       return   0 ;
}  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章