Unity3D 应用加固

技术背景

Unity3D 程序的核⼼程序集文件 Assembly-CSharp.dll 是标准的 .NET 文件格式,附带了⽅法名、类名、类型定义等丰富的元数据信息,使⽤ DnSpy 等⼯具可以轻易地将其反编译和篡改,代码逻辑、类名和⽅法 名等⼀览⽆余。

Unity3D 程序在编译打包阶段会通过 Unity 编辑器将资源加包成 Asset Bundle 文件,Asset Bundle 是⼀种公开的压缩类文件格式,使⽤ Asset Studio 等⼯具可以对其解析、展⽰和提取。

Virbox Protector 通过加密程序集中的每个⽅法,每次仅有⼀个⽅法被解密,并且解密时解密到随机的内 存地址,保证加密后的程序不可被 Dump,再通过独创的⼆进制指令块编译链接技术,将关键的代码逻辑动态地进⾏混淆或虚拟化保护,保证其安全性。

方案简述

☄️ 使用MONO格式编译的APK

🎗️温馨提示:使用apktool将APK解压,查看lib目录下,是否包含libmono.so,如果包含,说明该APK在编译的时候为MONO格式,需要对整个APK加密

范例

项目

版本

操作系统

Windows 10 家庭中文版

演示程序

angrybots5.5.3.apk

导入APK

将APK导入Virbox Protector

配置加密选项

配置加密选项

🎗️ 温馨提示:无需配置「函数选项」,采用默认配置

资源加密

打开启动开关,保护资源文件

执行保护

保护完成

🎗️温馨提示:加壳后的程序会在同一目录下生成两个新文件:angrybots5.5.3.apk.sspangrybots5.5.3.ssp.apk

angrybots5.5.3.ssp.apk为保护后的程序,请备份好未经保护的angrybots5.5.3.apk,并将angrybots5.5.3.ssp.apk名称修改为angrybots5.5.3.apk。

🎗️温馨提示:angrybots5.5.3.apk.ssp为配置文件,保存了加密过程中的所有配置项目。

使用IL2CPP格式编译的APK

🎗️温馨提示:使用apktool将APK解压,查看lib目录下,是否包含libil2cpp.so,如果包含,说明该APK在编译的时候为IL2CPP格式,需要将APK内的SO文件加密

🎗️温馨提示:使用IL2CPP格式编译的APK的方式请参照第一部分的「APK文件保护」

最后更新于

这有帮助吗?