通常情况下,Detours 会更适合用于修改目标进程内的函数调用,而不是直接修改其内存内容。因此,结合 WriteProcessMemory 和 Detours 使用时,可能会将 Detours 用于修改函数调用,而使用 WriteProcessMemory 用于注入所需的代码或 DLL。 项目上我们将其用于 hook 播放器声音,利用 UDP 将数据传回给我们的软件用于播放和传输...
地址是:https://github.com/microsoft/Detours。 编译Detours库:运行 Native Tools Command Prompt for VS 2022(根据编译x32或者x64选择对应的版本)。运行后切换到Detours解压后的目录,并且进入到src文件中。让后执行nmake命令,开始编译。 3.配置项目以使用Detours库:在项目属性中,将Detours库的头文件目录添加到包含目...
Detours 是微软开发的一个强大的 Windows API 钩子库,用于监视和拦截函数调用。它广泛应用于微软产品团队和众多独立软件开发中,旨在无需修改原始代码的情况下实现函数拦截和修改。Detours 在调试、监控、日志记录和性能分析等方面表现出色,已成为开发者的重要工具。本章
1.要使用Detours库,导入detours.h头文件和链接detours.lib静态库 。使用这个库提供的API Hook系统API,例如在这个例子中的send和recv函数。 2.注入程序,遍历目标程序,把动态库注入目标程序。注入目标程序的方法是创建远程线程来加载这个动态库,动态库里Hook了send和recv这两个函数。在这两个函数里,把用户发送的内容保...
detours初使用 dll代码部分如下 // dllmain.cpp : 定义 DLL 应用程序的入口点。#include"pch.h"// 安装vcpkg// git clone https://github.com/Microsoft/vcpkg.git// cd vcpkg// bootstrap-vcpkg.bat// vcpkg integrate install// 安装Detours库// VcPkg install detours:x86-windows// VcPkg install ...
通常情况下Detours库只会用于函数挂钩,但实际上Detours库不仅可以拦截函数,还提供了对动态链接库的注入功能。本章将详细讲解每个注入函数的使用方法、参数和实际应用。 DetourCreateProcessWithDllA 该函数用于创建一个新进程并在创建时注入一个DLL动态链接库文件。其重要参数仅有两个,参数1用于指定被注入程序路径,参数11...
需要在不修改二进制文件的情况下被插入到应用程序中,Detours提供了函数来将DLL注入到一个新的或者是已经存在的进程。为了注入一个DLL,Detours使用AllocEx和...用,而且可以将目标函数的输出结果进行修改后再传回给应用程序。 这是一种执行时注入的方式,Detours是执行时被插入的。即修改的是内存中的目标函数代码,而不...
https://github.com/microsoft/Detours 2、编译 cd Detours\vc 打开Detours.sln 编译运行 1. 2. 如果编译失败,重定向一下解决方案 3、编译运行成功之后会生成 detours.lib 4、使用头文件和 detours.lib 二、使用 detours.lib 进行 Hook 这里我们进行 SendMessage 的 Hook,Hook 新定义的输出函数要和原函...
使用示例 #include <windows.h> #include <iostream> #include "detours.h" #pragma comment(lib,"detours.lib") int main(int argc, char *argv[]) { HMODULE hModule = NULL; // 列舉當前程序中的所有模組 while ((hModule = DetourEnumerateModules(hModule)) != NULL) ...
地址是:https://github.com/microsoft/Detours。 编译Detours库:运行 Native Tools Command Prompt for VS 2022(根据编译x32或者x64选择对应的版本)。运行后切换到Detours解压后的目录,并且进入到src文件中。让后执行nmake命令,开始编译。 3.配置项目以使用Detours库:在项目属性中,将Detours库的头文件目录添加到包含目...