c#发展

注册

 

发新话题 回复该主题

如何对il2cpp进行加固保护网易易盾 [复制链接]

1#
白癜风土方治疗 https://m.39.net/pf/a_4790073.html
Unity3D是一款非常出名的游戏引擎,许多知名游戏就是基于该引擎进行开发的。它最大的一个特点是一次制作,多平台部署,而这一核心功能是靠Mono实现的。可以说Mono是Unity3D核心的核心,是Unity3D跨平台的根本。但是在年发布Unity5的时候,Unity3D官方推出了il2cpp。根据Unity官方给出的解释,推出il2cpp的原因主要是以下几点:1.C#的运行效率还是远落后于C/C++2.mono版本授权受限,无法使用.NET的许多新特性3.monoVM在各平台的移植和维护都非常耗时4.更稳定可靠的垃圾回收机制那么,在游戏代码的安全性上,mono和il2cpp两种模式会有哪些区别呢?使用mono编译后的游戏,会将C#脚本代码编译成IL中间语言后打包到客户端中。以android端为例,相关脚本代码会放在apk里assets\bin\Data\Managed\目录下的Assembly-CSharp.dll中。使用il2cpp编译后的游戏,会将C#脚本代码编译成native代码,最后是在lib目录下对应架构的libil2cpp.so文件里。可能有些开发者会觉得,代码放在so里面,反汇编分析起来也很累人,那么游戏的安全性应该能够大大增强了吧?但是,il2cpp编译后会生成一个global-metadata.dat的文件,这个文件包含了大量的符号信息,有了这些符号信息,可以大幅降低逆向成本。更有热心开发者,开发了一个名为Il2CppDumper的工具(
分享 转发
TOP
发新话题 回复该主题