《iOS应用逆向工程(第2版)》高清电子书 PDF
內(nèi)容簡(jiǎn)介??· · · · · ·
你是否曾因應(yīng)用上線(xiàn)的第一天即遭破解而無(wú)奈苦惱,想要加以防范,卻又束手無(wú)策?
你是否曾為某一應(yīng)用深深折服,想要借鑒學(xué)習(xí),卻又無(wú)從下手?
你是否已不滿(mǎn)足于public API,想要進(jìn)軍Cydia開(kāi)發(fā),卻又求學(xué)無(wú)門(mén)?
你是否已產(chǎn)生“不識(shí)Apple真面目,只緣身在App Store中”的危機(jī)感,想要通過(guò)閱讀來(lái)一窺這冰山一角外的整個(gè)北極,卻又找不到合適的書(shū)?
你是否已經(jīng)因無(wú)法跨越開(kāi)發(fā)路上的重重障礙而斷了研究iOS逆向工程的念頭?Are you a quitter?看完本書(shū),相信你會(huì)有全新的感受!
全球第一本講解iOS8應(yīng)用逆向工程的實(shí)戰(zhàn)手冊(cè),作者毫無(wú)保留地分享了數(shù)年來(lái)在iOS逆向工程領(lǐng)域的經(jīng)驗(yàn)。
內(nèi)容系統(tǒng)深入,邏輯緊密,實(shí)戰(zhàn)性強(qiáng),從iOS系統(tǒng)架構(gòu)等理論出發(fā),以多個(gè)實(shí)例貫穿全書(shū),闡述class-dump、Theos、Cycript、Reveal、IDA、LLDB等常用工具的使用,通俗易懂。
總結(jié)提煉出一套從UI觀(guān)察切入代碼分析的iOS應(yīng)用逆向工程方法論,授人以漁。
作者簡(jiǎn)介??· · · · · ·
沙梓社,iOS越獄社區(qū)骨灰級(jí)活躍份子,思路開(kāi)闊思想傳統(tǒng),對(duì)蘋(píng)果的研究癡迷到連女朋友都沒(méi)有的地步。作品見(jiàn)諸于Cydia,有SMSNinja、LowPowerBanner、DimInCall等。
吳航,十余年程序開(kāi)發(fā)經(jīng)驗(yàn)的資深碼農(nóng),歷經(jīng)方正、NEC、Juniper等國(guó)內(nèi)國(guó)外知名IT企業(yè),2011年進(jìn)入iOS領(lǐng)域,專(zhuān)注于iOS app/逆向等方向的開(kāi)發(fā),主要作品有安全管家、知乎月刊HD等。
目錄??· · · · · ·推薦序一
推薦序二
第2版序
第1版序
前言
第一部分 概 念 篇
第1章 iOS逆向工程簡(jiǎn)介 3
1.1 iOS逆向工程的要求 3
1.2 iOS應(yīng)用逆向工程的作用 4
1.2.1 安全相關(guān)的iOS逆向工程 5
1.2.2 開(kāi)發(fā)相關(guān)的iOS逆向工程 6
1.3 iOS應(yīng)用逆向工程的過(guò)程 7
1.3.1 系統(tǒng)分析 7
1.3.2 代碼分析 8
1.4 iOS應(yīng)用逆向工程的工具 8
1.4.1 監(jiān)測(cè)工具 9
1.4.2 反匯編工具 9
1.4.3 調(diào)試工具 10
1.4.4 開(kāi)發(fā)工具 11
1.5 小結(jié) 11
第2章 越獄iOS平臺(tái)簡(jiǎn)介 12
2.1 iOS系統(tǒng)結(jié)構(gòu) 12
2.1.1 iOS目錄結(jié)構(gòu)簡(jiǎn)介 13
2.1.2 iOS文件權(quán)限簡(jiǎn)介 16
2.2 iOS二進(jìn)制文件類(lèi)型 17
2.2.1 Application 17
2.2.2 Dynamic Library 20
2.2.3 Daemon 20
2.3 小結(jié) 22
第二部分 工 具 篇
第3章 OSX工具集 25
3.1 class-dump 25
3.2 Theos 27
3.2.1 Theos簡(jiǎn)介 27
3.2.2 安裝Theos 28
3.2.3 Theos用法介紹 30
3.2.4 Theos開(kāi)發(fā)tweak示例 51
3.3 Reveal 53
3.4 IDA 57
3.4.1 IDA簡(jiǎn)介 57
3.4.2 IDA使用說(shuō)明 58
3.4.3 IDA分析示例 68
3.5 iFunBox 71
3.6 dyld_decache 72
3.7 小結(jié) 73
第4章 iOS工具集 74
4.1 CydiaSubstrate 74
4.1.1 MobileHooker 74
4.1.2 MobileLoader 84
4.1.3 Safe mode 84
4.2 Cycript 85
4.3 LLDB與debugserver 89
4.3.1 LLDB簡(jiǎn)介 89
4.3.2 debugserver簡(jiǎn)介 90
4.3.3 配置debugserver 90
4.3.4 用debugserver啟動(dòng)或附加進(jìn)程 91
4.3.5 LLDB的使用說(shuō)明 92
4.3.6 LLDB使用小提示 107
4.4 dumpdecrypted 107
4.5 OpenSSH 111
4.6 usbmuxd 112
4.7 iFile 113
4.8 MTerminal 114
4.9 syslogd to /var/log/syslog 115
4.10 小結(jié) 115
第三部分 理 論 篇
第5章 Objective-C相關(guān)的iOS逆向理論基礎(chǔ) 119
5.1 tweak在Objective-C中的工作方式 119
5.2 tweak 的編寫(xiě)套路 121
5.2.1 尋找靈感 121
5.2.2 定位目標(biāo)文件 123
5.2.3 定位目標(biāo)函數(shù) 127
5.2.4 測(cè)試函數(shù)功能 129
5.2.5 解析函數(shù)參數(shù) 130
5.2.6 class-dump的局限性 133
5.3 實(shí)例演示 133
5.3.1 得到靈感 134
5.3.2 定位文件 135
5.3.3 定位函數(shù) 143
5.3.4 測(cè)試函數(shù) 145
5.3.5 編寫(xiě)實(shí)例代碼 145
5.4 小結(jié) 147
第6章 ARM匯編相關(guān)的iOS逆向理論基礎(chǔ) 148
6.1 ARM匯編基礎(chǔ) 148
6.1.1 基本概念 149
6.1.2 ARM/THUMB指令解讀 152
6.1.3 ARM調(diào)用規(guī)則 159
6.2 tweak的編寫(xiě)套路 161
6.2.1 從現(xiàn)象切入App,找出UI函數(shù) 162
6.2.2 以UI函數(shù)為起點(diǎn),尋找目標(biāo)函數(shù) 173
6.3 LLDB的使用技巧 203
6.3.1 尋找函數(shù)調(diào)用者 203
6.3.2 更改進(jìn)程執(zhí)行邏輯 208
6.4 小結(jié) 211
第四部分 實(shí) 戰(zhàn) 篇
第7章 實(shí)戰(zhàn)1:Characount for Notes 8 215
7.1 備忘錄 215
7.2 搭建tweak原型 216
7.2.1 定位Notes的可執(zhí)行文件 217
7.2.2 class-dump出MobileNotes的頭文件 218
7.2.3 用Cycript找到閱覽界面及其controller 218
7.2.4 從NoteDisplayController找到當(dāng)前note對(duì)象 220
7.2.5 找到實(shí)時(shí)監(jiān)測(cè)note內(nèi)容變化的方法 223
7.3 逆向結(jié)果整理 227
7.4 編寫(xiě)tweak 228
7.4.1 用Theos新建tweak工程“CharacountForNotes8” 228
7.4.2 構(gòu)造CharacountForNotes8.h 229
7.4.3 編輯Tweak.xm 229
7.4.4 編輯Makefile及control 230
7.4.5 測(cè)試 230
7.5 小結(jié) 233
第8章 實(shí)戰(zhàn)2:自動(dòng)將指定電子郵件標(biāo)記為已讀 234
8.1 電子郵件 234
8.2 搭建tweak原型 235
8.2.1 定位Mail的可執(zhí)行文件并class-dump它 237
8.2.2 把頭文件導(dǎo)入Xcode 238
8.2.3 用Cycript找到Mailboxes界面的controller 239
8.2.4 用Reveal和Cycript找到All Inboxes界面的delegate 240
8.2.5 在MailboxContentViewController中定位“刷新完成”的響應(yīng)函數(shù) 242
8.2.6 從MessageMegaMall中拿到所有郵件 246
8.2.7 從MFLibraryMessage中提取發(fā)件人地址,用MessageMegaMall標(biāo)記
已讀 248
8.3 逆向結(jié)果整理 254
8.4 編寫(xiě)tweak 255
8.4.1 用Theos新建tweak工程“iOSREMailMarker” 255
8.4.2 構(gòu)造iOSREMailMarker.h 255
8.4.3 編輯Tweak.xm 256
8.4.4 編輯Makefile及control 257
8.4.5 測(cè)試 258
8.5 小結(jié) 259
第9章 實(shí)戰(zhàn)3:保存與分享微信小視頻 260
9.1 微信 260
9.2 搭建tweak原型 261
9.2.1 觀(guān)察小視頻播放窗口,尋找逆向切入點(diǎn) 261
9.2.2 class-dump獲取頭文件 262
9.2.3 把頭文件導(dǎo)入Xcode 263
9.2.4 用Reveal找到小視頻播放窗口 264
9.2.5 找到長(zhǎng)按手勢(shì)響應(yīng)函數(shù) 265
9.2.6 用Cycript定位小視頻的controller 270
9.2.7 從WCTimeLineViewController找到小視頻對(duì)象 272
9.2.8 從WCContentItemViewTemplateNewSight中提取WCDataItem對(duì)象 276
9.2.9 從WCDataItem中提取目標(biāo)信息 278
9.3 逆向結(jié)果整理 288
9.4 編寫(xiě)tweak 289
9.4.1 用Theos新建tweak工程“iOSREWCVideoDownloader” 289
9.4.2 構(gòu)造iOSREWCVideoDownloader.h 289
9.4.3 編輯Tweak.xm 290
9.4.4 編輯Makefile及control 292
9.4.5 測(cè)試 293
9.5 彩蛋放送 294
9.5.1 從UIMenuItem切入,找到小視頻對(duì)象 294
9.5.2 微信歷史版本頭文件個(gè)數(shù)變遷 295
9.6 小結(jié) 298
第10章 實(shí)戰(zhàn)4:檢測(cè)與發(fā)送iMessage 299
10.1 iMessage 299
10.2 檢測(cè)一個(gè)號(hào)碼或郵箱地址是否支持iMessage 299
10.2.1 觀(guān)察MobileSMS界面元素的變化,尋找逆向切入點(diǎn) 299
10.2.2 用Cycript找出placeholder 302
10.2.3 用IDA和LLDB找出placeholderText的一重?cái)?shù)據(jù)源 308
10.2.4 用IDA和LLDB找出placeholderText的N重?cái)?shù)據(jù)源 311
10.2.5 還原原始數(shù)據(jù)源生成placeholderText的過(guò)程 340
10.3 發(fā)送iMessage 341
10.3.1 從MobileSMS界面元素尋找逆向切入點(diǎn) 341
10.3.2 用Cycript找出“Send”按鈕的響應(yīng)函數(shù) 342
10.3.3 在響應(yīng)函數(shù)中尋找可疑的發(fā)送操作 344
10.4 逆向結(jié)果整理 369
10.5 編寫(xiě)tweak 370
10.5.1 用Theos新建tweak工程“iOSREMadridMessenger” 370
10.5.2 構(gòu)造iOSREMadridMessenger.h 371
10.5.3 編輯Tweak.xm 372
10.5.4 編輯Makefile及control 372
10.5.5 用Cycript測(cè)試 373
10.6 小結(jié) 373
越獄開(kāi)發(fā)一覽 375
沙箱逃脫 380
編寫(xiě)tweak——新時(shí)代的hacking 382
下載地址:http://www.ioshacker.net/forum.php?mod=viewthread&tid=32&extra=page%3D1
總結(jié)
以上是生活随笔為你收集整理的《iOS应用逆向工程(第2版)》高清电子书 PDF的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 《iOS 应用逆向工程:分析与实战》 p
- 下一篇: iTunes 降级安装 12.6