公开预览 · 注册及正式收款尚未开放。
Anti-AIClonePILOT

日志日期 · 周二

O-MVLL 1.11.0:适配 Xcode 27 与两个新混淆 pass

O-MVLL 1.11.0(2026-09-29)适配 Xcode 27.0 与 NDK r29,新增两个 pass,并支持用注解选择 pass。

当天发生了什么

2026-09-29 12:11(UTC),开源 LLVM 混淆器 O-MVLL 在 GitHub 发布了 1.11.0。发布说明列出:兼容目标为 Xcode 27.0 与 NDK r29;随着 Xcode 27.0 发布,新增对 Xcode 27.0 的支持,并移除了 xcode-x86_64 目标;新增 BasicBlockSplit pass,把基本块一分为二;新增 ShuffleOps pass,在基本块内部打乱指令顺序;支持通过注解来选择要应用的 pass;以及若干问题修复和改进,并更新了 sample-omvll-config.py 示例配置。发布说明没有给出新 pass 的性能或体积影响数据。

对 iOS 与 Android 原生代码保护意味着什么

O-MVLL 的评估方法已有单独指南,这里只看这次变化。第一,工具链绑定再次显现:插件版本必须与 Xcode 和 NDK 的版本对应,升级 Xcode 27 的团队需要同步升级混淆器,而移除 xcode-x86_64 目标可能影响仍在使用相关构建环境或产物的团队,具体影响需要对照自己的构建配置确认。第二,两个新 pass 改变的是基本块结构和块内指令顺序,主要增加静态阅读和比对的成本;它们本身并不隐藏字符串常量或密钥,也不能替代把核心规则放在服务端。第三,注解选择 pass 让开发者可以只对关键函数施加更重的变换,这有利于控制体积和性能开销,但也要求团队清楚记录哪些函数被保护,否则后续重构时很容易遗漏。

可以在自己的构建上做的检查

第一,确认 CI 中的 Xcode、NDK 与 O-MVLL 版本组合与发布说明一致,并检查是否有构建依赖已被移除的 xcode-x86_64 目标。第二,先在少量通过注解标记的关键函数上试用 BasicBlockSplit 和 ShuffleOps,测量安装包体积、启动时间和热点函数性能的变化,再决定是否扩大范围。第三,对混淆后的发布构建运行完整测试,并验证崩溃符号化仍然可用。第四,维护一份「受保护函数清单」,在代码审查中检查新增或重命名的关键函数是否保留了注解。

行动清单

  • 核对 Xcode、NDK 与 O-MVLL 的版本组合
  • 先在少量注解函数上试用新 pass 并测量体积与性能
  • 维护受保护函数清单并在代码审查中检查注解

原始资料

全部原始资料与转载状态 ↗