iOS安全攻防藝術(shù)第一章:工具篇

如果你目前還做不了巨人,那么就去思考如何優(yōu)雅的站在巨人肩膀上。

第一章:工具篇

1.1 Mach-O操作工具

1.1.1 otool

Xcode自帶的查看macho文件結(jié)構(gòu)信息工具,類似Windows上的PE文件信息查看工具,不過這個是命令行的,直接在控制臺輸入otool就可以打印支持參數(shù),如下圖所示

otool工具

一般我們常用的不多服鹅,例如打印加載的動態(tài)庫可以輸入otool -L testiOS 輸出如下:

查看二進制的依賴庫

當(dāng)然也可以使用otool工具查看目標(biāo)Macho是否支持Bitcode

對于靜態(tài)庫而言

otool -l xxxx.a | grep __bitcode | wc -l

輸出是個數(shù)字的話則說明是支持bitcode的文件數(shù)

對于mach-o文件則是

otool -l xxxx | grep __LLVM | wc –l

1.1.2 MachoView

?? 一款查看二進制的信息的可視化工具,相對otool來說查看更方便百新,而且不僅可以查看還可以修改Macho企软,例如我們可以將armv7的aslr去掉的話只要修改Mach Header里面MH_PIE 00200000->00000000 修改之后MachoView就會顯示紅色command+S保存后就生效了。

1.1.3 class-dump

?? 一款可以將二進制里面的OC類的頭文件信息導(dǎo)出吟孙,這樣可以幫助我們進行逆向分析澜倦。例如我們對testiOS這個Macho文件執(zhí)行導(dǎo)出頭文件如下圖4:

在執(zhí)行class-dump -s -S -H testiOS -o ~/Desktop/headers 后生成的ViewController.h里面基本上就是原始類聲明。

1.1.4 optool

一款給Mahco注入動態(tài)庫的工具杰妓,類似的還有insert_dylib等藻治,此工具操作相對方便一點,詳細參數(shù)請查看下圖5巷挥,在我們寫好tweak(后面會介紹怎么寫tweak)之后桩卵,我們需要借助此類工具將其注入到目標(biāo)MachO里面。

使用說明如下:

執(zhí)行如下命令將GamePlugin.framework動態(tài)庫(假設(shè)是我們寫好的tweak)注入到testiOS倍宾,如圖6:

optool install -c weak -p "@executable_path/Frameworks/GamePlugin.framework/GamePlugin"-t testiOS

并將GamePlugin.framework拷貝到testiOS同一級目錄的Frameworks目錄(沒有的話就手動創(chuàng)建)

1.1.6 restore-symbol

????? iOS應(yīng)用在上線前都會裁去符號表雏节,以避免被逆向分析,

? ? ?恢復(fù)后方便動態(tài)調(diào)試符號化堆棧高职。

1.1.7 dumpdecrypted

iOS應(yīng)用上架到AppStore上都會被蘋果加上一層官方殼钩乍,所以直接從AppStore上拿到的iPA需要先脫殼后才方便進行后續(xù)的靜態(tài)分析,砸殼具體操作方法如下:

1).先將dumpdecrypted.dylib拷進對應(yīng)目標(biāo)App的沙盒目錄(這里可以使用scp怔锌、或者直接借助愛思助手或者pp助手類似的工具)

2).ssh之后cd到目標(biāo)App的沙盒目錄后執(zhí)行以下命令:

DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib/var/mobile/Containers/Bundle/Application/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXX/iOSTest.app/iOSTest

上面可執(zhí)行程序的完整路徑可以通過愛思助手等工具查看:

1.1.8 frida-iOS-dump

?這個工具是利用frida+

dumpdecrypted完成砸殼自動化寥粹。

?https://github.com/AloneMonkey/frida-ios-dump這里面有詳細介紹变过。


1.1.9 CrackerXI+

? ? 也是一個脫殼工具,誰用誰知道涝涤,有時候知道脫殼原理之后媚狰,使用此工具更佳方便。

1.2阔拳、靜態(tài)分析工具

1.2.1 Hopper Disassembler

? ?一款靜態(tài)分析工具崭孤,目前只支持MacOS,特點是加載快糊肠,交互性等其它功能還是欠缺一點辨宠,匯編修改功能還可以,作者經(jīng)常用來快速查看和簡單修改罪针。

例如已經(jīng)發(fā)現(xiàn)某個類的方法就是判斷是否是Vip彭羹,并且方法的返回值為BOOL時黄伊,我們可以直接按如下修改:

然后保存生成新的Macho文件即可

1.2.2 IDA

iDA一直以來都是安全人員的標(biāo)配工具泪酱,因為它支持Windows、MacOS还最、Linux三平臺墓阀,而且還支持很多的cpu架構(gòu)指令,關(guān)鍵的關(guān)鍵就是交互性很好拓轻,你可以自定義斯撮。官網(wǎng)也有免費版的。

1.3扶叉、動態(tài)調(diào)試工具

1.3.1. debugeserver

一步一步用debugserver + lldb代替gdb進行動態(tài)調(diào)試?http://iosre.com/t/debugserver-lldb-gdb/65

1.3.2 lldb插件

1.xia0LLDB //增強lldb的python命令勿锅,支持:

choose 通過類名返回類名內(nèi)存地址。

sbt?? ?bt的增強版可以符號化堆棧枣氧,這個還是蠻有用溢十。

ivars? 可以查看類的成員變量。

詳細的請在下面的github地址查看介紹:

https://github.com/4ch12dy/xia0LLDB

2.chisel //增強lldb的python命令

這是facebook的一個開源項目也是lldb的python插件使用很方便具體詳情請查看下面的github介紹

https://github.com/facebook/chisel

1.3.2 cycript

? 這個工具一般用來動態(tài)調(diào)試的時候注入相應(yīng)代碼進行測試功能用的达吞。

1.3.3 Reveal

一款動態(tài)查看UI層次的工具张弛。可以快速從UI定位核心業(yè)務(wù)代碼位置用酪劫。

1.4吞鸭、靜態(tài)Patch&&Hook工具

1.4.1 MonkeyDev

方便越獄開發(fā),封裝了theos覆糟,支持<反調(diào)試刻剥、方法跟蹤、Xcode調(diào)試等功能>

https://github.com/AloneMonkey/MonkeyDev

1.4.1 codesign滩字、ldid

codesign造虏、ldid

1.5盯滚、網(wǎng)絡(luò)抓包工具

1.5.1 charles、Fiddler

?常見的HTTP/HTTPS抓包可以用

1.5.2 rvictl+<wireshark酗电、tcpdump>

?TCP底層抓包可以用rvictl+wireshark或者tcpdump


1.6魄藕、其他輔助工具

1.6.1 控制臺(MacOS)

可以很方便查看Mac App或者iOS

App的輸出log信息/Applications/Utilities/Console.app

1.6.2 fsmon_iOS(文件監(jiān)視工具)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市撵术,隨后出現(xiàn)的幾起案子背率,更是在濱河造成了極大的恐慌,老刑警劉巖嫩与,帶你破解...
    沈念sama閱讀 212,816評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件寝姿,死亡現(xiàn)場離奇詭異,居然都是意外死亡划滋,警方通過查閱死者的電腦和手機饵筑,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,729評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來处坪,“玉大人根资,你說我怎么就攤上這事⊥剑” “怎么了玄帕?”我有些...
    開封第一講書人閱讀 158,300評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長想邦。 經(jīng)常有香客問我裤纹,道長,這世上最難降的妖魔是什么丧没? 我笑而不...
    開封第一講書人閱讀 56,780評論 1 285
  • 正文 為了忘掉前任鹰椒,我火速辦了婚禮,結(jié)果婚禮上呕童,老公的妹妹穿的比我還像新娘漆际。我一直安慰自己,他們只是感情好拉庵,可當(dāng)我...
    茶點故事閱讀 65,890評論 6 385
  • 文/花漫 我一把揭開白布灿椅。 她就那樣靜靜地躺著,像睡著了一般钞支。 火紅的嫁衣襯著肌膚如雪茫蛹。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 50,084評論 1 291
  • 那天烁挟,我揣著相機與錄音婴洼,去河邊找鬼。 笑死撼嗓,一個胖子當(dāng)著我的面吹牛柬采,可吹牛的內(nèi)容都是我干的欢唾。 我是一名探鬼主播,決...
    沈念sama閱讀 39,151評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼粉捻,長吁一口氣:“原來是場噩夢啊……” “哼礁遣!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起肩刃,我...
    開封第一講書人閱讀 37,912評論 0 268
  • 序言:老撾萬榮一對情侶失蹤祟霍,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后盈包,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體沸呐,經(jīng)...
    沈念sama閱讀 44,355評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,666評論 2 327
  • 正文 我和宋清朗相戀三年呢燥,在試婚紗的時候發(fā)現(xiàn)自己被綠了崭添。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,809評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡叛氨,死狀恐怖呼渣,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情力试,我是刑警寧澤徙邻,帶...
    沈念sama閱讀 34,504評論 4 334
  • 正文 年R本政府宣布,位于F島的核電站畸裳,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏淳地。R本人自食惡果不足惜怖糊,卻給世界環(huán)境...
    茶點故事閱讀 40,150評論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望颇象。 院中可真熱鬧伍伤,春花似錦、人聲如沸遣钳。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蕴茴。三九已至劝评,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間倦淀,已是汗流浹背蒋畜。 一陣腳步聲響...
    開封第一講書人閱讀 32,121評論 1 267
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留撞叽,地道東北人姻成。 一個月前我還...
    沈念sama閱讀 46,628評論 2 362
  • 正文 我出身青樓插龄,卻偏偏與公主長得像,于是被迫代替她去往敵國和親科展。 傳聞我的和親對象是個殘疾皇子均牢,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,724評論 2 351

推薦閱讀更多精彩內(nèi)容