InlineHook & 原理与实现(3)

发布者:极安御信
发布于:2021-12-23 12:28

InlineHook又称为内联Hook,正常的API函数调用流程应该是由调用者(进程)通过函数名去调用已加载动态链接库中的导出函数。那么InlineHook的流程一般是在被调用API的头部,插入插入跳转指令的方式,劫持函数执行流程。

下图就是MessageBoxA的函数实现:


那么,我们可以在头部做出如下修改,进而实现HOOK:


上图中的12345678就代指的是我们自己的函数,通过这种方法劫持到我们的流程中执行。下面,我们采用MessageBoxA的Hook作为例子,实际体验一下InlineHook的实现方式。

首先,我们需要一个目标程序,代码如下:


然后我们来看一下HOOK后的效果:

正常情况下:


HOOK后:


 

接下来,我们将使用代码实现InlineHook,我这里采用的操作系统是Windows 10 20H2(19042.1288),集成开发环境采用的是Visual Studio 2017。

阅读全文


公众号:极安御信安全研究院(即可获得文章全部内容)



声明:该文观点仅代表作者本人,转载请注明来自看雪