2020.01.14 此方法早已無法使用,原作者也不再更新
下載pkg安裝文件:
https://github.com/HikariObfuscator/Hikari/releases
安裝成功Toolchains會出現(xiàn)Hikari選項

將項目中所有target(包括pod進來的三方庫)Enable Index-While-Building Functionality設(shè)為NO


三方庫target忘記設(shè)置的話會報如下兩個錯誤:
-index-store-path
cannot specify -o when generating multiple output files
Optimization Level 的值設(shè)置為 None[-O0]
在 Build Settings -> Other C Flags 中加入混淆標記
-mllvm -enable-bcfobf 啟用偽控制流
-mllvm -enable-cffobf 啟用控制流平坦化
-mllvm -enable-splitobf 啟用基本塊分割
-mllvm -enable-subobf 啟用指令替換
-mllvm -enable-acdobf 啟用反class-dump
-mllvm -enable-indibran 啟用基于寄存器的相對跳轉(zhuǎn),配合其他加固可以徹底破壞IDA/Hopper的偽代碼(俗稱F5)
-mllvm -enable-strcry 啟用字符串加密
-mllvm -enable-funcwra 啟用函數(shù)封裝
-mllvm -enable-allobf 依次性啟用上述所有標記

編譯。
編譯完成后混淆就完成了,可以用hopper工具進行對比
ps:我用的xcode10,Hikari.xctoolchain的clang版本太低,會出現(xiàn)如下報錯:

進入/資源庫/Developer/Toolchains/,找到Hikari.xctoolchain右鍵顯示包內(nèi)容,進入usr/lib/clang,里面有兩個文件夾,分別是7.0.0和10.0.0,把7.0.0刪除,把10.0.0重命名為7.0.0,編譯就通過了