飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 9574|回复: 17

[x64] MinHook 开源HOOK,支持X64

[复制链接]
  • TA的每日心情
    奋斗
    2016-1-13 12:25
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    发表于 2017-9-30 22:32:57 | 显示全部楼层 |阅读模式
    本帖最后由 small-q 于 2017-9-30 22:37 编辑

    MinHook   一个开源的HOOK

    https://github.com/RaMMicHaeL/minhook

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

    QQ图片20170930223345.png

    [C++] 纯文本查看 复制代码
    #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;
    }
    


    MinHook_lib_MT_VS2012.rar (87.22 KB, 下载次数: 96)

    评分

    参与人数 3威望 +32 飘云币 +28 收起 理由
    m2m + 4 感谢发布原创作品!
    cfc1680 + 8 + 8 赞一个!
    不破不立 + 20 + 20 PYG有你更精彩!

    查看全部评分

    本帖被以下淘专辑推荐:

    PYG19周年生日快乐!
  • TA的每日心情
    开心
    15 小时前
  • 签到天数: 2204 天

    [LV.Master]伴坛终老

    发表于 2017-9-30 22:36:19 | 显示全部楼层
    做沙发跟大牛学习
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2024-3-14 17:34
  • 签到天数: 1101 天

    [LV.10]以坛为家III

    发表于 2017-9-30 22:45:25 | 显示全部楼层
    收下一份,看似不错,大牛的东西就是宝
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    难过
    3 天前
  • 签到天数: 11 天

    [LV.3]偶尔看看II

    发表于 2017-9-30 23:19:20 | 显示全部楼层
    模板都用上了…… 纯c++啊
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    13 小时前
  • 签到天数: 958 天

    [LV.10]以坛为家III

    发表于 2017-10-1 09:27:21 | 显示全部楼层

    向楼主学习!向楼主致敬!
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    12 小时前
  • 签到天数: 1131 天

    [LV.10]以坛为家III

    发表于 2017-10-1 10:05:19 | 显示全部楼层
    做沙发跟大牛学习
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    13 小时前
  • 签到天数: 1431 天

    [LV.10]以坛为家III

    发表于 2017-10-1 12:53:35 | 显示全部楼层
    辛苦了,感谢分享了
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    10 小时前
  • 签到天数: 1732 天

    [LV.Master]伴坛终老

    发表于 2017-10-1 15:18:52 | 显示全部楼层
    楼主,辛苦了!路过顶一下!
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表