iOS混淆筆記

入職新公司,沒有帶筆記,結果就N臉懵了,記在掘金方便日後查找。git

混淆:github

下載安裝連接:https://github.com/HikariObfuscator/Hikari/releaseside

將Hikari.xctoolchain解壓到~/Library/Developer/Toolchains/ 或/Library/Developer/Toolchains/ 便可。區別是前者只有當前用戶可用,後者全部用戶均可使用函數

1.選擇Xcode -> Toolchains -> HikariObfuscator將混淆工具和項目關聯。工具

2.將全部與要運行的target相關的target(包括pod進來的庫)Enable Index-While-Building 的值改成NO。ui

3.Optimization Level 的值設置爲 None[-O0]加密

3.若是是全局混淆,則在須要混淆的target中直接將Other C Flags的值加上所需的混淆標記code

Other C Flags文檔

* 每一個flag前加須要上-mllvm字符串

通常添加如下三種標記:

-mllvm -enable-fco

-mllvm -enable-funcwra

-mllvm -enable-strcry

-mllvm -enable-acdobf

4.編譯便可完成混淆


其他所有標記:

-mllvm -enable-bcfobf 啓用僞控制流

-mllvm -enable-cffobf 啓用控制流平坦化

-mllvm -enable-splitobf 啓用基本塊分割

-mllvm -enable-subobf 啓用指令替換

-mllvm -enable-acdobf 啓用反class-dump

-mllvm -enable-indibran 啓用基於寄存器的相對跳轉,配合其餘加固能夠完全破壞IDA/Hopper的僞代碼(俗稱F5)

-mllvm -enable-strcry 啓用字符串加密

-mllvm -enable-funcwra 啓用函數封裝

-mllvm -enable-allobf  依次性啓用上述全部標記

* 若是沒法提審:正常使用Hikari工具鏈編譯後刪除IPA的Info.plist下的``DefaultToolchainOverrideInfo`` 。而後重啓Xcode和Organizer。


對於代碼信息的修改,可使用KLGenerateSpamCode程序,根據文檔提示進行修改。

Github地址: https://github.com/klaus01/KLGenerateSpamCode

對於各功能的使用,須要注意順序。

刪除空行和註釋可能存在少部分代碼的誤刪。

項目過於複雜不建議修改類文件前綴,可能產生未知bug。部分目錄修改前綴也不可取,未在目錄內的引用不會更改,須要手動更改。


垃圾代碼生成器,使用工具ChaosTool

下載地址:https://www.yaozuopan.top

/* 支持返回值/屬性/參數類型 **/:NSString/NSArray/NSData/NSDictionary/UIImage 最好刪除UIimage,不然部分垃圾代碼容易產生報錯

相關文章
相關標籤/搜索