网站首页 > 文章精选 正文
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 注入 封包 内存等技术
公众号
感兴趣的人多我会继续更新此系列,把每种注入方式都讲一遍 并且附上源码
猜你喜欢
- 2025-03-29 Vue3 中有哪些值得深究的知识点?(vue3技巧)
- 2025-03-29 Java代码保护方法之四:JVMTI实现Java源码保护
- 2025-03-29 超详细的FreeRTOS移植全教程——基于stm32
- 2025-03-29 Java,事件驱动,Reactor设计模式,反应器设计模式
- 2025-03-29 谈谈Linux网络协议以及网络栈结构
- 2025-03-29 这个图片压缩神器,直接可以在前端用
- 2025-03-29 Svelte 不是 JavaScript(javascript is interpreted by _________)
- 2025-03-29 Hooks是什么?为啥Vue和React都选择了它?
- 2025-03-29 超级热键:一学就会简单编程,提升 Windows 效率
- 2025-03-29 如何控制Ansible Playbook的执行顺序、运行选定的剧本资源
- 最近发表
- 标签列表
-
- newcoder (56)
- 字符串的长度是指 (45)
- drawcontours()参数说明 (60)
- unsignedshortint (59)
- postman并发请求 (47)
- python列表删除 (50)
- 左程云什么水平 (56)
- 计算机网络的拓扑结构是指() (45)
- 稳压管的稳压区是工作在什么区 (45)
- 编程题 (64)
- postgresql默认端口 (66)
- 数据库的概念模型独立于 (48)
- 产生系统死锁的原因可能是由于 (51)
- 数据库中只存放视图的 (62)
- 在vi中退出不保存的命令是 (53)
- 哪个命令可以将普通用户转换成超级用户 (49)
- noscript标签的作用 (48)
- 联合利华网申 (49)
- swagger和postman (46)
- 结构化程序设计主要强调 (53)
- 172.1 (57)
- apipostwebsocket (47)
- 唯品会后台 (61)
- 简历助手 (56)
- offshow (61)