基于llvm的iOS代碼混淆工具 -- Hikari

Android 有各種加密混淆工具敞临,現(xiàn)在iOS逆向也在發(fā)展态辛,自然也有對應的混淆工具應運而生。
利用混淆工具挺尿,可以更好地保護我們的代碼奏黑,不被輕松地惡意分析破解。
混淆工具主要優(yōu)點是:
1票髓,無須變動項目源碼攀涵。
2,功能靈活可選洽沟,根據(jù)需要自由組合

目前的不足主要是:
1以故,會導致安裝包體積增大。
2裆操,混淆代碼會被編譯優(yōu)化掉怒详。
3炉媒,提審存在被拒的風險。

這里介紹的是張總寫的工具:Hikari
下載地址:https://github.com/HikariObfuscator/Hikari/releases
下載完成昆烁,將 Hikari.xctoolchain 解壓到~/Library/Developer/Toolchains/ 或 /Library/Developer/Toolchains/ 都可以吊骤。
現(xiàn)在新版本張總已經(jīng)打包成安裝器了,應該直接安裝即可静尼。我是之前下載的老版本白粉,這里選擇前者,只對當前用戶可用鼠渺。

解壓文件示意圖

接著势篡,在 Xcode->Toolchains中换衬,選擇 HikariObfuscator


選擇HikariObfuscator

然后將所有與要運行的target相關的target的Enable Index-While-Building 的值改為NO。
否則編譯會報錯: error: cannot specify -o when generating multiple output files

還需要關閉編譯優(yōu)化站玄,將所有 target 的 Optimization Level 改為 None:


關閉編譯優(yōu)化

然后通過編譯參數(shù)笨腥,開啟需要的混淆選項帐萎,在 Other C Flags 里面加表悬。
可用參數(shù)如下:

-mllvm -enable-allobf 全部啟用
-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ù)封裝

這里測試了幾種:
1沼侣,字符串加密
可以看到祖能,混淆前在 IDA 里面,字符串清晰可見华临,混淆后字符串基本沒影了芯杀。


混淆前

混淆后

2,函數(shù)封裝
原本簡單的一個函數(shù)雅潭,現(xiàn)在變成一大串結(jié)構(gòu)揭厚。


混淆前

混淆后

3,偽控制流
本來沒有控制流程的扶供,增加了好幾個跳轉(zhuǎn)流程筛圆。


混淆前

混淆后

4,控制流平坦化
騰訊安全博客的圖效果更佳突出椿浓,無恥地盜圖了:


混淆前

混淆后
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末太援,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子扳碍,更是在濱河造成了極大的恐慌提岔,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,755評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件笋敞,死亡現(xiàn)場離奇詭異碱蒙,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評論 3 395
  • 文/潘曉璐 我一進店門赛惩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來哀墓,“玉大人,你說我怎么就攤上這事喷兼±捍拢” “怎么了?”我有些...
    開封第一講書人閱讀 165,138評論 0 355
  • 文/不壞的土叔 我叫張陵季惯,是天一觀的道長吠各。 經(jīng)常有香客問我,道長勉抓,這世上最難降的妖魔是什么走孽? 我笑而不...
    開封第一講書人閱讀 58,791評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮琳状,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘盒齿。我一直安慰自己念逞,他們只是感情好,可當我...
    茶點故事閱讀 67,794評論 6 392
  • 文/花漫 我一把揭開白布边翁。 她就那樣靜靜地躺著翎承,像睡著了一般。 火紅的嫁衣襯著肌膚如雪符匾。 梳的紋絲不亂的頭發(fā)上叨咖,一...
    開封第一講書人閱讀 51,631評論 1 305
  • 那天,我揣著相機與錄音啊胶,去河邊找鬼甸各。 笑死,一個胖子當著我的面吹牛焰坪,可吹牛的內(nèi)容都是我干的趣倾。 我是一名探鬼主播,決...
    沈念sama閱讀 40,362評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼某饰,長吁一口氣:“原來是場噩夢啊……” “哼儒恋!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起黔漂,我...
    開封第一講書人閱讀 39,264評論 0 276
  • 序言:老撾萬榮一對情侶失蹤诫尽,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后炬守,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體牧嫉,經(jīng)...
    沈念sama閱讀 45,724評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年劳较,在試婚紗的時候發(fā)現(xiàn)自己被綠了驹止。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片浩聋。...
    茶點故事閱讀 40,040評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖臊恋,靈堂內(nèi)的尸體忽然破棺而出衣洁,到底是詐尸還是另有隱情,我是刑警寧澤抖仅,帶...
    沈念sama閱讀 35,742評論 5 346
  • 正文 年R本政府宣布坊夫,位于F島的核電站,受9級特大地震影響撤卢,放射性物質(zhì)發(fā)生泄漏环凿。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,364評論 3 330
  • 文/蒙蒙 一放吩、第九天 我趴在偏房一處隱蔽的房頂上張望智听。 院中可真熱鬧,春花似錦渡紫、人聲如沸到推。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽莉测。三九已至,卻和暖如春唧喉,著一層夾襖步出監(jiān)牢的瞬間捣卤,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評論 1 270
  • 我被黑心中介騙來泰國打工八孝, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留董朝,地道東北人。 一個月前我還...
    沈念sama閱讀 48,247評論 3 371
  • 正文 我出身青樓干跛,卻偏偏與公主長得像益涧,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子驯鳖,可洞房花燭夜當晚...
    茶點故事閱讀 44,979評論 2 355