Detours 是 Microsoft Research 开发的一种库,用于在 Windows 平台上修改函数调用的行为。它允许开发者截获特定函数的调用,并将其重定向到自定义的函数中,从而实现对目标函数的修改、监视和扩展。Detours 在软件开发中被广泛用于实现各种目的,包括代码注入、API hooking、性能分析等。 结合使用: 在某些情况
Detours 是微软开发的一个强大的 Windows API 钩子库,用于监视和拦截函数调用。它广泛应用于微软产品团队和众多独立软件开发中,旨在无需修改原始代码的情况下实现函数拦截和修改。Detours 在调试、监控、日志记录和性能分析等方面表现出色,已成为开发者的重要工具。本章
使用Detours库实现IAT(Import Address Table)Hook是一种在Windows平台上常见的Hook技术,可以用于拦截和修改程序对特定DLL函数的调用。以下是使用Detours实现IAT Hook的步骤: 1. 了解Detours库和IAT Hook的基本概念 Detours库:Detours是一个Windows API Hooking库,允许开发者拦截、修改和替换Windows API函数或其他动态链接库...
地址是:https://github.com/microsoft/Detours。 编译Detours库:运行 Native Tools Command Prompt for VS 2022(根据编译x32或者x64选择对应的版本)。运行后切换到Detours解压后的目录,并且进入到src文件中。让后执行nmake命令,开始编译。 3.配置项目以使用Detours库:在项目属性中,将Detours库的头文件目录添加到包含目...
1 这里介绍使用的Detours库设置指定的exe程序来Hook指定的API函数,比如这里Hook的是XXX.exe的DeleteFileA函数,首先创建一个dll,内容如下所示:2 #include "stdafx.h"#include <Windows.h>#include "detours.h" #pragma comment(lib, "detours.lib") static BOOL (WINAPI *TDeleteFileA)(LPCSTR lpFile...
//github.com/microsoft/Detours.git // 然后使用vs编译即可 #include <TCHAR.h> #include "include/detours/detours.h" #pragma comment(lib, "detours.lib") static VOID(WINAPI* TureSleep)(DWORD dwMilliseconds) = Sleep; extern "C" _declspec(dllexport) VOID WINAPI hkSleep(DWORD dwMilliseconds); ...
主要代码如下,其中我们拦截了MessageBox这一个API函数【你可以直接将下面的代码复制到项目中,理论上配置好Detours的目录就可以正常编译和使用。验证过】 // dllmain.cpp : 定义 DLL 应用程序的入口点。 #include "stdafx.h" #include <stdio.h> #include <atlconv.h> #include <tchar.h> #include "detours.h...
使用Detours 为了达到拦截和截获绕过目标函数,有两件事是必要的:一个包含目标函数地址的目标指针和一个detour函数。为了正确拦截目标函数、detour函数和目标指针,必须具有完全相同的调用签名,包括参数数量和调用约定。使用相同的调用约定可以确保正确地保存寄存器,并确保在detour函数和目标函数之间正确地对齐堆栈 下面的代码片...
https:///microsoft/Detours 2、编译 cd Detours\vc 打开Detours.sln 编译运行 1. 2. 如果编译失败,重定向一下解决方案 3、编译运行成功之后会生成 detours.lib 4、使用头文件和 detours.lib 二、使用 detours.lib 进行 Hook 这里我们进行 SendMessage 的 Hook,Hook 新定义的输出函数要和原函数参数是一...