1、 前言算法
随着移动互联网的兴起,移动游戏市场近几年忽然爆发,收入规模快速增加。 根据第三方数据统计,国内移动游戏2015年市场规模已达514.6亿。
因为手游市场强势兴起,并且后续增加势头会越发猛烈。火热的市场后面隐藏的问题也愈来愈多,其中手游外挂就是一个例子。目前移动游戏市场上,有多方需求在催促外挂的发展,大量屌丝玩家,想花少许的钱获得更大快感;竞品公司或者恶意玩家,想恶意破坏游戏正常活动运营。这类外挂会影响到游戏开发商的收益及众多正常游戏玩家的体验,所以必然须要一种反外挂的手段,来保证游戏开发商的合法利益。然而一些有实力的公司投入了很多资源来反外挂,虽然也卓有成效,但也大大增长了成本;一些实力相对弱小的公司则没有能力反外挂,这些公司的游戏很容易被外挂市场搞垮。就是在这种状况下,御安全加固平台推出了一种方便,高效以及成本低的基于APK加固的反外挂方法,来保护好手游免受外挂软件的侵扰。安全
2、 外挂种类及原理
移动游戏上已经出现过大量外挂样本,根据其特征能够分为如下几种:
①内存修改
搜索修改游戏内存数据,利用修改器搜索相应数值,再根据数值变化规律屡次搜索排除定位到相应属性在内存中的位置,直接修改为夸张效果值。在Android平台上较为主流,有烧饼、葫芦侠等典型表明.
②时间修改
加快游戏节奏,节省玩家时间;或者减慢游戏节奏,减低操做难度。其影响游戏帧更新频率,可实现加速过关、减速躲技能等外挂功能.
③资源修改
修改安装包中关键数据配置,修改替换游戏安装后的资源文件,破解或修改安装包资源(例如图片/音乐),重用游戏资源或制做广告版本.
④代码修改
能够经过修改客户端代码从新打包发布外挂版本,达到增长收益、去除限制、下降游戏难度的目的。修改代码库文件,直接替换安装后程序的库文件,能够经过hook方式动态修改内存中的执行代码.
⑤模拟器操做
让玩家可在PC上运行手游。PC上的模拟器,目前主要流行的是Android模拟器,其具体产品有TGP、海马玩、每天等模拟器.
⑥协议修改
用户修改上传数据,达到上报虚假数据做弊目的用户重复上传获取收益的消息,达到获取额外收益的目的用户上传不符合条件的消息,达到跳过客户端限制目的用户修改协议达到上传攻击信息的目的.服务器
3、 反外挂系统
现有的反外挂系统主要分为终端侧反外挂系统以及服务器侧反外挂系统。网络
服务器端防外挂系统性能
①游戏时间相关校验。客户端计时不可信,须要在服务器校验客户端上传的时间参数是否合理,校验游戏过程数据和时间之间的关系是否合理(例如里程、时间、速度关系)
②游戏核心逻辑校验。每次操做均经过协议上传,服务器承认后再实际执行操做,每次操做服务器均要进行合理性判断,且判断结果实时反馈。
③玩家间数据相互校验。各玩家的操做通过服务器中转对其它玩家同步,若是核心逻辑在每一个客户端单独计算,各玩家需定时上传各自游戏局势数据,服务器进行对比校验,若是核心逻辑在部分客户端计算,其余玩家需从该客户端同步局势数据,服务器须要校验主逻辑数据是否合理。
④游戏操做时序相关校验。部分操做有明确的时序要求,打乱时序可能致使额外收益。服务器端经过对客户端发送的操做时序进行校验,来判断客户端发送的请求时序是否合理。加密
服务器端防外挂的缺点:
(1)容易致使误杀
目前不少游戏的反外挂系统采用范围性的数值验证,因为自己的设计缘由或者弱网络的缘由,不少时候会形成误杀。
(2) 服务器端的设计很是复杂
因为服务器端的数据及流程校验和游戏的代码逻辑息息相关,因此服务器端防外挂的数据以及代码逻辑须要根据客户端的代码逻辑及数据进行设计和开发,这样会致使服务器端防外挂设计和客户端的代码逻辑进行紧耦合。客户端只要进行代码逻辑的修改,也有可能致使服务器端的防外挂系统进行修改。
(3)服务器端防外挂功能没法通用
每一款游戏都有本身的代码逻辑以及各类数据,因此服务器端的防外挂功能没法作到统一标准,对每一款游戏都使用。每每是只能针对特定的游戏进行定制化开发防外挂功能。
(4) 服务器端外挂系统维护成本高
综上所述,因为服务端外挂系统的复杂性以及定制化的多样性,必然致使开发成本以及维护成本不断增高。另外须要在服务器端进行各类逻辑和数据的校验,随着游戏的增多,系统设备的扩容以及系统的计算资源消耗也会愈来愈大,必然致使硬件成本及数据流量成本的增长。设计
客户端防外挂系统调试
针对服务器端防外挂系统的不足,御安全加固系统开发出了一种基于客户端加固的防外挂系统,它是一种基于APK加固和防外挂系统相结合的一种防外挂方案。
御安全APK加固技术主要功能:
①DEX文件保护。
采用分片式按需加载技术,攻击者没法在内存中获取完整的DEX文件,再加上DEX内存分散功能,攻击者没法从一片连续的内存中Dump出DEX文件,大大加大了攻击者获取DEX的难度
②SO文件保护。
御安全加固保护逻辑,经过源码级的混淆,采起多种混淆方式,攻击者没法逆向其代码逻辑,另外,基于动态加载的SO加壳技术,也使得攻击者没法逆向保护逻辑以及原APK中SO的代码逻辑。
③资源文件保护。
御安全加固系统,能够针对APK的Assets,Raw及Res目录下的全部文件进行加密保护并进行完整性校验,通过御安全加固系统加固后的APK,资源没法被篡改,例如没法增长广告界面,也没法盗版APK里面的资源。能够很好地保护开发者的知识产权。
④内存保护。
防止经过动态调试的方式对APK进行调试,加固APK在被调试,或者其内存被篡改后,加固APK将自动退出。也能够防止经过进程调试的方式对加固APK进行进程调试,加固APK被进程调试的时候,加固APK也将自动退出。通过御安全加固系统加固后的APK,能够防止市面上全部主流的外挂软件对加固APK进行内存修改,如烧饼修改器,八门神器,叉叉修改器等上十种主流外挂软件。
⑤防止内存dump。
APK在运行时候,会在内存中释放所有或者部分源码,攻击者能够在运行时刻利用dump命令把这些源码导出。御安全加固后的APK,能够有效防止攻击者从内存中复制源代码。
⑥防游戏加速。
攻击者或者游戏玩家,经过市面上的外挂软件,能够加快游戏速度,破坏游戏平衡,用于加快战斗速度或者等待时间等场景。御安全加固后的APK,一旦发现玩家或者攻击者有加速或者减速游戏的行为,APK将自动终止运行。
御安全的总体APK保护方案以及对协议关键代码的保护,能够防止攻击者逆向协议的流程或者算法,避免攻击者对协议进行攻击,防止外挂软件经过破解协议的方式,攻击加固后的游戏。 code
4、 云-端结合防外挂攻击
相对于服务器端的防外挂软件系统,终端侧的防外挂方法也有其弱点,由于攻击者可以获得终端侧防外挂功能的逻辑实体,尽管咱们对其作了严密的保护,可是也不免可能被攻击者绕过防外挂功能。所以若是御安全加固系统能和服务器端防外挂系统的有效结合,就能够很好地阻止外挂软件对加固游戏的攻击,从而减小游戏开发商的损失。另外御安全加固APK,采起一键式的保护方式,能够方便,快捷地为游戏开发商提供保护服务器。加固后的APK,兼容性接近100%,加固后的APK运行Crash率控制在0.02%之内。启动速度以及其它性能影响,对用户无任何感知。游戏