手游封包注入源码-手游插件的分类及原理介绍

一、简介

近年来手游市场突然爆发,收入规模却迅速下滑。 据第三方统计,如图所示,2015年中国联通游戏市场规模已达514.6亿。 如此火爆的市场,必然会吸引大量图谋不轨的坏人。 插件在联通市场逐渐流行。

目前,在中国联通游戏市场,有很多需求催促着外挂的发展。 比如大金工作室想要更高效地刷游戏币; 大量渣男玩家想花少量的钱获得更多的快感; 竞品公司或恶意玩家想要恶意破坏游戏的正常运行。 此类外挂会影响游戏开发商的利润和游戏玩家的体验。 作为联通游戏从业者,必须开始了解金手指,重视金手指。 本文重点介绍插件的相关知识。

2.什么是插件

外挂,原指任何用来破坏正常游戏数据和游戏程序逻辑的工具或破解版。 比如可以改变游戏内存数据的修改器,或者可以改变网络数据包的抓包工具。 这类外挂或多或少都会影响游戏的显存数据、文件数据、网络数据,甚至代码逻辑。

然而,随着插件市场的发展,该插件还衍生出其他恶意变种。 此类作弊不会影响游戏数据和逻辑,例如离线作弊、模拟器和脚本精灵。 离线盗号是作弊游戏作者在逆转游戏合约后独立开发的非法客户端,可以为玩家节省大量时间手游封包注入源码,玩更多游戏; 模拟器可以让玩家在PC上玩联通游戏,在FPS等游戏中获得更好的体验。 操作环境帮助玩家变相碾压对手; 脚本向导可以记录和模拟玩家行为,应对游戏动荡,实现手动金币体验等功能。 然而,这些新兴的作弊类型有一个共同的特点:它们欺骗游戏服务器、客户端、设备和运营商。

结合前面的分析,我们可以给出一个更适合当前联通游戏安全状况的外挂定义:破坏游戏客户端正常数据和代码逻辑的工具或破解版本,或者伪造游戏运行状态的工具或破解版本。游戏客户端。

3.插件的分类

手游中已经存在大量的作弊样本,根据其特点,可以整理出如图所示的分类图。

手游封包注入源码-手游插件的分类及原理介绍

插件分类

插件可以分为两类:辅助版和破解版。 这两类插件的核心区别在于是否需要依赖游戏客户端。 辅助插件需要与游戏客户端配合运行; 破解版是非法客户端,可以独立运行。

3.1 辅助

辅助插件需要依赖游戏客户端,无法单独工作。 根据其作用范围,又可进一步分为专用插件和通用工具两大类。

3.1.1 专用插件

专用外挂类型的外挂,作用范围仅针对特定游戏,属于多元化外挂。 它的存在方式根据平台的不同而不同。 Android下使用SO方法,IOS下使用dylib方法。 比如Android上风靡一时的查查、圈圈助手,就是典型的专用插件。 它集成了多种Android手游功能插件,针对不同的手游注入不同的SO来实现插件功能。 888辅助也出现在类似的IOS上,为多款热门手游注入不同的Dylib,实现无敌即时打怪功能。 这种特殊的插件插件,插件功能比较灵活,一般可以随时关闭或开启。

圆修饰符

3.1.2 常用工具

顾名思义,通用工具是针对所有手游的,支持通用功能。

内存修改器,用于搜索和更改游戏显存数据。 在Android平台上比较主流,典型代表有烧麦、葫芦侠等,如下图所示。 玩家通常使用修改器根据游戏面板中的精确数据搜索对应的数值,然后根据数值变化规律多次搜索并排除显存中对应属性的位置,直接更改达到夸大的治疗价值。 后期还有各种变体,比如模糊搜索,只通过改变数据的大小来搜索; 加密搜索,具有反简单加密(异或加密等)功能。 这类修改器插件,常见的插件功能是改变角色的属性,实现瞬间打怪、无敌等。

手游封包注入源码-手游插件的分类及原理介绍

饼干改良剂

变速装置加快游戏节奏,节省玩家时间; 或者降低游戏节奏,降低操作难度。 影响游戏帧的更新频率,可以实现加快关卡、减速隐藏技能等外挂功能。 有叉式变速器、饼干式变速器等典型代表,如晚间所示。 常见的作弊功能都在游戏中,利用传送加速功能,主角和怪物AI的攻击节奏推进,可以快速结束战斗。

叉式变速器

按钮向导,模拟用户的键盘。 游戏交易的简单版本是直接记录固定的按键序列,然后循环模拟该按键序列。 随后发展成可识别的图像会触发特定的按钮。 这类插件通常包括触摸精灵、按钮精灵等,常见于手游中,滑动部分等重复操作较多。 例如,在客机游戏中,您可以使用按钮精灵随机连接客机刷副本来积累金币经验。

快速宏

模拟器可以让玩家在电脑上运行手机游戏。 这类工具运行在PC端,主流的有海马玩、天天、TGP等。由于PC的键鼠手感比较好,所以这类外挂工具对于FPS或者格斗手游来说非常imba。 在FPS上,你可以快速滑动视角瞄准、拔枪,在格斗手游上,你可以四处移动并释放连击。

三峡工程模拟器

抓包工具用于截获游戏的上下行数据包,可以进行篡改、重发、丢弃等操作。 比如XXX。 对于没有合约加密的游戏来说,这样的外挂工具危害更大。 例如,在格斗游戏中,存在角色属性数据包以明文形式发送的现象。 被玩家发现后,玩家直接将相应的属性改为更大的值,以实现即时打怪功能。 该工具主要利用游戏合约中的漏洞。 一方面,合约内容是否加密; 另一方面,合约设计是否存在逻辑漏洞(重发、丢弃数据包时是否会有插件功能)。

WPE 网络数据包编辑器

3.2破解版

破解版插件本质上是非法客户端。 常见的可以分为两类:离线挂版和小修改破解版。

离线黑客是金手指作者基于对游戏合约的分析而开发的游戏客户端。 一般情况下,这类客户端可以用来开启更多直接刷副本等功能,带来的好处是巨大的。 工作室对此类插件的需求较大。

这里将损坏的破解版定义为损坏是因为该破解版是在正版客户端的基础上修改实现的。 与辅助插件相比,其功能不够灵活。 一般一类破解版都有一类外挂功能,是永久启用的,在游戏过程中无法关闭。

4.插件实现原理介绍

不同类型的插件的实现原理有较大差异。 这里按照上述各个插件的类别来介绍一下大致的实现原理。

4.1 辅助

辅助插件是根据游戏客户端动态改变游戏数据类型的插件。

手游封包注入源码-手游插件的分类及原理介绍

4.1.1 专用插件

专用外挂是多样化的外挂,每个外挂仅适用于一款游戏。 顾名思义,此类插件的实现是一种插件方式:利用注入技术将功能模块注入到游戏进程空间中,并执行功能模块入口函数。 在不同的联通设备上,有不同的注入方式。 Android平台上的Zygote注入和直接ptrace注入技术; 使用 Cydia 框架在 IOS 上进行 dylib 注入。

外挂功能模块注入游戏进程后,会执行HOOK操作,实现外挂功能。 插件作者需要提前逆向分析游戏代码逻辑,找到一些游戏函数地址,比如怪物扣除处理函数。 然后通过插件功能模块中的HOOK操作钩住相应的函数手游封包注入源码,重写参数或者调用逻辑(多次反弹,或者单步调用)。

在底层汇编中,HOOK操作可以理解为添加跳转指令,跳转到插件作者自定义函数的特定代码地址处。 目前已经有封装良好的第三方库支持HOOK操作。 插件作者只需调用相应的接口函数即可实现对指定功能(例如substrate)的HOOK操作。

因此,专用助手可以灵活改变游戏代码的逻辑,通过多次反弹怪物的扣血功能来实现即时怪物,通过屏蔽玩家的扣血功能来实现无敌等等。

4.1.2 常用工具

此类外挂工具与平台或游戏引擎相关,与具体游戏无关。 它实现了一种跨游戏的插件功能。

内存修改器的本质是实现指定进程的显存数据的读写。 其实现技术主要体现在如何读写游戏显存数据。 可以分为两类实现方式,一种是类似特殊插件的实现,在游戏进程中注入一个通用的功能模块,根据本地socket接收操作(查找和更改),直接遍历视频记忆和其他方法; 另一个是基于平台加载机制巧妙地实现的。 例如,Android平台上可以通过/proc/[pid]/maps来读写游戏内存镜像。

齿轮箱,影响游戏时间指标。 通常游戏需要以帧为单位播放画面。 在播放图片的过程中,预估播放每一帧动画所需的时间(也可以理解为两次屏幕切换的间隔时间)。 游戏需要调用C库函数来获取估计每一帧的系统时间。 更新。 目前内网主流的游戏加速器针对不同的引擎都改变了不同的Libc.so相关函数,例如gettimeofday、clock_getime等。 修改方法就是上面提到的HOOK实现。 对于这个lic的导入功能,还可以有导出表HOOK等形式。

按钮向导调用系统API,发送特定的操作序列,模拟用户的键盘。 此类插件功能的实现与系统相关性较高,因为其实现是通过相应的系统API发送操作风暴来模拟全局键盘。 在Android上,可以通过Instrumentation套接字的sendPointerSync函数来实现; 还可以通过ROOT权限驱动级别调用Runtime.getRuntime().exec()执行sendevent等命令。

模拟器可以让玩家在电脑上运行手机游戏。 PC上的模拟器目前主要是Android模拟器,其具体产品有TGP、海马湾、天天等模拟器。 其核心实现仍然是基于VirtualBox来模拟Android系统,可以直接模拟x86架构的Android系统。

手游封包注入源码-手游插件的分类及原理介绍

抓包工具本质上是一个网络数据包编辑器。 一类实现方法是基于硬件的,例如将网卡置于混沌模式来拦截数据包; 另一种是通过HOOK拦截send和recv函数来获取网络数据包。

4.2破解版

破解版是提前静态修改过的独立游戏客户端。

前面提到的离线挂机在电脑游戏中非常流行。 插件作者前期逆向分析游戏的网络合约后,可以自行编译独立的三方客户端。 此类外挂技术难度较大,主要体现在对游戏合约的逆向分析上。

另一种是修改游戏客户端后实现的破解版游戏。 根据变化的客户端数据可以分为:逻辑代码和数据资源。

逻辑代码:Android平台下逻辑代码的变化根据游戏引擎的不同而不同。 对于常见的cocos游戏,其逻辑代码存储在so中,ARM和THUMB汇编指令可以通过IDA等工具读取和更改; 对于Unity游戏,其C#脚本代码存储在/assets/bin/Data/Managed/Assembly-CSharp中。 在dll中,还可以通过ildasm等工具转换为IL代码进行修改。 在IOS平台上,代码在app的bin文件中,与Android中的so类似,只需要了解THUMB即可。 同样的还有Lua等代码,根据游戏语言修改的方法也不同。 直接更改汇编指令,更改空间较小,一般实现方式是更改跳转和参数参数。 比如死亡判断、通关判断、扣血函数参数改变等。IL、Lua等的改变比较简单。

数据资源:这里的资源包括除代码之外的所有游戏客户端资源,比如图片资源、配置资源、音乐资源等。有些破解版是纯粹美化破解版,没有任何盈利,比如更换背景美眉图片等广告。 但更多的是通过改变资源文件来改变游戏逻辑。 这种实现方式需要更多的反向积累,对哪些资源比较敏感可能会导致外挂功能。 找到之后,如何改变也是一个技术难点。 有些游戏安全性不够,资源文件以明文形式存储,很容易被坏人更改; 但许多资源或多或少都会被加密。 这里介绍一下替换破解版资源常用的两种实现方法:无脑替换和分析调试。

无脑替换,无论发生什么情况,都尝试删除资源文件或者替换为空的,甚至重命名同类型的资源文件来覆盖。 以这种方式实现的作弊数量与修改器的数量相当。 一方面,游戏的安全性不足; 另一方面,这种作弊的实现相对简单。 例如,在客机游戏中,删除炮弹资源可以实现机枪无炮弹的效果; 再比如,在酷跑游戏中,将一个XXX_1配置文件覆盖到其他具有相同前缀的配置文件(XXX_2、XXX_3……),就可以实现关卡难度的增加等等。

分析调试,这种实现的效果和替换方法是一样的,但是前期通过静态分析或者动态调试分析来确认资源的功能和加密方式。

由于在手机游戏中,逻辑相关的数据总是存储在客户端资源中,因此这种方法已经被尝试和测试过。

本文普及联通游戏作弊知识,旨在让相关行业从业者认识到联通游戏的安全问题,并以此为出发点,深入思考推动行业技术发展。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悟空资源网 手游资源 手游封包注入源码-手游插件的分类及原理介绍 https://www.wkzy.net/game/163864.html

常见问题

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务