Detour3.0 win7 64bit下的安裝

最近在做API hook相關的東西,用了inline hook後感覺不錯,但是查找資料發現inline hook並不穩定

inline hook 的原理是在系統訪問一個函數的時候先替換原函數入口處的內容跳轉到自己設計的hook函數中,然後在自己函數中進行hook工作。可是在並行系統中,很可能有個線程就在這個時候調用了被自己改掉的系統函數,出現我們無法預期的結果。

所以打算學習一下inline hook升級版:detour庫hook,其實hook過程原理基本一樣,只是微軟做了封裝和相關的衝突檢查,所以這種api hook穩定些。

(當然其他apihook方式還有modifying the Import Address Table (link provided later),using proxy DLLs and manifest files

用detour庫進行hook必須先部署Detour,

電腦環境:win7 64bit

1.從http://research.microsoft.com/sn/detours下載detour professional 3.0!!!不是Express版的哈~

2.安裝(此流程無腦)

3.生成detour.lib:安裝detour後,目錄中有src文件夾,把文件夾拷貝到\Microsoft Visual Studio 10.0\VC下

3.1打開cmd進入Microsoft Visual Studio 10.0\VC\bin目錄輸入命令vcvars32.bat,運行後可以設置好編譯環境

3.2切換到\Microsoft Visual Studio10.0\VC\SRC,然後輸入nmake指令(這裏可能會有錯誤 未找到文件“..\system.mak”,解決方法在下面)

4.部署lib文件,上一步\Microsoft Visual Studio10.0\VC\lib中會生成lib文件,將\Microsoft Visual Studio10.0\VC\src中的detours.h複製到..\include目錄下(如果include中沒有該頭文件)

整個部署完成了

detour的使用:

自己寫的源碼中添加如下內容就可以使用detour了:

#include <detours .h> //*IMPORTANT: Look at path if compiler error

#pragma comment(lib, "detoured.lib")

#pragma comment(lib, "detours.lib")

未找到文件“..\system.mak”解決方法:
將detours安裝目錄中的system.makMakefile複製到Microsoft Visual Studio 10.0\VC目錄就解決了

技術相關更多文章猛擊:哇啦天堂論壇技術區
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章