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文件保护」
最近更新 1yr ago