警告:

本文仅作为技术交流,切勿按照本文所述,自行制作出售王者外挂,后果如下图所示。

有人的地方就有江湖

王者荣耀的风靡自是不用说,但凡热门的网络游戏,必有外挂,如多少年前红遍大江南北的传奇。

还有就是如今如日中天的吃鸡游戏-绝地求生。

最常见的就是透视挂和自瞄挂。

说回王者,低端挂,智能人机对战,刷金币,刷经验,自动任务,一键连招等等。

高端挂呢,兰陵王披上挂,无限隐身,上帝视野。后羿鲁班,外挂加持,自带瞄准器,百发百中。

什么叫外挂,什么叫脚本

脚本就是模拟人手和人脑来控制手机的操作!原本需要你手动点击进行的操作,通过脚本来实现自动化。常见于刷金币刷任务等重复性较多的操作。

外挂更多是指篡改正常游戏数据和逻辑,实现作弊器的效果。如王者,或是其他FPS的游戏,因为注重时效性,所以很多数据不可能都走服务器运算,而在本地运算。通过修改游戏内存数据的修改器,或者修改网络数据包,来实现游戏作弊的效果。

外挂可分为两大类:辅助和破解版,这两类外挂的核心区别在于:是否需要依赖游戏客户端。辅助类外挂是需要结合游戏客户端运行的;而破解版则是可独立运行的非法客户端。

基础篇:按键精灵

低端的挂,可以视为模拟点击的按键精灵,是一个自动化的脚本。

简单版本是直接录制一段固定按键序列,然后循环模拟该按键序列。

后续发展成可识别图像触发特定按键。常见于刷金币刷任务等重复性较多的操作。

中级篇:数据修改器

内存修改器,用来搜索修改游戏内存数据。一类是注入一个通用功能模块到游戏进程中,根据本地socket接收操作(搜索修改),直接遍历内存等方式实现;另一类实现,是根据平台加载机制取巧实现,如Android平台下通过/proc/[pid]/maps可读写游戏内存镜像。玩家一般根据游戏面板中的精确数据,利用修改器搜索相应数值,再根据数值变化规律多次搜索排除定位到相应属性在内存中的位置,直接修改成夸张效果值。后期也有各种变种,比如模糊搜索,仅通过数据变大变小来搜索;加密搜索,带有反简单加密(异或加密等)功能搜索。

这类修改器外挂,常见外挂功能是改人物属性实现秒怪、无敌等。

抓包工具,用于拦截游戏的上下行数据包,可篡改、重发、丢弃。针对没有进行协议加密的游戏,这类外挂工具的危害较大。如果网络下发人物属性数据包是明文的时候,被玩家发现后玩家直接修改相应属性成较大值即实现了秒怪功能。

高级篇:定制化

定制化插件外挂:利用注入技术将功能模块注入到游戏进程空间中,并执行功能模块入口函数。在不同的移动设备上,有不同的注入手段。在Android下以SO形式,而在IOS下以dylib形式。比如盛行一时的叉叉和圈圈助手,则是定制化插件类外挂的典型。其内部集成了多款手游功能插件,针对不同手游注入不同SO或Dylib实现外挂功能,达到无敌、秒怪的效果。

外挂功能模块在被注入到游戏进程后,会执行HOOK操作实现外挂功能。外挂作者事先需要逆向分析游戏代码逻辑,找到一些游戏功能函数地址,比如说怪物扣血处理函数。然后在外挂功能模块中通过HOOK操作,挂钩相应函数,改写参数或者调用逻辑(多次回调,或者步调用)。 在底层汇编,HOOK操作可以理解为在特定代码地址,增加个跳转指令跳转到外挂作者自定义函数中。目前已经有封装优秀的三方库支持HOOK操作,外挂作者只需要调用相应接口函数,即可实现对指定函数进行HOOK操作,如substrate。可以很灵活修改游戏代码逻辑,通过多次回调怪物扣血函数实现秒怪、通过屏蔽玩家扣血函数实现无敌等。

定制化游戏破解版:对游戏客户端修修改改后实现的游戏破解版,或者修改逻辑代码或是替换数据资源。

逻辑代码:Android平台下逻辑代码的修改,根据游戏引擎不同,改的东西也有所区别。常见的cocos游戏,其逻辑代码保存在so,可通过IDA等工具读取修改ARM、THUMB汇编指令;Unity游戏(例如王者),其C#脚本代码则是保存在/assets/bin/Data/Managed/Assembly-CSharp.dll中,也可通过ildasm等工具转成IL代码进行修改操作。而在IOS平台下,代码都在app的bin文件中,和Android中的so类似,只需要了解THUMB即可。同样的,还有Lua等代码,根据游戏语言不同改的方式也不同。直接修改汇编指令,可改动空间较小,一般实现是修改跳转、参数赋值。比如死亡判断、通关判断、扣血函数参数修改等。IL、Lua等的修改,则相对较为简单。

数据资源的替换,这里的资源,包括除去代码外的一切游戏客户端资源,譬如图片资源、配置资源、音乐资源等。给自己的英雄换个皮肤啊。这个大部分就是自娱自乐为主。

究极版:人工智能+机器学习

此类通过机器学习的方式来模拟真人的操作。难度较大。而现在市面上的大多以噱头为主,编者截稿之日,还未见到一个很成熟的产品。

本篇幅仅作为移动游戏上的外挂知识的普及。如有玩家按照上述操作自行制作销售外挂,产生任何后果于作者无关。