做店铺首页的网站,开发软件定制,企业信用公示信息网官网网址,微分销商城系统文章目录 Detours介绍Detours配置Detours进行Sleep Hook Detours介绍
Detours是微软研究院开发的一款软件工具#xff0c;用于Windows平台上的应用程序重定向和修改。
它可以在运行时修改应用程序的执行路径#xff0c;允许开发人员注入自定义代码来改变应用程序的
行为用于Windows平台上的应用程序重定向和修改。
它可以在运行时修改应用程序的执行路径允许开发人员注入自定义代码来改变应用程序的
行为而不需要修改其源代码。Detours通常用于进行应用程序的跟踪、调试、性能分析以及
行为修改等任务。Detours的工作原理是通过截取目标应用程序的API调用然后将这些调用
重定向到开发人员自己编写的代码中。这使得开发人员可以在应用程序执行过程中拦截、检
查和修改其行为从而实现各种目的比如记录函数调用、插入日志、进行性能分析、实现安
全措施等。Detours提供了一个灵活的API使得开发人员可以轻松地编写自己的重定向代码
并且支持对32位和64位的应用程序。它在Windows平台上被广泛应用于软件开发、调试和研
究领域特别是在需要对二进制程序进行修改和分析的场景下Detours是一个非常有用的工具。Detours配置
1.使用新版VS支持NuGet安装
对项目右键单击管理NuGet程序包2. 在浏览中输入Detours并搜索下载第一个并安装3.安装完成会项目目录中可以看到Detours4.配置include目录
正常情况下NuGet将自动适配如果出现问题手动进行如下配置。
该目录位于packages\Detours.4.0.1\lib\native\include下打开VS的项目属性打开
C/C - 常规 - 附件包含目录将include输入进去。5.配置lib库文件在C/C - 输入 - 附加依赖项中填写libs目录中对应位数的lib文件。Detours进行Sleep Hook
下面是进行的Sleep Hook演示代码在调用Sleep函数的时候进行一个弹窗。#include Windows.h
#include detours.h
static VOID(WINAPI* OldSleep)(_In_ DWORD dwMilliseconds) Sleep;
VOID WINAPI NewSleep(_In_ DWORD dwMilliseconds)
{MessageBoxA(0, hook ok, hook ok, 0);return OldSleep(dwMilliseconds);
}
void Hook(PVOID* oldAddress, PVOID newAddress)
{DetourTransactionBegin();DetourUpdateThread(GetCurrentThread());DetourAttach(oldAddress, newAddress);DetourTransactionCommit();
}void UnHook(PVOID* oldAddress, PVOID newAddress)
{DetourTransactionBegin();DetourUpdateThread(GetCurrentThread());DetourDetach(oldAddress, newAddress);DetourTransactionCommit();
}int main()
{Hook((PVOID)OldSleep, NewSleep);Sleep(0);return 0;
}