detours3.0

    下载量:0    评分:8.0    更新时间:2023-08-25    大小:440 KB


软件介绍

detours官方版是一款由微软官方推出的HOOK库。detours professional 3.0最新版支持多元化的编程处理,能够帮助用户拦截x86机器上的任意的win32 API函数。detours professional软件主要用于来捕获系统API,操作简单,适用于多个Windows操作系统。

detours

软件基础简介

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

安装步骤

1、在本站下载Detours软件;

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.0VCbin目录运行vcvars32.bat,切换到Microsoft Visual Studio9.0VCSRC,然后输入..binnmake指令,编译成功后在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为自定义函数。

软件官网

https://www.winternightsoftware.com/detours/


软件综述

Detours 3.0 是一款由 Microsoft Research 开发的用于 Windows 平台的轻量级库,提供了拦截和修改函数调用的功能。

优点:

  • 轻量级且高效: Detours 具有较小的内存占用和低开销,使其适用于要求严格的应用程序。
  • 易于使用: 提供了简单的 API,使开发人员能够轻松拦截和修改函数。
  • 稳定可靠: 经过广泛的测试和验证,确保了在各种 Windows 版本和系统配置下的稳定性。
  • 开源和免费: Detours 是一个开源项目,并且可以免费使用。

缺点:

  • 仅支持 Windows: Detours 仅适用于 Windows 操作系统。
  • 需要 VC++ 重编译: 在使用 Detours 之前,需要使用 Visual Studio C++ 重新编译应用程序。
  • 可能存在安全隐患: 错误地使用 Detours 可能会导致安全漏洞,因此需要谨慎使用。

应用场景:

Detours 通常用于以下应用场景:

  • 调试和性能分析: 拦截函数调用以跟踪程序执行或分析性能。
  • 函数挂钩: 修改函数的行为,例如添加日志记录或安全检查。
  • 应用程序保护: 拦截和修改恶意软件或其他不可信代码的行为。

与其他库的对比:

与其他类似的库相比,Detours 的优势在于其轻量级、高性能和易于使用。然而,它缺乏一些更高级的功能,如代码注入和内存修改。

总的来说,Detours 是一个功能强大且易于使用的库,非常适合需要拦截和修改函数调用的 Windows 应用程序开发人员。

THE END
喜欢就支持一下吧
点赞99分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容