苹果iOS防破解混淆编译工具链/编译插件 Hikari Toolchain for Xcode 13.1 (LLVM 12),基于 MacOS 12.0.1 Monterey / Xcode 13.1 (Xcode 13.1 适配的LLVM版本为12.0)制作,能够在编译时对控制流、指令、字符串进行加密和混淆,防止被破解,也有助于通过苹果审核,是提审 iOS APP 的编译利器。
在 Mac OS 12.0.1 Monterey / Xcode 13.1 环境测试验证正常使用,不影响App Store审核。对于 Unity 3D 制作的游戏导出的 iOS 工程,能够正常编译,不会出现 OLLVM 编译时遇到的编译错误。
其它MacOS和Xcode版本未做测试,不保证可用。
对于其它版本的环境,可与我联系。
【使用方法】
1、下载完成后解压出 Hikari-Xcode13.1.xctoolchain 目录,把此目录复制或移动到 /Library/Developer/Toolchains 目录下;
2、启动 Xcode 后,在菜单 Xcode - Toolchains 下选择 Hikari-Xcode-13.1;
3、选中工程的目标 TARGETS,在 Build Phases 选项页下,展开 Compile Sources,针对希望进行混淆的代码文件,添加编译标记(Compiler Flags),如:-mllvm -enable-strcry -mllvm -enable-bcfobf -mllvm -enable-cffobf -mllvm -enable-subobf
4、设置完 Compiler Flags 后就可以编译了;
5、Archive后,定位到 .xcarchive 文件,鼠标右键点击 XXXX.xcarchive,点击“显示包内容”,打开 info.plist,删除 DefaultToolchainOverrideInfo 项,如果是使用文本编辑器编辑,确保保存;
6、完全退出 Xcode(关闭进程),并重新启动 Xcode,执行菜单 Window - Organizer ,找到生成好的归档 XXXX ,执行导出 ipa 。
注意事项:编译插件会增加编译时长,也增加编译时内存消耗,对于尺寸超过 500K 的代码文件,不要添加全部的编译标记,否则可能会耗尽内存。如果只添加字符串加密标记则不会有太大影响。
附:Compiler Flags :
-mllvm -enable-strcry 字符串加密
-mllvm -enable-bcfobf 生成虚假分支控制流
-mllvm -enable-cffobf 控制流扁平化
-mllvm -enable-subobf 指令替换