# Unity 小游戏代码安全加固工具
《Unity 小游戏代码安全加固工具》是一款针对unity小游戏代码的保护工具,对明文游戏代码提供加固保护,包含了针对global-metadata.dat的加密、代码混淆以及部分对抗外挂的能力,能够较全面的保护游戏的健康运营。
《Unity 小游戏代码安全加固工具》可以通过安装转换工具来使用,开发者只需要勾选对应的加固选项,即可在通过转换插件导出小游戏代码包时一键加固
# 工具作用与价值
《Unity 小游戏代码安全加固工具》针对的是 Unity 小游戏的两类核心资产:
- global-metadata.dat:Unity IL2CPP 方案下的元数据文件,是 C# 代码逻辑的关键载体,明文状态下可被工具(如 Il2CppDumper)直接解析还原出类名、方法名、字段名等代码结构;
- WASM 代码:Unity 导出到微信小游戏时编译为 WebAssembly,包含游戏的实际运行逻辑。
加固的价值体现在三个层面:
| 风险类型 | 未加固的风险 | 加固后的防护效果 |
|---|---|---|
| 代码抄袭 | global-metadata.dat 明文可读,游戏逻辑、类结构、核心算法可被完整提取复制 | 加密后元数据不可直接解析,大幅提高还原成本 |
| 代码侵权 / 权益归属 | 无法证明代码归属 | 加固后的代码带唯一特征,为代码权益归属提供辅助证据 |
| 外挂 / 作弊 | WASM 明文逻辑暴露,关键函数(如领奖、读档、存档)易被定位并 hook / 篡改 | 函数级混淆使关键逻辑难以静态分析、难以定位攻击点 |
# 手动安装指南
打开游戏工程 -> Unity/团结引擎 Editor 菜单栏 -> Package Manager -> 右上方 “+” -> Add package from git URL URL地址为:
https://github.com/wechat-miniprogram/minigame-tuanjie-transform-sdk.git
或国内Gitee镜像:
https://gitee.com/wechat-minigame/minigame-tuanjie-transform-sdk.git
即可完成SDK导入
如果未出现对应的加固菜单,可以选择安装 https://github.com/wechat-miniprogram/minigame-tuanjie-transform-sdk.git#feat-wxmonitor
# 工具使用流程
# global-metdata.dat 加密
勾选,转换插件在导出小游戏代码时会自动加密
防护原理: global-metadata.dat 是 IL2CPP 构建产物的元数据文件,未加密时明文存储了所有 C# 类型、方法、字段的名称与结构信息。攻击者可通过 Il2CppDumper 等工具直接读取该文件,还原出完整的类图与代码结构,进而进行抄袭或定位外挂修改点。
加密效果:
- 元数据文件从「明文可读」变为「密文」,脱离运行时无法直接解析;
- 大幅提高代码结构还原与逻辑抄袭的技术门槛;
- 加密操作在导出流程中自动完成,开发者无需额外改动代码。
# WASM函数级加固
开发者需要在代码中引入对应的命名空间,并且在 C# 代码中标记需要保护的函数, 区分不同加固等级,默认为中级
using WeChatWASM.GameProtect.Obfuscation;
[WasmObfuscate(level = 1)] // Light
public void ClaimMission() { ... }
[WasmObfuscate] // Medium (默认)
public void Read() { ... }
[WasmObfuscate(level = 3)] // Heavy
public void Save() { ... }
防护原理: 对标记的函数在 WASM 层面做混淆(控制流平坦化、指令替换等),攻击者无法通过静态分析快速理解或定位关键逻辑。
加固等级说明:
| 等级 | 标识 | 防护强度 | 适用场景 | 说明 |
|---|---|---|---|---|
| Light | level = 1 | 低 | 对性能敏感的函数 | 混淆强度低,对体积与性能影响最小 |
| Medium | 默认(不写 level) | 中 | 一般业务逻辑函数 | 防护与性能的平衡点 |
| Heavy | level = 3 | 高 | 核心玩法、防作弊关键函数(如领奖、存档) | 混淆强度最高,体积与性能开销相对更大 |
加固建议:
- 重点保护涉及核心玩法、奖励结算、存档读写的函数(如上面的
ClaimMission、Read、Save); - 不同加固等级会影响代码体积与运行时性能,若无特殊要求,建议对核心逻辑使用高等级。
注意事项:
- 加固后必须要对游戏做充分测试,确保逻辑无误后方可上线。