找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 14|回复: 0

Detours Professional

[复制链接]

32万

主题

0

回帖

96万

积分

超级版主

积分
964681
发表于 2025-3-14 11:19:20 | 显示全部楼层 |阅读模式
软件标签:  detours   编程工具
detours professional 3.0是一款超好用的编程工具,这款软件支持多元化的编程处理,让用户能够在这里获取更轻松的功能特性,有需要使用这一款软件的朋友就赶快来绿色资源网下载使用吧!
detours官方介绍
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文件夹拷贝到**microsoftvisual studio9.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为自定义函数。


aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|ziyuan80.com

GMT+8, 2025-8-17 22:05 , Processed in 0.080477 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表