中文站

知物由学|游戏开发者如何从容应对Unity手游风险?

“知物由学”是网易云易盾打造的一个品牌栏目,词语出自汉·王充《论衡·实知》。人,能力有高下之分,学习才知道事物的道理,而后才有智慧,不去求问就不会知道。“知物由学”希望通过一篇篇技术干货、趋势解读、人物思考和沉淀给你带来收获的同时,也希望打开你的眼界,成就不一样的你。当然,如果你有不错的认知或分享,也欢迎通过邮件(zhangyong02@corp.netease.com)投稿。

以下为正文:

3月25日,2018 Unity技术路演首站:移动游戏技术分享日在广州举办。此次活动,旨在为移动游戏开发者们搭建一个更好的交流平台,学习Unity在移动游戏开发领域的最新工具与应用技巧,分享最炫酷的游戏开发与行业应用案例,了解移动游戏开发中的安全问题所能给企业带来的隐患,帮助开发者提前感知安全隐患,避免受到损失。

网易云易盾移动游戏安全技术专家出席交流活动,并进行了《Unity手游风险及安全问题——网易云易盾来保驾护航》的技术演讲。在分享中,介绍了时下Unity手游面临的众多风险及热门外挂,并重点讲解了易盾安全解决方案的技术原理和实践案例。

一、Unity手游面临的风险

据统计,2017年国内活跃移动游戏APP应用约有9000款,其多数存在被破解、恶意代码插入、广告插入、外挂、二次打包等安全问题。而这些安全问题为企业带来隐患是,研发难度增加,研发成本的提高、玩家付费意愿减低、游戏失去公平性,玩家流失,直接损失收入——因此,破除Unity手游风险对于开发者来说十分重要。

常见的Unity手游风险主要包括破解风险、外挂工具这两类。

破解风险

破解风险主要有Unity mono脚本解密、Unity il2cpp脚本解析、Assetbundle资源篡改这三项。

·Unity mono脚本解密

以下两张图为mono脚本文件的二进制形式及源码转换。



·Unity il2cpp脚本解析

以libil2cpp.so和global-metadata.dat作为输入,使用Il2CppDumper即可进行解析:


解析出来的效果如下所示,类名、函数名以及对应的偏移都能够被解析出来:


目前iOS中还没有能够解析为源码的工具,但是如果可以解密或解析Android脚本,将会大大方便iOS的破解。因此Android的有效脚本加密非常有必要。

·Assetbundle资源篡改

透视功能可让使用修改版的玩家获取不对称优势。如下所示的某枪击游戏,将其中Assetbundle资源里面的材质属性修改为透明,即可达到透视的效果。


除了资源被篡改的风险外,游戏中还存在资源被竞品盗取、分析的风险。

·存档数据被修改


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

外挂工具

·游戏修改器

使用修改器能够将伤害倍率从18%改成999.9%,使得攻击伤害提升了几十倍。类似的原理也可以实现无敌、秒杀、无限蓝、技能无CD等效果,因此修改器对游戏平衡的危害相当大。


常用的修改器有烧饼修改器、八门神器和GameGuardian(GG修改器及其各种修改版),其中的GG修改器(GameGuardian)流行于即时对战类游戏(比如吃鸡游戏)。

上图为搜索数值界面,下图为调用lua脚本界面



某QQ群售卖的GG lua脚本

·免ROOT修改器

免ROOT修改器是指通过第三方软件获得Root权限,可以访问和修改手机游戏中几乎所有的文件,但这样操作有可能影响游戏的稳定性,出现死机、卡顿、重启等人为性故障。

 

八门神器附带的免ROOT修改器


GG大玩家附带的免ROOT修改器

游戏加速器

加速器分2种类型,一种是手机加速器,例如烧饼加速器、GG加速器;另一种是模拟器加速器,例如天天加速器。加速器除了可以加速,还可以减速。如下图所示,使用烧饼加速器,背景速度会随加速倍数加大而提高。


·游戏破解版

破解版提供了很多变态的功能来吸引玩家。下图是某个站专门破解游戏售卖进行盈利,他们除了有售卖网站,还开了淘宝店。只要月付150元,就已经超过很多游戏的ARPU值了。这样破解版的存在会严重影响普通玩家体验,给游戏收入和口碑都造成很大的损失。


包括GG大玩家、光环助手等等,市面上都有各种破解版售卖。



GG大玩家游戏破解版,上图为修改版列表,下图为修改版功能



光环助手游戏破解版,上图为修改版列表,下图为修改版功能

·模拟按键挂


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

二、易盾是怎么做的?

网易易盾能够提供Unity mono DLL脚本加密、IL2CPP 加密、Assetbundle加密等加密解决方案,以及反修改器、反加速、反模拟器、反调试等手游通用保护功能和手游风险感知。

Unity mono DLL脚本加密

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


Unity mono DLL脚本加密经历了三代的技术演进。

第一代加密直接对DLL文件进行加密,在mono_image_open_from_data_with_name函数开始处解密。对于这个的破解方法很简单,PE结构的文件,以4d 5a90 00这四个字节为magic head,这可以做为CSharp DLL脚本的特征,只要搜索0x905a4d这个数值就可以了,由于烧饼修改器是使用10进制数值,将其转换成10进制值:9460301。因此解密门槛很低,只要使用修改器就可以解密。




第二代加密基于第一代加密的明显弱点,针对解密加强了防护。解密后,把下图所示的PE头抹掉,使得修改器无法定位到脚本位置。因此解密门槛比较高,需要非常强的逆向开发能力才能破解。


第三代加密针对Csharp 函数做了加密,也就是方法级加密,需动态解密。


原始未加密dnspy函数解析结果

<v:rect o:spid="_x0000_s1026" alt="https://mmbiz.qpic.cn/mmbiz_png/ehYgAEz0586qia5qORJEaiaNVHso8qaEVicf5MQFP5k7CcvyeHqrCXTr0U5lumDH9p71E3fM2lGeTxObEFzMkkCdg/640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1" style="width:24pt;height:24pt;visibility:visible;mso-wrap-style:square; mso-left-percent:-10001;mso-top-percent:-10001;mso-position-horizontal:absolute; mso-position-horizontal-relative:char;mso-position-vertical:absolute; mso-position-vertical-relative:line;mso-left-percent:-10001;mso-top-percent:-10001; v-text-anchor:top" o:gfxdata="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 " filled="f" stroked="f"><v:shapetype coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"><v:shape type="#_x0000_t75" style="width:24pt; height:24pt">
</v:shape>
</v:shapetype></v:rect>

<v:rect id="矩形_x0020_15" o:spid="_x0000_s1026" alt="https://mmbiz.qpic.cn/mmbiz_png/ehYgAEz0586qia5qORJEaiaNVHso8qaEVicf5MQFP5k7CcvyeHqrCXTr0U5lumDH9p71E3fM2lGeTxObEFzMkkCdg/640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1" style="width:24pt;height:24pt;visibility:visible;mso-wrap-style:square; mso-left-percent:-10001;mso-top-percent:-10001;mso-position-horizontal:absolute; mso-position-horizontal-relative:char;mso-position-vertical:absolute; mso-position-vertical-relative:line;mso-left-percent:-10001;mso-top-percent:-10001; v-text-anchor:top" o:gfxdata="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 " filled="f" stroked="f"><v:shapetype id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"><v:shape id="_x0000_i1025" type="#_x0000_t75" style="width:24pt; height:24pt">函数加密后dnspy函数解析报错</v:shape></v:shapetype></v:rect>

IL2CPP 加密

Il2cpp脚本信息以lib2cpp.so形式存在,结合global-metadata.dat文件内的符号信息,即可进行解析,因此需要对libil2cpp.so做so加壳,如下图所示,原始libil2cpp.so用IDA可以看到475个导出函数:


加固后的libil2cpp.so导出函数则为空:


Assetbundle加密

Assetbundle未加密时,Unity Studio可解析出各种资源:


对Assetbundle加密后,Unity Studio就无法解析了:


手游通用保护功能

除去Unity mono DLL脚本加密、IL2CPP 加密、Assetbundle加密等加密解决方案外,网易易盾也能够提供通用的手游保护功能,包括反修改器、反加速、反模拟器、反调试、反模拟点击、文件校验、防二次打包、存档加密、引擎SO定制化加壳等。一般而言,这些通用功能任何游戏引擎都支持,可以根据游戏需求选择一个或多个。目前,网易易盾支持的游戏主要包含Unity3d、COCOS、NEOX和UE4。

· 反修改器

修改器可以实现很多功能,如无限蓝、技能无CD、无敌、秒杀、倍攻等,是工具党的最爱,也是专业破解者常用的工具之一。常见的修改器除了常见的烧饼、八门神器、葫芦侠、GG(GameGuardian)以外,还有很多定制修改版。

其中,GG修改器是做的最专业的修改器,专门做了反检测措施(随机化包名、子进程使用系统进程名等),因此常规的进程检测对GG无效。但是易盾手游保护采用修改行为检测,可以通杀所有修改器,包括所有已知和未知的修改器。下图是检测效果示例:


·反加速

加速器可加速可减速,主要分为两类:一是Android系统内的加速器,如烧饼加速器、叉叉加速器,一般修改器都附带加速功能;二是对模拟器进程加速的加速器,此加速原理跟端游加速相同,实质是对整个模拟器做了加速,Android系统内并没有加速器在运行,比较典型的是天天模拟器附带的天天加速器。

加速器的使用会让个别玩家获得游戏优势,影响游戏平衡。但是易盾手游保护对以上这2种加速都有检测方案,而且是针对行为的检测方案,不针对特定的某些加速器,通用性更好——对于天天加速器这样的进程加速器,即使只加速0.1倍也可以检测到。


上图是一个加固过的跑酷游戏,用天天加速器加速生效后,过了一秒钟左右,即会闪退。

· 反模拟点击

模拟点击严格上来说不属于非法外挂,处于灰色地带,因此模拟点击器都是公司化动作,应用很广泛,但是模拟点击脚本提供的功能对游戏平衡也会带来很大的不良影响。目前比较知名的模拟点击器,有叉叉助手、触动精灵、触摸精灵、按键精灵、游戏蜂窝等。

如下图所示,触动精灵启动后,再启动游戏,保护检测到模拟点击器的存在即会闪退:


但是易盾手游保护使用了进程+行为检测相结合的方式,能够对模拟点击器进行检测。

以上介绍的这些手游通用保护功能各有其特点,开发者可以按实际需求进行选择:

功能<o:p></o:p>

特点<o:p></o:p>

反调试<o:p></o:p>

检测方式隐蔽,大大提高动态逆向分析难度<o:p></o:p>

反模拟器<o:p></o:p>

可以通杀所有已知和未知模拟器<o:p></o:p>

文件校验<o:p></o:p>

兼顾了效率和安全性<o:p></o:p>

防二次打包<o:p></o:p>

使用了更为底层的方式,可以绕过各种过校验插件<o:p></o:p>

存档加密<o:p></o:p>

透明方式接入,不需要开发做额外接入工作<o:p></o:p>

手游风险感知

网易易盾还能够提供手游风险感知功能,主要包括包含破解包的检测、跟破解者无感知对抗、恶意用户风险评估以及支持私有化部署。


三、易盾保护方案特点

网易易盾保护方案具有纯Native保护、对引擎SO做加壳、兼容性和稳定性高、性能影响小、支持Windows、Linux、Mac三平台加固等性能特点。

纯Native保护

游戏dex内部都是第三方SDK以及游戏内部不涉及到游戏逻辑的SDK。如果对DEX加壳的话,一方面容易造成Android碎片化,导致dex加壳会降低app的兼容性;另外Android存在Dalvik和Art两种虚拟机,所以dex加壳会为了兼容2种虚拟机而增加处理成本,从而导致启动耗时增加比较厉害。阿里和腾讯都有DEX加壳服务,但是支付宝、微信都没做DEX加壳。支付宝和微信的安全问题应该是所有APP中间最严重的,他们都没做DEX加壳,这很能说明问题,此外所有腾讯的游戏都没有做DEX加壳。所以如果手游保护需要依赖于DEX加壳的话,兼容性和安全性都是很难保证的。因此建议游戏不要使用DEX加壳。

下图是以一个第三方游戏为例,使用jeb分析其dex包含的模块:


网易易盾可以提供纯Native保护,使游戏保护不依赖DEX加壳。DEX加壳和纯Native保护优缺点比较如下:

影响项<o:p></o:p>

DEX加壳<o:p></o:p>

Native保护<o:p></o:p>

兼容性<o:p></o:p>

Android的碎片化对dex影响很大<o:p></o:p>

Android的碎片化对natvie层没有影响<o:p></o:p>

启动时间<o:p></o:p>

启动的时候需要对数兆的DEX进行读文件、解密、ota优化,启动时间影响很大<o:p></o:p>

C代码的内存操作,启动时间影响很微小<o:p></o:p>

运行速度<o:p></o:p>

成倍影响运行效率<o:p></o:p>

对运行几乎无影响<o:p></o:p>

渠道过审<o:p></o:p>

加壳后影响渠道植入SDK<o:p></o:p>

不影响渠道打包<o:p></o:p>

安全性<o:p></o:p>

对游戏无保护作用,很多游戏破解版都带着dex壳<o:p></o:p>

完全针对手游量身定制的保护,到各种游戏威胁都有防护<o:p></o:p>

对引擎SO做加壳

基本上所有的破解都依赖于对引擎so的逆向分析,如果对so进行了加壳保护,会大大增加游戏被破解的门槛。除了对引擎SO加壳,网易易盾还会对敏感函数代码做校验。


兼容性和稳定性高

兼容强的原理在于所有保护都在SO层,不会对DEX进行修改,有效避免了Android碎片化导致的兼容问题。网易易盾的兼容性极高,可以兼容从Android 2.3到Android 9.0所有版本系统、所有模拟器以及所有游戏引擎使用的指令集。

手游保护的稳定性,需要遵循如下发布流程:

1.    QA测试:在200台手机上以及各种模拟器上测试;

2.    预线上测试:将安全模块集成到日活1000的APP上线测试2周;

3.    版本发布:前面2轮都测试稳定后,正式发布;

4.    线上回归:先在内部比较小的游戏上线测试,确保稳定性。

性能影响小

易盾保护方案还具有性能影响小的特点,无论是CPU占用、内存占用、启动时间、电量消耗等方面的影响几乎都可忽略不计。

性能指标<o:p></o:p>

影响大小<o:p></o:p>

CPU占用<o:p></o:p>

增加0.5%-1%<o:p></o:p>

内存占用<o:p></o:p>

增加1M-3M<o:p></o:p>

启动时间<o:p></o:p>

增加30ms-150ms<o:p></o:p>

电量消耗<o:p></o:p>

增加0.5%-1%<o:p></o:p>

安装包体积<o:p></o:p>

增加1.5M-3M<o:p></o:p>

流量消耗<o:p></o:p>

无影响<o:p></o:p>

GPU占用<o:p></o:p>

无影响<o:p></o:p>

支持Windows、Linux、Mac三平台加固

此外,易盾保护方案还支持Windows、Linux、Mac三平台加固,加固工具以jar包形式提供,不仅自带极速签名功能,而且对加固做了全面优化,速度更快。


加固接入的对接过程包括:


1.    确定游戏加固项;

2.    易盾技术支持云端配置好加固项;

3.    获取appkey;

4.    下载加固jar包工具,根据使用说明配置好appkey。

四、易盾的解决方案获得了哪些客户认可?

网易易盾保护方案广泛应用于实际案例中,包括网易公司内部的倩女幽魂、终结者2:审判日等手游之中。


在外部,也有游戏公司多个游戏皆采用了易盾手游保护方案。


最后:易盾还在现场举办了安全诊断环节,现场有用户问及加固的流程。网易客户全工程师李沛然表示,加固流程上,一条命令行即可接入,不会影响开发流程。

“使用很便捷。”李沛然强调。