# 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);
  • 不同加固等级会影响代码体积与运行时性能,若无特殊要求,建议对核心逻辑使用高等级。

注意事项:

  • 加固后必须要对游戏做充分测试,确保逻辑无误后方可上线。
点击咨询小助手