- 軟件大?。?span>492KB
- 軟件語(yǔ)言:中文
- 軟件類型:國(guó)產(chǎn)軟件
- 軟件類別:免費(fèi)軟件 / 編程工具
- 更新時(shí)間:2017-06-28 10:43
- 運(yùn)行環(huán)境:WinAll, WinXP, Win7, Win8, Win10
- 軟件等級(jí):
- 軟件廠商:
- 官方網(wǎng)站:暫無(wú)
1.45M/中文/10.0
4.60M/中文/8.7
202.00M/英文/5.0
202.00M/英文/10.0
9.07M/英文/10.0
detours professional 3.0是一款超好用的編程工具,這款軟件支持多元化的編程處理,讓用戶能夠在這里獲取更輕松的功能特性,有需要使用這一款軟件的朋友就趕快來(lái)綠色資源網(wǎng)下載使用吧!
detours professional 3.0是一個(gè)微軟官方開發(fā)的著名HOOK庫(kù),擁有兩大功能,一是攔截x86機(jī)器上的任意的win32 API函數(shù);二是插入任意的數(shù)據(jù)段到PE文件中,修改DDL文件的導(dǎo)入表。軟件主要用于實(shí)現(xiàn)復(fù)雜的Hook操作,達(dá)到一般WIN32 API實(shí)現(xiàn)不了的一些效果,另外可以編譯成lib,需要的可以下載試試吧!
detours是微軟開發(fā)的一個(gè)函數(shù)庫(kù),專門用于捕獲系統(tǒng)API。在使用之前,必須做以下相關(guān)準(zhǔn)備工作:
1、下載本站提供的detours professional 3.0軟件;
2、安裝detours,一直NEXT
3、生成detours庫(kù),
在安裝后的文件夾下找不到直接可以拿來(lái)用的LIB文件,但是卻有SRC文件(在**\Microsoft Research\Detours Express 2.1\src下)。該文件夾下還有Makefile,可以直接用來(lái)生成庫(kù)。將Detours路徑下的SCR文件夾拷貝到**\Microsoft visual studio 9.0\VC路徑下,注意是整個(gè)文件夾(其它版本VC自己照著復(fù)制)在system32目錄找到cmd右鍵以管理員身份運(yùn)行,切換至 c:\Program Files\Microsoft Visual Studio 9.0\VC\bin目錄運(yùn)行vcvars32.bat,切換到\Microsoft Visual Studio9.0\VC\SRC,然后輸入..\bin\nmake指令,編譯成功后在\Microsoft Visual Studio9.0\VC\Lib文件下就能找到detoured.lib與detours.lib文件了。
detours庫(kù)可以攔截任意的API調(diào)用,攔截代碼是在動(dòng)態(tài)運(yùn)行時(shí)加載的。detours替換目標(biāo)API最前面的幾條指令,使其無(wú)條件的跳轉(zhuǎn)到用戶提供的攔截函數(shù)。被替換的API函數(shù)的前幾條指令被保存到trampoline 函數(shù)(就是內(nèi)存中一個(gè)數(shù)據(jù)結(jié)構(gòu))中. trampoline保存了被替換的目標(biāo)API的前幾條指令和一個(gè)無(wú)條件轉(zhuǎn)移,轉(zhuǎn)移到目標(biāo)API余下的指令。
當(dāng)執(zhí)行到目標(biāo)API時(shí),直接跳到用戶提供的攔截函數(shù)中執(zhí)行,這時(shí)攔截函數(shù)就可以執(zhí)行自己的代碼了。當(dāng)然攔截函數(shù)可以直接返回,也可以調(diào)用trampoline函數(shù),trampoline函數(shù)將調(diào)用被攔截的目標(biāo)API,目標(biāo)API調(diào)用結(jié)束后又會(huì)放回到攔截函數(shù)。
安裝Hook:
DetourTransactionBegin();
DetourUpdateThread(GetcurrentThread());
DetourAttach( &(PVOID &)Real_Api, My_Api );
......
DetourTransactionCommit();
卸載Hook:
DetourTransactionBegin();
DetourUpdateThread( GetCurrentThread() );
DetourDetach( &(PVOID &)Real_Api, My_Api );
......
DetourTransactionCommit();
其中Real_Api,為原API在內(nèi)存地址,My_Api為自定義函數(shù)。
請(qǐng)描述您所遇到的錯(cuò)誤,我們將盡快予以修正,謝謝!
*必填項(xiàng),請(qǐng)輸入內(nèi)容