2021-01-01 00:00:00
zl
iOS混淆筆記
入職新公司嫁乘,沒(méi)有帶筆記,結(jié)果就N臉懵了妖异,記在掘金方便往后查找谱邪。
混淆:
下載安裝鏈接:https://github.com/HikariObfuscator/Hikari/releases
將Hikari.xctoolchain解壓到~/Library/Developer/Toolchains/ 或/Library/Developer/Toolchains/ 即可。區(qū)別是前者只有當(dāng)前用戶可用驰徊,后者所有用戶都可使用
1.選擇Xcode -> Toolchains -> HikariObfuscator將混淆工具和項(xiàng)目關(guān)聯(lián)笤闯。
2.將所有與要運(yùn)行的target相關(guān)的target(包括pod進(jìn)來(lái)的庫(kù))Enable Index-While-Building 的值改為NO。
3.Optimization Level 的值設(shè)置為 None[-O0]
3.如果是全局混淆棍厂,則在需要混淆的target中直接將Other C Flags的值加上所需的混淆標(biāo)記
Other C Flags
- 每個(gè)flag前加需要上-mllvm
一般添加以下三種標(biāo)記:
-mllvm -enable-fco
-mllvm -enable-funcwra
-mllvm -enable-strcry
-mllvm -enable-acdobf
4.編譯即可完成混淆
其余全部標(biāo)記:
-mllvm -enable-bcfobf 啟用偽控制流
-mllvm -enable-cffobf 啟用控制流平坦化
-mllvm -enable-splitobf 啟用基本塊分割
-mllvm -enable-subobf 啟用指令替換
-mllvm -enable-acdobf 啟用反class-dump
-mllvm -enable-indibran 啟用基于寄存器的相對(duì)跳轉(zhuǎn)颗味,配合其他加固可以徹底破壞IDA/Hopper的偽代碼(俗稱F5)
-mllvm -enable-strcry 啟用字符串加密
-mllvm -enable-funcwra 啟用函數(shù)封裝
-mllvm -enable-allobf 依次性啟用上述所有標(biāo)記
- 如果無(wú)法提審:正常使用Hikari工具鏈編譯后刪除IPA的Info.plist下的
DefaultToolchainOverrideInfo
。然后重啟Xcode和Organizer牺弹。
對(duì)于代碼信息的修改浦马,可以使用KLGenerateSpamCode程序,根據(jù)文檔提示進(jìn)行修改张漂。
Github地址: https://github.com/klaus01/KLGenerateSpamCode
對(duì)于各功能的使用捐韩,需要注意順序。
刪除空行和注釋可能存在少部分代碼的誤刪鹃锈。
項(xiàng)目過(guò)于復(fù)雜不建議修改類文件前綴荤胁,可能產(chǎn)生未知bug。部分目錄修改前綴也不可取屎债,未在目錄內(nèi)的引用不會(huì)更改仅政,需要手動(dòng)更改垢油。
垃圾代碼生成器,使用工具ChaosTool
下載地址:https://www.yaozuopan.top
/* 支持返回值/屬性/參數(shù)類型 **/:NSString/NSArray/NSData/NSDictionary/UIImage 最好刪除UIimage圆丹,否則部分垃圾代碼容易產(chǎn)生報(bào)錯(cuò)