small-q 发表于 2017-9-30 22:32:57

MinHook 开源HOOK,支持X64

本帖最后由 small-q 于 2017-9-30 22:37 编辑

MinHook   一个开源的HOOK

源 https://github.com/RaMMicHaeL/minhook

实例 https://www.codeproject.com/Arti ... x-API-Hooking-Libra



#include <Windows.h>
#include "MinHook.h"

#if defined _M_X64
#pragma comment(lib, "MinHook.x64.lib")
#elif defined _M_IX86
#pragma comment(lib, "MinHook.x86.lib")
#endif

// Helper function for MH_CreateHookApi().
template <typename T>
inline MH_STATUS MH_CreateHookApiEx(LPCWSTR pszModule, LPCSTR pszProcName, LPVOID pDetour, T** ppOriginal)
{
    return MH_CreateHookApi(pszModule, pszProcName, pDetour, reinterpret_cast<LPVOID*>(ppOriginal));
}

typedef int (WINAPI *MESSAGEBOXW)(HWND, LPCWSTR, LPCWSTR, UINT);

// Pointer for calling original MessageBoxW.
MESSAGEBOXW fpMessageBoxW = NULL;

// Detour function which overrides MessageBoxW.
int WINAPI DetourMessageBoxW(HWND hWnd, LPCWSTR lpText, LPCWSTR lpCaption, UINT uType)
{
    return fpMessageBoxW(hWnd, L"Hooked!", lpCaption, uType);
}

int main()
{
    // Initialize MinHook.
    if (MH_Initialize() != MH_OK)
    {
      return 1;
    }

    // Create a hook for MessageBoxW, in disabled state.
    if (MH_CreateHookApiEx(L"user32", "MessageBoxW", &DetourMessageBoxW, &fpMessageBoxW) != MH_OK)
    {
      return 1;
    }

    // Enable the hook for MessageBoxW.
    if (MH_EnableHook(&MessageBoxW) != MH_OK)
    {
      return 1;
    }

    // Expected to tell "Hooked!".
    MessageBoxW(NULL, L"Not hooked...", L"MinHook Sample", MB_OK);

    // Disable the hook for MessageBoxW.
    if (MH_DisableHook(&MessageBoxW) != MH_OK)
    {
      return 1;
    }

    // Expected to tell "Not hooked...".
    MessageBoxW(NULL, L"Not hooked...", L"MinHook Sample", MB_OK);

    // Uninitialize MinHook.
    if (MH_Uninitialize() != MH_OK)
    {
      return 1;
    }

    return 0;
}



不破不立 发表于 2017-9-30 22:36:19

做沙发跟大牛学习

ningzhonghui 发表于 2017-9-30 22:45:25

收下一份,看似不错,大牛的东西就是宝

lijun520 发表于 2017-9-30 22:58:55

支持小Q

lijun520 发表于 2017-9-30 22:58:58

支持小Q

飘云 发表于 2017-9-30 23:19:20

模板都用上了…… 纯c++啊

gujin162 发表于 2017-10-1 09:27:21


向楼主学习!向楼主致敬!

cdffc 发表于 2017-10-1 10:05:19

做沙发跟大牛学习

cfc1680 发表于 2017-10-1 12:53:35

辛苦了,感谢分享了

ldljlzw 发表于 2017-10-1 15:18:52

楼主,辛苦了!路过顶一下!
页: [1] 2
查看完整版本: MinHook 开源HOOK,支持X64