Detours Hook
Detours是微软开发的一个函数库,主要用于动态Hook运行中的程序,其具体介绍参见http://research.microsoft.com/en-us/projects/detours/。
在游戏或外挂分析中,可以利用Detours库提供的接口来动态Hook任意地址,截获函数调用并输出打印信息。
Detours Hook的3个关键概念
要理解Detours Hook,必须先理解Detours中的3个关键概念。
ØTarget函数:即要Hook的目标函数或目标地址。
ØTrampoline函数:即跳板函数,主要负责保存原始Target函数头的若条指令,并加上一个跳转指令以保持对原始Target函数调用的语义完整性。
ØDetour函数:即截获Target函数的调用之后,所要执行的自定义函数。
在Detours Hook中,生成Trampoline函数与Target函数之间的关系如图6-10所示。
图6-10Trampoline函数与Target函数的关系
从图6-10中可以看出,Trampoline函数是由Target函数头加jmp指令组成的。
Target函数、Detour函数以及Trampoline函数之间的关系如图6-11所示。
图6-11Target函数、Detour函数和Trampoline函数间关系
从图6-11中可知,一旦Target函数被执行,程序将按照1→2→3,即Traget→Detour→Trampoline的顺序执行,最后再回到Target函数的执行过程。
Detours Hook引擎采用上面介绍的Detours Hook机制,经过精心的设计,使这个Hook引擎支持动态Hook几乎任意地址,以方便管理,而不用为了Hook一个地址去增加代码以及重新编译代码(注意:这里的“任意地址”在可以被修改的地址区域内)。
首先还是让我们看看如图6-12所示的这个引擎的概要设计,然后再详细介绍一下每一块的具体内容。
图6-12Detours Hook引擎概要设计
如图6-12所示的Detours Hook引擎,从涉及的内存结构上看,主要由4个块组成,分别是JMP块、HOOK_INFO块、Trampoline块和HKC块,而从处理函数上看,主要由DispatchHook和ProcessHook组成。
具体细节见<<游戏外挂攻防艺术>>6.4节。
电子工业出版社出版
相关推荐
Detours Hook技术是一种在Windows操作系统中进行函数拦截和替换的方法,由Microsoft Research开发。它允许开发者在不修改目标代码的情况下,动态地改变程序的行为。在本文中,我们将深入探讨Detours Hook在64位系统...
这个压缩包文件"APIHook.rar_Detours hook recv_WindowsAPICodePack.d_apihook.r_de"包含了一个使用Detours库来实现API Hook的例子,特别是针对Windows系统中的`recv`函数。下面我们将深入探讨API Hook、Detours库...
"Detours C++ HOOK类库" 是一个用于在Windows平台上进行函数钩子技术实现的高级工具集。这个库由微软开发,版本为3.0,同时也包含了列宁(可能是社区开发者)的一个改进版本。Detours库使得程序员能够便捷地拦截和...
在本文中,我们将深入探讨API Hook的概念,以及Detours库在实现API Hook中的作用。 API Hook的基本原理是通过替换API的入口点,使得在实际调用API之前或之后,可以执行自定义的函数或代码片段。这种技术广泛应用于...
我们将主要探讨两个关键库:Detours库以及Hook的基本原理。 首先,我们要理解什么是Hook。简单来说,Hook就是在程序执行过程中,通过插入一段代码(钩子)来改变原有功能的行为。当被Hook的函数或API被调用时,这段...
这一技术主要基于Detours库的Hook机制,通过Hook `SHFileOperation` 函数来实现。`SHFileOperation` 是Windows API中一个重要的函数,它负责处理各种文件操作,如复制、移动、删除和重命名等。 Detours是微软研究...
这个“精选_基于Detours库HOOK API_源码打包”资源很可能是为了帮助开发者理解和实践Detours库在Hook API方面的应用。 Detours库的核心概念是通过“Detour”函数,将原本调用目标函数的代码替换为一个“钩子”函数...
微软的hook支持api hook和指定函数地址hook,操作简单方便,文档中还有例子可供参考。
APIHOOK拦截指定进程创建新进程。@按键精灵。
Detours是微软开发的一个开源库,它为C++程序员提供了一种方便的方式来拦截和修改其他进程中的函数调用,即所谓的“钩子”(hook)技术。Detours库的使用非常广泛,尤其在系统监控、调试工具、以及性能分析等领域。 ...
谷歌浏览器劫持,使用微软detours。包含进程注入程序(testcpp3)和apihook程序(MSNDetourDLL),还包含detours32/64位库。vs2010工程下载即可用。要注意的是,如果是windows64位系统,必须编译64位的程序。
IFileOperation COM HOOK代码实例 WIN7系统在explorer.exe中操作文件都是调用IFileOperation COM接口,因此通用方法HOOK Win32 API 如DeleteFile就失去了作用该实例成功HOOK到了NewItem、RenameItem、RenameItems、...
标题中的"HookWindowTextDll-detours-code.rar"表明这是一个关于使用Detours库来实现Hook技术,特别是针对`DrawText`和`SetWindowText` API函数的项目。Detours是Microsoft Research开发的一个强大的工具,它允许...
Detours 3.0 HOOK库是一个强大的工具集,由微软研究部门开发,主要用于Windows操作系统上的函数拦截和行为修改。这个库允许开发者在不修改原始代码的情况下,对目标程序进行功能扩展或监控,广泛应用于调试、性能...
Detours是Microsoft Research开发的一个强大的动态API Hook工具,它允许开发者拦截和修改系统或应用程序的函数调用。这个工具在Windows平台上广泛应用于调试、性能监控、日志记录、行为更改等场景。Detours通过替换...
因某些原因要hookapi但是使用模块中apihook程序会崩溃,并且无法hook成功。 发现此方法可以,使用落雪发布的hook。本人只是封装个模块罢了,我觉得我这种方式用起来比较方便。 落雪帖子: ...需要使用黑月编译,并且要...
最新版微软利器Detours微软Hook库,适用于x86-64编程钩子开发,内置汇编
### ZwQuerySystemInformation 的完整声明 #### 概述 在编程领域中,特别是针对 Windows 操作系统的编程,经常需要调用内核级别的 API 函数来获取系统信息或执行某些特定任务。`ZwQuerySystemInformation` 是一个...