轉載註明出處javascript
http://blog.csdn.net/xugangjava/article/details/7455851html
1.首先下載Detour3.0 。java
2.新建一個win32的 dll連接庫python

將 Detour3.0的源代碼 Copy到工程目錄下,就是下面這個樣子web

最後在dllmian裏面編寫 咱們的鉤子,編程
-
- #include "stdafx.h"
- #include "detours.h"
- PVOID g_pOldMessageBoxA=NULL;
- typedef int (WINAPI *PfuncMessageBoxA)(HWND hWnd,LPCSTR lpText,LPCSTR lpCaption,UINT uType);
- int WINAPI ZwNewMessageBoxA(HWND hWnd,LPCSTR lpText,LPCSTR lpCaption,UINT uType)
- {
- return ((PfuncMessageBoxA)g_pOldMessageBoxA)(hWnd, "Hook This!","My hook",uType);
- }
-
- BOOL APIENTRY SetHook()
- {
-
- DetourTransactionBegin();
-
- DetourUpdateThread(GetCurrentThread());
-
- g_pOldMessageBoxA=DetourFindFunction("User32.dll","MessageBoxA");
-
- DetourAttach(&g_pOldMessageBoxA,ZwNewMessageBoxA);
-
- LONG ret=DetourTransactionCommit();
- return ret==NO_ERROR;
- }
-
-
- BOOL APIENTRY DropHook()
- {
- DetourTransactionBegin();
- DetourUpdateThread(GetCurrentThread());
- DetourDetach(&g_pOldMessageBoxA, ZwNewMessageBoxA);
- LONG ret=DetourTransactionCommit();
- return ret==NO_ERROR;
- }
-
- static HMODULE s_hDll;
- HMODULE WINAPI Detoured()
- {
- return s_hDll;
- }
- BOOL APIENTRY DllMain( HMODULE hModule,DWORD ul_reason_for_call,LPVOID lpReserved )
- {
- switch (ul_reason_for_call)
- {
- case DLL_PROCESS_ATTACH:
- s_hDll = hModule;
- DisableThreadLibraryCalls(hModule);
- SetHook();
- break;
- case DLL_THREAD_ATTACH:
- break;
- case DLL_THREAD_DETACH:
- break;
- case DLL_PROCESS_DETACH:
- DropHook();
- break;
- }
- return TRUE;
- }
Ok 編譯 成功 咱們來試一下 寫個 LoadLibrary 來加載這個DLL 運行DllMain
咱們的鉤子就加載了,swift
懶得編程序試了進入命令行 cmd 進入到 Hook.dll所在的目錄 windows
python 來測試一下 在交互式命令行中輸入api

OK 輸入最後最後一句回車,效果以下,MessageBox的內容已經被修改了app

附源代碼 http://download.csdn.net/detail/xugangjava/4221929