文档介绍:简单游戏外挂的制作教程
演讲人:周欣
目录
一、游戏外挂的基础知识
游戏外挂的分类
游戏外挂的原理
二、开发游戏外挂的准备工作
常用的系统API
图像处理
文字识别
三、让你的游戏外挂跑起来
界面设计
任务脚本
快捷键
一、游戏外挂的基础知识
游戏外挂的分类
游戏外挂,也叫游戏辅助工具,主要用来协助玩家完成各种游戏操作,有些外挂还可以通过篡改游戏网络数据包或游戏内存数据达到“不可告人”的目的。从外挂的实现方式上分为以下两类:
动作模拟外挂
通过模拟键盘和鼠标的事件,来操控游戏角色的操作。如:自动练级、自动补给,自动做任务等。
拦截封包外挂
通过拦截游戏数据包,对相似的操作比对分析,进而篡改数据包并发送给游戏服务器,以获得暴利或快速升级。如:原地遇敌,加速,复制物品等。
a)网络游戏的运作原理
b)游戏客户端包含什么
c)游戏外挂的能力范围
一、游戏外挂的基础知识
游戏外挂的原理
外挂运行过程中,首先要获取游戏数据,对游戏场景进行分析(不同类型的外挂分析的内容也不相同),并根据分析的结果,按照设定的逻辑触发相应的游戏操作。模拟玩家操作游戏,实现对游戏数据的控制或修改。
获取游戏数据
外挂首先要使用合适的方式获取游戏数据。如通过访问游戏进程的内存地址,或截取游戏界面,利用图像识别技术获取数据。
分析游戏数据
拿到关键数据后,分析并做出判断,是否需要触发相关操作。如自动补给。
模拟玩家操作
通过模拟鼠标键盘事件,或发送相应的游戏数据包模拟玩家操作。如需要补给时,模拟鼠标使用药品补给,或发送使用药品的数据包给游戏服务器。
二、开发游戏外挂的准备工作
常用的系统API
挂机过程中需要查找,切换或置顶游戏窗口,这些都离不开系统API。C#只需要静态声明这些API,并添加“DllImport”特性标识即可由其它代码调用。
窗体操作API
置顶窗口,查找窗口句柄,获取或改变窗口大小和位置,更改窗口标题,设定窗口透明度等。
输入输出API
发送键盘按下或弹起指令,发送文本,发送鼠标键点击,双击,设定鼠标当前位置,获取屏幕图像等。
内存操作API
获取进程信息,打开进程,读取内存地址的值,设置“钩子”等。
二、开发游戏外挂的准备工作
图像处理
游戏截图通常包含场景,人物和文字信息,五彩缤纷难以识别。这就需要对游戏原图进行灰化降噪,分块,对比等操作。
游戏截图文件扩展名通常为bmp,bmp图像是由RGB三原色的256级亮度组合而成,约1678万种色彩的图像,也称为24位真色彩图像。
灰度处理
把彩色图像处理为黑白图像的过程,为文字识别做准备。根据像素点的RGB颜色亮度与设定的灰度参考值对比,超过参考值的为黑色,否则为白色。
图像切割
通过切割图像区域,把文字和场景人物分开,或把一段文字切割成多行。
图像对比
通过对比两张图的像素点的个数,位置,颜色信息,得出两张图像是否相同或相似。分为精确对比和模糊对比等。
二、开发游戏外挂的准备工作
文字识别
把一段文字图像转换为文字信息的过程。一般把文字归为三类:数字字母,汉字,标点符号。
为什么要用文字识别
相对于通过访问游戏进程的内存地址获取数据,文字识别的缺点是必须置顶游戏窗口,对输入输出设备的占用率高;而读内存地址的缺点是每次游戏更新后,基址都会发生变化,外挂要跟随游戏的更新而更新,后期维护量大。
怎么把图像识别为文字
预先把常用文字按字体生成图片,分析像素点个数和长宽及特征后形成字库缓存起来。当需要识别图像文字时,比较像素个数和长宽及特征。当候选字为多个时对图像进行模糊对比,精确对比,进而得出识别结果。
当所有文字识别完成,按顺序组成文字信息作为数据分析的原始内容。
如何识别链接并定位
当检测到有连续线段时,记录起始和终止位置。待该行图像识别完毕后,标注为链接,计算链接的中间位置作为点击位置。
三、让你的游戏外挂跑起来
界面设计
外挂是辅助游戏的工具,游戏窗口占用了大部分屏幕,甚至经常会同时打开多个游戏窗口,这就使得外挂的窗口不能太大,界面尽量做到简洁易用。
显示区/监测区
显示游戏相关的关键指标数据,也可以用来监测外挂的运行状态等。如:游戏人物的HP,MP信息,当前任务信息。
操作区
不同类型的外挂,操作也不同。一般有:设置外挂参数,设定任务类型,挂机类型,控制外挂的启动,停止,游戏截屏,游戏自动叫卖。
未启动游戏时启动游戏后(队长) 游戏多开效果