注入专题一:钩子注入SetWindowsHookEx--论注入的多种方式

本文介绍了DLL注入和钩子注入两种技术,重点讲解了局部钩子注入的实现过程,包括SetWindowsHookExA API的使用、消息回调函数的设置以及如何在目标进程中获取回调函数。通过理解DLL注入的流程和钩子注入的步骤,读者可以掌握在目标程序内部实现键盘注入等操作的方法。作者还承诺会分享更多注入技术并提供源码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

01

DLL注入方式

 外挂的注入方式有很多种,针对不同场景需求使用不同方式,咱们就来搞个专题 探讨下。dll一旦成功注入进目标进程,就可以随意读写 目标进程的内存(比如读取血量或者修改某些值或者地址从而实现某些变态功能或者HOOK)还可以调用call 注入自己的代码等等 。消息钩子、远程进程注入、入口点注入等等。注入方式可谓十几种,大家感兴趣的话支持一下。下此继续更新此系列

02

钩子注入

 今天我们讲的是钩子注入,算是比较简单的一种了。但是网上看了一遍 都有很多错误的写法 而且基本都是全局的钩子,咱们今天重点来讲下针对目标进程的钩子注入,很多外挂也是用这种方式来做界面控制台的收费端的

首先我们来看下SetWindowsHookExA这个 api

HHOOK SetWindowsHookExA( [in] int idHook, [in] HOOKPROC lpfn, [in] HINSTANCE hmod, [in] DWORD dwThreadId );

参数1: 表示你要HOOK的消息类型 是键盘还是鼠标 还是其他的

参数2:HOOK的消息回调函数

参数3:目标的句柄

参数4:目标的线程ID

了解了API后 我们来思考几个问题:

1钩子注入的流程

2参数2的 消息回调函数是哪个进程的,是不是应该是目标进程的消息回调,总不能是咱们注入程序的把

3既然是目标程序的,我们如何获取他的消息回调函数

以上三个问题解决了,咱们就可以实现局部钩子注入了

03

钩子注入流程

钩子注入流程是这样的:

1 在要被注入的dll 里面写好消息回调函数

并且写个导出函数

2注入程序:用loadlibrary() 加载一次 要被注入的dll 从而获取到模块句柄

GetProcAddress可以获取到导出函数的地址 这样就可以取到要被注入的dll 里面的回调函数的地址了。

    这样的方式 咱们就可以在目标程序内部实现键盘注入 比如按HOME 呼出界面。 而不是全局钩子了

核心代码也就这么些行 理解有问题的话可以来找我要源码或者和我探讨

公众号 微尘网络安全

专注分享网络安全 x64 c++ 逆向 反汇编 反调试 HOOK 注入 封包 内存等技术

感兴趣的人多我会继续更新此系列,把每种注入方式都讲一遍 并且附上源码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值