我公司的ios项目混淆加固使用的爱加密的产品,爱加密代码混淆工具采用LLVM编译器技术实现。本文对使用过程中的一些知识点进行记录,详细操作请参考爱加密iOS混淆工具使用手册,手册内容写的很详细,按照步骤一步一步来就行。
1、获取
联系爱加密支持人员,他们会发给你最新的爱加密工具包ijiami-clang-tools。
2、安装
首先获取要安装机器的UUID和en0的MAC地址,将这两个信息发送给爱加密人员,爱加密会根据机器信息生成授权Key,我们在拿到授权Key之后,用文本编辑打开ijiami.key文件,将新的key写入该文件(不要有空格和回车)。
然后,通过命令行cd到ijiami-clang-tools目录下,执行./install.sh (可能需要输入密码)。
3、使用
重启Xcode,点击左上角Xcode->Toolchains,选择爱加密混淆ijiami Obfuscator。如果不需要混淆时再切换回Xcode 12.0.1,去掉混淆参数即可。

至于设置编译参数,请按照使用手册修改other c flag,增加以下编译项,可只在release时添加,debug阶段无需混淆。
-mllvm -ipo -mllvm -ipo-percentage=40 -mllvm -ipo-loop=1
-mllvm -encrypt-constant-string -mllvm -encrypt-constant-string-level=1
-mllvm -encrypt-constant-string-probability=100
-mllvm -indirection-control-flow -mllvm -indirection-control-flow-probability=40
如果项目包含swift,需同时修改other swift flags:
-Xllvm -ipo -Xllvm -ipo-percentage=80 -Xllvm -ipo-loop=1
-Xllvm -transform-operator-identically
-Xllvm -split-basic-block
混淆参数可根据使用手册进行调整,如果需要脚本打包,还可以参考爱加密提供的脚本。
4、总结
经过一段时间的使用,最明显的两个感受就是:项目编译时间变长、安装包体积变大。
如果在使用过程中遇到问题,一定要第一时间联系爱加密的支持人员。