纵横三国外挂手记(2) 架构篇

本文探讨了游戏外挂的基本架构和技术实现,包括GUI界面设计、进程间通信、API Hook等关键技术。通过内存映射文件进行进程间通信,并详细介绍了外挂如何接管游戏的Socket API调用。

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

本文来自http://blog.youkuaiyun.com/lijun84 ,引用必须注明出处!

本文仅供个人学习研究之用,不得用于任何商业及非法目的,基于此产生的法律责任本人不承担连带责任之类的。


外挂架构篇:


那么实现外挂需要用到什么样的技术呢?我这里大致罗列了一下:

1, GUI 实现(包括 ButtontextBox 等)

2, 进程外部线程注入(现在很多游戏封了,如果以后写防外挂技术时将深入讨论)

3, 键盘鼠标消息控制 (其实如果是基于报文的挂不太需要用到)

4, 文件内存映射 (其实不限定用它,只要有个进程间通信的方式即可)

5, Hook API ( 当然主要包括 Socket API )

6, IO 操作,多线程和 socket 以及进程控制相关技术


补充: 有些游戏需要用到Crack技术。脱壳,解密。

在讨论这款外挂的实现前,我将先介绍下它的整体架构。


从架构图上可以看到主要分成两大部分:

外挂主界面部分:

WG GUI.exe 是外挂程序的主界面,负责显示当前角色的信息和设定一些挂机的数值(如血量低于多少补血等)。在这个 EXE 主程序中有个 SockHooker 模块,它的作用主要是将 HSock.dll 注入到游戏进程里并创建线程和运行环境。

外挂主逻辑部分:

HSock.dll 被注入游戏进程中后,它会成功覆盖进程的 Sock API 导入表函数指针和返回地址并且正式接管 Sock 的所有 API 函数。不过真正外挂的逻辑是实现在 SockHookFun.dll 中, HSock.dll 一切准备就绪后会加载 SockHookFun.dll ,之后游戏中任何的 SockAPI 调用都会经过 HSock 再回调 SockHookFun 相应的处理函数(如 connectsend 等)。

这两部分的进程间通信是通过内存映射文件实现的( OpenFileMappingMapViewOfFile 两个 API . ),它们需要交换哪些信息呢?

1, 主界面部分需要显示血量,坐标,角色名等信息。

2, 外挂主逻辑部分需要知道是否开始和停止以及多少百分比的血量开始补血等设定信息。


后篇将详细介绍实现部分,同时也会展示一些关键的代码和界面及开发工具。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值