行业背景
Unity3D 是由 Unity Technologies 开发的一款专业游戏引擎,可以让开发者轻松创建三维视频游戏、建筑可视化、实时三维动画等工具和应用,广泛应用于游戏、汽车、运输与制造、电影与动画、建筑、工程与施工等领域。Unity3D 具有跨平台、高效的开发语言和工具、丰富的插件和极易上手等优势。Unity3D 程序由 C# 语言开发,采用了 .NET 框架并由 mono 运行时解释执行,在极大提升了开发效率的同时也带来了一些安全问题。
代码逻辑极易被反编译和篡改
Unity3D 程序的核心程序集文件 Assembly-CSharp.dll 是标准的 .NET 文件格式,附带了方法名、类名、类型定义等丰富的元数据信息,使用 DnSpy 等工具可以轻易地将其反编译和篡改,代码逻辑、类名和方法名等一览无余。
资源易提取
Unity3D 程序在编译打包阶段会通过 Unity 编辑器将资源加包成 Asset Bundle 文件,Asset Bundle 是一种公开的压缩类文件格式,使用 Asset Studio 等工具可以对其解析、展示和提取。
应对风险
- dll 反编译
- 资源被提取
- 内存 dump
- 恶意代码注入
- 游戏外挂
- 逆向算法
Virbox Protector 的 Unity3D 保护方案
- 程序集加密 Virbox Protector 通过加密程序集中的每个方法,每次仅有一个方法被解密,并且解密时解密到随机的内存地址,保证加密后的程序不可被 Dump,再通过独创的二进制指令块编译链接技术,将关键的代码逻辑动态地进行混淆或虚拟化保护,保证其安全性。
- Asset Bundle 资源加密 Virbox Protector 提供了资源加密的功能,支持 Android apk 的分块读取和其它平台的读取操作,通过保护工具可一键完成加密。
- 反调试 Virbox Protector 提供了反调试的功能,在运行时检测调试器,发现恶意调试行为即清场退出,防止动态调试保护后的程序。
Virbox Protector 的优势
- 性能影响小:保护后的程序运行时性能影响很小,不影响用户体验。
- 安全性高:高强度的加密方案,再通过二进制指令块混淆虚拟化技术加持,大辐提升安全强度。
- 操作简单,一键完成保护:无需对编译环境做任何修改,三分钟内完成保护。
- 多平台多架构支持:支持 Windows、Linux、macOS、Android 系统,支持 PC x86 平台、安卓 arm 平台以及模拟器。
加密前后使用Dnspy反编译对比
未经加密前:

加密后:

PC上OllyDbg 调试失败与附加失败

Cheat-Engine 读取内存失败
