摘要:兴起的手游市场背后隐藏着严峻外挂问题,这已经影响到游戏开发商的收益及众多正常游戏玩家的体验,因此必然需要一种反外挂的手段,来保证游戏开发商的合法利益。御安全加固平台已研究推出了一种方便、高效以及成本低的基于APK加固的反外挂方法,来保护好手游免受外挂软件的侵扰。

一、 前言

随着移动互联网的兴起,移动游戏市场近几年突然爆发,收入规模快速增长。根据第三方数据统计,国内移动游戏2015年市场规模已达514.6亿。由于手游市场强势兴起,而且后续增长势头会愈加猛烈。火热的市场后面隐藏的问题也越来越多,其中手游外挂就是一个例子。目前移动游戏市场上,有多方需求在催促外挂的发展,大量屌丝玩家,想花少量的钱得到更大快感;竞品公司或者恶意玩家,想恶意破坏游戏正常活动运营。这类外挂会影响到游戏开发商的收益及众多正常游戏玩家的体验,因此必然需要一种反外挂的手段,来保证游戏开发商的合法利益。然而一些有实力的公司投入了不少资源来反外挂,虽然也卓有成效,但也大大增加了成本;一些实力相对弱小的公司则没有能力反外挂,这些公司的游戏很容易被外挂市场搞垮。就是在这种情况下,御安全加固平台推出了一种方便,高效以及成本低的基于APK加固的反外挂方法,来保护好手游免受外挂软件的侵扰。

二、 外挂种类及原理

移动游戏上已经出现过大量外挂样本,根据其特征可以分为以下几种:

①内存修改。

搜索修改游戏内存数据,利用修改器搜索相应数值,再根据数值变化规律多次搜索排除定位到相应属性在内存中的位置,直接修改成夸张效果值。在Android平台上较为主流,有烧饼、葫芦侠等典型代表.

②时间修改

加快游戏节奏,节省玩家时间;或者减慢游戏节奏,减低操作难度。其影响游戏帧更新频率,可实现加速过关、减速躲技能等外挂功能.

③资源修改

修改安装包中关键数据配置,修改替换游戏安装后的资源文件,破解或修改安装包资源(例如图片/音乐),重用游戏资源或制作广告版本.

④代码修改

可以通过修改客户端代码重新打包发布外挂版本,达到增加收益、去除限制、降低游戏难度的目的。修改代码库文件,直接替换安装后程序的库文件,可以通过hook方式动态修改内存中的执行代码.

⑤模拟器操作

让玩家可在PC上运行手游。PC上的模拟器,目前主要流行的是Android模拟器,其具体产品有TGP、海马玩、天天等模拟器.

⑥协议修改

用户修改上传数据,达到上报虚假数据作弊目的用户重复上传获取收益的消息,达到获取额外收益的目的用户上传不符合条件的消息,达到跳过客户端限制目的用户修改协议达到上传攻击信息的目的.

三、 反外挂系统

现有的反外挂系统主要分为终端侧反外挂系统以及服务器侧反外挂系统。

1)服务器端防外挂系统

①游戏时间相关校验。客户端计时不可信,需要在服务器校验客户端上传的时间参数是否合理,校验游戏过程数据和时间之间的关系是否合理(例如里程、时间、速度关系)

②游戏核心逻辑校验。每次操作均通过协议上传,服务器认可后再实际执行操作,每次操作服务器均要进行合理性判断,且判断结果实时反馈。

③玩家间数据相互校验。各玩家的操作经过服务器中转对其它玩家同步,如果核心逻辑在每个客户端单独计算,各玩家需定时上传各自游戏局势数据,服务器进行对比校验,如果核心逻辑在部分客户端计算,其他玩家需从该客户端同步局势数据,服务器需要校验主逻辑数据是否合理。

④游戏操作时序相关校验。部分操作有明确的时序要求,打乱时序可能导致额外收益。服务器端通过对客户端发送的操作时序进行校验,来判断客户端发送的请求时序是否合理。

服务器端防外挂的缺点:

(1)容易导致误杀

目前很多游戏的反外挂系统采用范围性的数值验证,由于本身的设计原因或者弱网络的原因,很多时候会造成误杀。

(2) 服务器端的设计非常复杂

由于服务器端的数据及流程校验和游戏的代码逻辑息息相关,所以服务器端防外挂的数据以及代码逻辑需要根据客户端的代码逻辑及数据进行设计和开发,这样会导致服务器端防外挂设计和客户端的代码逻辑进行紧耦合。客户端只要进行代码逻辑的修改,也有可能导致服务器端的防外挂系统进行修改。

(3)服务器端防外挂功能无法通用

每一款游戏都有自己的代码逻辑以及各种数据,所以服务器端的防外挂功能无法做到统一标准,对每一款游戏都使用。往往是只能针对特定的游戏进行定制化开发防外挂功能。

(4) 服务器端外挂系统维护成本高

综上所述,由于服务端外挂系统的复杂性以及定制化的多样性,必然导致开发成本以及维护成本不断增高。另外需要在服务器端进行各种逻辑和数据的校验,随着游戏的增多,系统设备的扩容以及系统的计算资源消耗也会越来越大,必然导致硬件成本及数据流量成本的增加。

2) 客户端防外挂系统

针对服务器端防外挂系统的不足,御安全加固系统开发出了一种基于客户端加固的防外挂系统,它是一种基于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保护方案以及对协议关键代码的保护,可以防止攻击者逆向协议的流程或者算法,避免攻击者对协议进行攻击,防止外挂软件通过破解协议的方式,攻击加固后的游戏。

四、 云-端结合防外挂攻击

相对于服务器端的防外挂软件系统,终端侧的防外挂方法也有其弱点,因为攻击者能够得到终端侧防外挂功能的逻辑实体,尽管我们对其做了严密的保护,但是也难免可能被攻击者绕过防外挂功能。因此如果御安全加固系统能和服务器端防外挂系统的有效结合,就可以很好地阻止外挂软件对加固游戏的攻击,从而减少游戏开发商的损失。另外御安全加固APK,采取一键式的保护方式,可以方便,快捷地为游戏开发商提供保护服务器。加固后的APK,兼容性接近100%,加固后的APK运行Crash率控制在0.02%以内。启动速度以及其它性能影响,对用户无任何感知。

腾讯御安全团队

基于御安全APK加固的游戏反外挂方案相关推荐

  1. iOS游戏反外挂方案解析

    自2007年iPhone OS发布以来,iOS系统已经发展了近17年,凭借着独家的系统环境.安全性更高的闭源生态等优势.iOS从一众手机系统中脱颖而出,与安卓稳坐手机系统市场两把头部交椅. 不同于安卓 ...

  2. 基于云查杀的PC游戏反外挂

    外挂是游戏公司的克星.针对于不同的游戏,反外挂的策略也是不同的.比如是一款老游戏需要接入反外挂系统的话,驱动技术就不好了,原因很简单,这个时候的老游戏的汇编代码早已被市场上的外挂作者获取到了,各个功能 ...

  3. 游戏反外挂技术原理讲解

    永远在路上 没有破解不了的反外挂系统,反外挂是一个对抗过程,需要不断升级.我们反外挂小组会采取对抗方式提升防御,也会研究竞品来获取灵感.反外挂也是非常有意思的,可以学到很多很多底层知识. 善战者无赫赫 ...

  4. 游戏反外挂技术首次公开

    万字长文!inlinehook看这一篇足够了! 远程线程+hook=监控? 硬件断点 硬件断点hook 实战!谁动了我的代码! 前面的文章,我们介绍了inline hook.硬件断点hook.远程线程 ...

  5. 福禄科技罗宇翔:OpenResty 游戏反外挂应用

    2019 年 5 月 11 日,OpenResty 社区联合又拍云,举办 OpenResty × Open Talk 全国巡回沙龙武汉站,福禄科技服务端研发工程师罗宇翔在活动上做了< OpenR ...

  6. 游戏外挂原理基础18反外挂方案

    所谓知己知彼方能百战不殆,要想减少或避免外挂对游戏的侵害,必须从根本上知晓外挂的原理,及其常用的技术手段,从而在技术手段上对其进行封堵. 一.外挂的分类 外挂一般的分为2类,脱机式 和 内挂式. 脱机 ...

  7. FairGuard anti-cheat 反外挂方案解析

    关于 FairGuard FairGuard游戏加固,游戏安全行业领先的第三方服务商,致力于帮助游戏公司解决外挂和破解问题,为游戏提供深度一体化的加密保护方案. 开发团队深耕技术,研发了无导入函数SO ...

  8. [ZZ]变速齿轮作者的文章--绝杀反外挂方案

    自从网络游戏诞生以来外挂就一直是网络游戏厂商头痛的问题.由于网络游戏服务器端的负荷很重,不能进行太多计算,只能把大量检测外挂的工作放在网络游 戏的客户端进行.但是外挂也总是可以进行针对性的修改,使这些 ...

  9. Android之Apk加固

    上一篇:Android之Apk打包原理之后,今天记录一下多渠道打包. 首先,说明一下Apk加固的意义: 懂点反编译原理的人可以轻松编译出apk的源码资源,并且可以修改资源代码.重新打包编译. apk加 ...

最新文章

  1. 爬虫之requests模块cookieJar对象转换为cookies字典的方法
  2. 聊一下JVM是如何进行垃圾回收的算法
  3. R语言使用scales包的hue_pal函数获取ggplot2任何级别的离散色码、使用scales包的hue_pal函数获取ggplot2任何级别的反序(reverse)离散色码
  4. 送你一份 Kubernetes 实用命令速查表
  5. 兔子--eclipse设置编码格式
  6. MIT造了个“小盒子”,可以无线监测新冠患者症状,斯隆奖获得者班底打造
  7. 如何判断服务器之间的服务是否可用?ping 还是 telnet?
  8. 【VC++】Visual Studio编辑器“智能提示(IntelliSense)”异常的解决方案
  9. 电脑休眠和睡眠的区别_关机、睡眠、休眠有啥区别?微软说非特殊情况不要关机...
  10. 关于HTML、js加密、混淆、源码保护、代码安全,防止解压直接看源码
  11. WinForm与脚本的交互
  12. 2020后半年iPhone取消附赠耳机?分析师上调AirPods出货量预估
  13. 条件编译宏定义_C语言学习- 预处理指令2 - 条件编译
  14. HDOJ---1232 畅通工程[并查集]
  15. flash cs4 如何新增自定义控件
  16. 林軒田《机器学习基石》课程总结
  17. 基于端口号的虚拟主机
  18. UTM大地坐标系与经纬度转换算法C++
  19. 关于Base32和Base64的一点区分注意
  20. 怎么改自己手机的ip地址

热门文章

  1. Word:论文排版专题——多级列表与插入题注
  2. 计算机系统应用是不是核心期刊,计算机系统应用
  3. 国民阅读经典:谈修养读后感
  4. Nginx访问限制配置
  5. 计算复杂性第九章——难解性
  6. vmware启动报错Entering emergency mode
  7. hadoop与spark环境搭建命令简易教程(Ubuntu18.04)
  8. [python] ​python-pinyin库
  9. WWDC2019:离开手机,苹果靠什么“挽尊”
  10. 将A1B2C3D4E5F6G7H8拆分开来,并分别存入int[]和String[]数组,得到的结果为[1,2,3,4,5,6,7,8]和[A,B,C,D,E,F,G,H],