如何对il2cpp进行加固保护?.docx

上传人:安*** 文档编号:73275505 上传时间:2023-02-17 格式:DOCX 页数:4 大小:17.43KB
返回 下载 相关 举报
如何对il2cpp进行加固保护?.docx_第1页
第1页 / 共4页
如何对il2cpp进行加固保护?.docx_第2页
第2页 / 共4页
点击查看更多>>
资源描述

《如何对il2cpp进行加固保护?.docx》由会员分享,可在线阅读,更多相关《如何对il2cpp进行加固保护?.docx(4页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、如何对il2cpp进行加固保护?Unity3D是一款非常知名的游戏引擎许多知名游戏就是基于该引擎进展开发的。它最大的一个特点是一次制作多平台部署而这一核心功能是靠Mono实现的。可以讲Mono是Unity3D核心的核心是Unity3D跨平台的根本。但是在2021年度发布Unity5的时候Unity3D官方推出了il2cpp。根据Unity官方给出的解释推出il2cpp的原因主要是以下几点1.C#的运行效率还是远落后于C/C2.mono版本受权受限无法使用.NET的许多新特性3.monoVM在各平台的移植以及维护都非常耗时4.更稳定可靠的垃圾回收机制那么在游戏代码的平安性上mono以及il2cp

2、p两种形式会有哪些区别呢使用mono编译后的游戏会将C#脚本代码编译成IL中间语言后打包到客户端中。以android端为例相关脚本代码会放在apk里assetsbinDataManaged目录下的Assembly-CSharp.dll中。使用il2cpp编译后的游戏会将C#脚本代码编译成native代码最后是在lib目录下对应架构的libil2cpp.so文件里。可能有些开发者会觉得代码放在so里面反汇编分析起来也很累人那么游戏的平安性应该可以大大增强了吧但是il2cpp编译后会生成一个global-metadata.dat的文件这个文件包含了大量的符号信息有了这些符号信息可以大幅降低逆向本钱

3、。更有热心开发者开发了一个名为Il2CppDumper的工具(s:/github/Perfare/Il2CppDumper)可以直接将il2cpp.so复原为dll文件并且还可以自动生成il2cpp.so对应的ida.py脚本进一步方便攻击者进展分析以及修改。下面我们演示下该工具的使用经过以及最终效果。首先按照工具的使用讲明以及提示运行该工具下列图是运行结果。从上图可知工具已经成功生成了对应的dll文件我们使用dnspy对dll文件进展解析得到的结果如下列图所示。从上图可以看到该游戏所有的函数名都可以完好的解析出来攻击者可以根据函数的名称判断该函数的功能然后通过IDA以及IL2CppDumpe

4、r.exe生成的ida.py对函数进展分析以及修改进而实现破解版的功能比方下列图是MainCityResidenceStrategy类的GatherTempMoney函数的内容。那么我们应该怎样防范这类工具呢从工具的使用来看它需要2个文件一个是libil2cpp.so一个是对应的global-metadata.dat。假如对任意一个文件做处理它是不是就无法正常工作了呢为了验证这个问题我们首先只对libil2cpp.so进展加固再用该工具进展验证结果如下列图所示。从图里可知so加固之后工具是没法正常工作的。然后我们只对global-metadata.dat进展保护这时候工具的输出结果如下列图所示

5、。从上图可知单独对dat文件做保护工具也是无法正常运行的。因此我们可以得出结论要防范IL2CppDumper.exe这类工具有2方面的工作可以进展一是对libil2cpp.so文件做保护二是对global-metadata.dat文件做保护。对于so保护网易易盾已经有成熟的保护方案这里不再详细介绍主要讲下global-metadata.dat文件保护方案。假设要对global-metadata.dat进展保护那么在引擎加载该文件的时候我们必须将文件恢复到原始状态否那么游戏会加载报错。那么很自然的可以想到只要我们在引擎加载该文件之前给它解密回去不就搞定了吗该方案确实可行市面上很多保护方案也是这么

6、做的我们可以将该方案称为第一代global-metadata.dat文件保护方案。对global-metadata.dat加载经过解析的同学都知道该文件的加载入口是MetadataLoader:LoadMetadataFile函数只要我们对该函数进展一定的处理就完成对global-metadata.dat的保护了。但是该方案还是有一个明显的缺点就是解密之后会有完好的global-metadata.dat文件内容暴露在内存中攻击者还是可以借助一些工具将解密后的文件dump到本地中。还有一种隐藏global-metadata.dat文件的方案它是将该文件加密后隐藏在apk内部改变文件的原始存储途径

7、然后通过hook的方式在加载的时候恢复回去本质上还是属于第一代globalmetadata.dat文件保护方案。针对第一代保护方案的缺陷易盾通过对il2cpp的深化探究研究出了第二代global-metadata.dat保护方案。该方案相对第一代的优势是能杜绝文件在内存中全部的暴露可以做到边运行边解密而非一次性全部解密。使用该方案后即使攻击者dump出内存中的global-metadata.dat文件它也不是完好的解密后的文件平安性得到很大的提升。有了该方案再配合上对libil2cpp.so文件的加固游戏防破解才能能得到明显的提升。下面用一张图展示这2种方案的区别。从mono的dll整体加密、方法加密和畸形化保护再到il2cpp的global-metadata.dat整体加密以及方法加密易盾一致致力于对Unity3D引擎保护方案的研究。网易易盾

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 工程图纸

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁