Detours Professional

Detours Professional

v3.0.316
软件类型
行业软件
软件大小
492.75 KB
支持系统
WinAll
更新时间
2022-12-21

detours professional 3.0是一个微软官方开发的着名HOOK库,拥有两大功能,一是拦截x86机器上的任意的win32 API函数;二是插入任意的数据段到PE文件中,修改DDL文件的导入表。软件主要用于实现复杂的Hook操作,达到一般WIN32 API实现不了的一些效果,另外可以编译成lib,需要的可以下载试试吧!

detours软件使用方法

detours是微软开发的一个函数库,专门用于捕获系统API。在使用之前,必须做以下相关准备工作:

1、下载本站提供的detours professional 3.0软件;

2、安装detours,一直NEXT

3、生成detours库。

在安装后的文件夹下找不到直接可以拿来用的LIB文件,但是却有SRC文件(在**Microsoft ResearchDetours Express 2.1src下)。该文件夹下还有Makefile,可以直接用来生成库。将Detours路径下的SCR文件夹拷贝到**Microsoft visual studio 9.0VC路径下,注意是整个文件夹(其它版本VC自己照着复制)在system32目录找到cmd右键以管理员身份运行,切换至 c:Program FilesMicrosoft Visual Studio 9.0VCin目录运行vcvars32.bat,切换到Microsoft Visual Studio9.0VCSRC,然后输入..in make指令,编译成功后在Microsoft Visual Studio9.0VCLib文件下就能找到detoured.lib与detours.lib文件了。

detours库可以拦截任意的API调用,拦截代码是在动态运行时加载的。detours替换目标API最前面的几条指令,使其无条件的跳转到用户提供的拦截函数。被替换的API函数的前几条指令被保存到trampoline 函数(就是内存中一个数据结构)中. trampoline保存了被替换的目标API的前几条指令和一个无条件转移,转移到目标API余下的指令。

当执行到目标API时,直接跳到用户提供的拦截函数中执行,这时拦截函数就可以执行自己的代码了。当然拦截函数可以直接返回,也可以调用trampoline函数,trampoline函数将调用被拦截的目标API,目标API调用结束后又会放回到拦截函数。

关键代码如下

安装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在内存地址,My_Api为自定义函数。

免责声明:本站提供的一切软件、教程和内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络收集整理,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。如果您喜欢该程序和内容,请支持正版,购买注册,得到更好的正版服务。我们非常重视版权问题,如有侵权请邮件与我们联系处理,我们将尽快删除相关内容。

发表评论
请自觉遵守互联网相关政策法规,评论内容只代表网友观点,与本站立场无关
请自觉遵守互联网相关政策法规,评论内容只代表网友观点,与本站立场无关
  • 全部评论(0
    还没有评论,快来抢沙发吧!