自2016年以来,手游行业迎来全面爆发。大量资本、创业者的入局,让整个手游市场越发热闹,手游红利的挖掘也越发深入,各种游戏层出不穷。但是随之而来的各种安全问题也越来越多,不仅对手游的使用体验和口碑产生了恶劣的影响,甚至还会导致生死存亡的窘境。

那么,究竟如何才能构建一体化的手游安全防护?如何才能实现手游市场的良性发展?

时下的Unity手游面临着复杂安全风险

手游通常会面临着游戏修改器、游戏加速器、模拟按键挂、游戏破解版等外挂工具风险。

游戏修改器:使用修改器能够将游戏伤害倍率从18%提升到999.9%,使得攻击伤害增强了几十倍。而且类似的原理还可以实现无敌、秒杀、无限蓝、技能无CD等效果,因此修改器对游戏平衡的危害相当大。常用修改器包括烧饼修改器、八门神器、GameGuardian(GG修改器及其各种修改版)。其中GG修改器流行于即时对战类游戏,比如热门的吃鸡游戏。

  • 游戏加速器:加速器除了可以加速,还可以减速。使用烧饼加速器的效果,背景速度会随加速倍数加大而提高。它分为2种类型,一是手机加速器,比如烧饼加速器、GG加速器;二是模拟器加速器,比如我们熟知的天天加速器。

  • 模拟按键挂:虽然只是模拟点击,但却可以做到自动游戏,可以刷各种金币、积分,对游戏平衡也会有比较大的影响。常见的模拟按键挂包括触动精灵、触摸精灵、按键精灵、叉叉助手、游戏蜂窝等。

  • 游戏破解版:破解版提供了很多变态功能来吸引玩家,比如通过专门破解游戏售卖来进行盈利,月付150元就能超过很多游戏的ARPU值了。这样破解版的存在会严重影响普通玩家体验,给游戏收入和口碑都造成很大损失。

除了这些外挂工具风险外,手游安全中的破解风险同样影响严重。

一般而言,破解风险包括Unity mono脚本解密、Unity il2cpp脚本解析、Assetbundle资源篡改、存档数据被修改、协议破解等多个方面。

  • Unityil2cpp脚本解析:以libil2cpp.so和global-metadata.dat作为输入,使用Il2CppDumper即可进行解析,这样子类名、函数名以及对应的偏移都能被解析出来。

  • Assetbundle资源篡改:如常见的枪击游戏中,将Assetbundle资源里面的材质属性修改为透明即可达到透视的效果,可让使用修改版的玩家获取不对称优势。而且除了资源被篡改的风险外,还存在资源被竞品盗取、分析的风险。

  • 存档数据被修改:某些游戏存档数据以明文形式存在,如果这些数据不去服务端校验,或者是单机游戏的话,则存在巨大的安全风险,游戏的各种属性可以直接修改。

旅行青蛙是一个没有任何保护的Unity3d游戏,突然火了以后,搜索引擎可以搜索到大量的破解版本,QQ群上也可以搜索大量的辅助群。在其中,就藏着许多的安全风险。比如:

  • 使用GG加速器可以使三叶草瞬间长满:

使用dnspy可以解析assets/bin/Data/Managed/Assembly-CSharp.dll:

通过搜索关键字,可以定位到获取三叶草和旅行券的代码位置:

原始代码

修改后的代码

修改后的效果

上面列举的旅行青蛙手游风险只是其中的一个典型,但是管中窥豹可以得知,目前的手游市场面临着错综复杂的安全挑战,安全防护是所有手游厂商都必须关注的重中之重。

网易云易盾如何实现了一体化的安全防护?

针对这种情况,在今天(9月8日)的2018 RTC 实时互联网大会•社交游戏专场中,网易资深安全工程师张本梁分享了《网易Android游戏保护实践》主题内容,就当前的手游安全形势给出了分析和解答,并深度介绍了网易云易盾安全解决方案的技术要点。

在张本梁看来,如果游戏不做保护,不管是外挂工具还是破解,都可以修改游戏逻辑,这会对游戏造成很大的收入和口碑损害。而网易云易盾所提供的一体化解决方案能够很好地解决这些问题,不仅可以破解包的检测,而且能够跟破解者无感知对抗、对恶意用户进行全方位的风险评估。它还具备完善的通用保护功能,支持任意的游戏引擎,所以手游厂商们完全可以根据游戏需求自主选择:

  • 反修改器:易盾手游保护采用修改行为检测,可通杀所有修改器,包括所有已知和未知的修改器;

  • 反加速:易盾手游保护对Android系统内的加速器、模拟器进程加速的加速器都有检测方案,同样都是针对行为的检测方案,不针对特定的某些加速器,通用性更好;

  • 反模拟器:可以通杀所有已知和未知模拟器;

  • 反调试:检测方式隐蔽,大大提高动态逆向分析难度;

  • 反模拟点击:模拟点击严格上来说不属于非法外挂,处于灰色地带,因此模拟点击器都是公司化动作,应用很广泛,但是模拟点击脚本提供的功能对游戏平衡也会带来很大的不良影响。易盾手游保护使用了进程+行为检测相结合的方式,对模拟点击器进行检测;

  • 文件校验:兼顾了效率和安全性;

  • 防二次打包:使用了更为底层的方式,可以绕过各种过校验插件;

  • 存档加密:透明方式接入,不需要开发做额外接入工作;

  • 反多开器:支持真机和模拟器上的多开;

  • 反地理位置模拟:检测真机和模拟器地理位置模拟;

  • ......

对于潜在的破解风险,易盾安全解决方案还能够从代码层面提供详尽的功能保护。

  • Unity mono DLL脚本加密

DLL脚本加解密的原理是修改或者HOOKmono_image_open_from_data_with_name,mono_image_open_from_data_with_name是CSharp脚本的加载函数,如果CSharp
DLL脚本做了加密,需要在这个函数执行之前解密。因此只要在这个函数这里下断点或者HOOK,就可以解密出原始DLL。不需要逆向加密算法。留意一下,这里有个memcpy拷贝操作,mono会把解密后的DLL在内存中留存一份拷贝。

该方案包括三代加密方法:第一代加密:直接对DLL文件进行加密,在mono_image_open_from_data_with_name函数开始处解密。解密门槛很低,只要使用修改器就可以解密。第二代加密基于第一代加密的明显弱点,针对解密加强了防护。解密门槛比较高,需要非常强的逆向开发能力才能破解。第三代加密则针对Csharp函数做加密,也就是方法级加密,动态解密。易盾采用的是第二代加密+第三代加密组合使用的方式来确保DLL脚本加密的安全强度。

  • IL2CPP 加密

Il2cpp脚本信息以lib2cpp.so形式存在,结合global-metadata.dat文件内的符号信息,对libil2cpp.so做so加壳,即可进行解析。如下所示,原始libil2cpp.so用IDA可以看到475个导出函数,但是加固后的libil2cpp.so导出函数则为空。

Assetbundle、静态资源加密

那么手游如何进行易盾加固接入?首先需要确定游戏加固项,而且易盾技术也支持云端配置好加固项,然后获取appkey,下载加固jar包工具,根据使用说明配置好appkey即可。

如何实现360度的手游安全防护?网易云易盾专家分享最新实践相关推荐

  1. 更加全面、高效,网易云易盾手游智能反外挂服务7月31日发布

    反外挂,是一场永无止境的战争. 有新闻报道,一款流行游戏的外挂开发者,可月赚数十万."真正圈内顶尖的高手月入百万也不稀奇."一位行业人士透露.面对如此诱人的"前景&quo ...

  2. 网易云易盾首家推出手游智能反外挂服务 覆盖99%的外挂

    7月31日,网易云易盾在云创大会上正式推出手游智能反外挂服务.该服务覆盖99%的各类游戏外挂,包括修改器.加速器.脱机挂.模拟点击.内购破解.游戏代码&资源窃取等,加固主动防御成功率95%,帮 ...

  3. 手游破解手段介绍及易盾保护方案

    本文来自网易云社区. 手游已经超过端游,成为市场份额最大的游戏类型.对应的外挂产业也成长迅速,技术水准越来越高,对市面流行的手游引擎都有比较深入的研究. 现阶段如果一款游戏没有做任何保护,并且有数据放 ...

  4. dnf手游体验服服务器维护,dnf手游体验服官网

    dnf手游体验服官网下载地址游戏亮点: 1.达到特定水平后,您可以打开经典转移以解锁新角色技能.合理释放各种角色的强大技能,以应对更艰巨的挑战. 2.对经典角色技能进行了全新的处理,以供玩家探索.恢复 ...

  5. 侏罗纪世界为什么显示服务器超时,侏罗纪世界手游新手必看闪退解决方法分享...

    侏罗纪世界手游新手必看闪退解决方法分享,侏罗纪世界是一款恐龙养成类型游戏.游戏中有很多的恐龙,每一种恐龙在游戏中都有自己不同的玩法,而且恐龙竞技场在游戏中要求玩家的战斗力也是比较高的一个.想要快速获取 ...

  6. 9月4日服务器例行维护公告,《诺亚传说手游》官网-【例行维护】9月4日官方维护公告(抢鲜服)- 诺亚手游-首款科幻团战手游...

    亲爱的诺米们: 感谢您对<诺亚传说手游>的热情参与和支持!为了给大家带来更好的游戏体验,我们将于9月4日06:00对服务器进行停服更新维护!为此给您带来的不便,我们致以最诚挚的歉意! 维护 ...

  7. 手游上线必须做的事情 手游运营必看的上线流程干货分享

    一款手游从开发到内测再到运营,需要很多很多准备工作,下面是我们总结整理的产品上线流程,并不适用所有团队,仅供参考.希望对各位CP有所帮助! 上线前一个月 运营工作 一.游戏信息确定 1.确定游戏名字 ...

  8. 9月4日服务器例行维护公告,《诺亚传说手游》官网-【例行维护】9月4日官方维护公告(正式服)- 诺亚手游-首款科幻团战手游...

    亲爱的诺米们: 感谢您对<诺亚传说手游>的热情参与和支持!为了给大家带来更好的游戏体验,我们将于9月4日06:00对服务器进行停服更新维护!为此给您带来的不便,我们致以最诚挚的歉意! 维护 ...

  9. Cocos2d-x 类COC手游与RTS(即时战略)游戏的编程实践总结

    本文乃Siliphen原创,转载请注明出处:http://blog.csdn.net/stevenkylelee 概述 先来看一段视频.这个视频很短.4分钟.是我的一个技术demo演示视频. http ...

最新文章

  1. TensorRT部署深度学习模型
  2. Python logging 模块
  3. java 语言中System.getProperty(user.dir)
  4. Button的使用(十四):控制音乐播放
  5. 「归纳|总结」程序员必知必会的十大排序算法
  6. 使用AT SELECTION-SCREEN事件验证用户输入条件的反思
  7. css中怎么令dt 和 dd对齐
  8. .config 和 kconfig以及 makefile的关系
  9. 算法训练 表达式计算
  10. MVC @Html.TextBox 添加属性和样式
  11. (新手必备)电子电路里面你必须知道的知识!!!
  12. 软考笔记0609软件文档三种类别
  13. 【ntp时间校准配置】
  14. devops运维平台汇总
  15. 入门级动态规划:2018年第九届蓝桥杯省赛B组第四题—测试次数( 摔手机 )
  16. 【渝粤教育】国家开放大学2018年春季 8639-21T食品营养与健康 参考试题
  17. 标签类目体系(面向业务的数据资产设计方法论)-读书笔记2
  18. Electron:WARNING Too many active WebGL contexts. Oldest context will be lost.
  19. O2OA (翱途) 平台 V8.0 发布新增数据台账能力
  20. 敲开量子计算机世界大门,找到马约拉纳费米子:或敲开量子计算机世界大门

热门文章

  1. 读书笔记之鳗鱼的旅行
  2. 青少年的音乐合成器原理指南
  3. QT简单实验——计算器
  4. IT行业转行UI设计有前景吗
  5. 2.2 数据管理 之 数据加权
  6. Zynq LTE基站设计与实现
  7. 无法登录苹果开发者_如何申请苹果开发者帐号?有哪些注意事项?
  8. PBR之基于图像的光照IBL (Diffuse)
  9. 如何获取京东微信小程序页面路径
  10. 计算机老是跳出usb设备无法识别,电脑一直弹出无法识别的USB设备的解决办法