Hikari代碼混淆

2020.01.14 此方法早已無法使用,原作者也不再更新

下載pkg安裝文件:
https://github.com/HikariObfuscator/Hikari/releases

安裝成功Toolchains會出現(xiàn)Hikari選項


image.png

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


image.png
image.png

三方庫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 依次性啟用上述所有標記

image.png

編譯。
編譯完成后混淆就完成了,可以用hopper工具進行對比

ps:我用的xcode10,Hikari.xctoolchain的clang版本太低,會出現(xiàn)如下報錯:


image.png

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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容