《iOS應用逆向工程(第2版)》高清電子書 PDF

內容簡介  · · · · · ·

你是否曾因應用上線的第一天即遭破解而無奈苦惱,想要加以防範,卻又束手無策?

你是否曾爲某一應用深深折服,想要借鑑學習,卻又無從下手?

你是否已不滿足於public API,想要進軍Cydia開發,卻又求學無門?

你是否已產生“不識Apple真面目,只緣身在App Store中”的危機感,想要通過閱讀來一窺這冰山一角外的整個北極,卻又找不到合適的書?

你是否已經因無法跨越開發路上的重重障礙而斷了研究iOS逆向工程的念頭?Are you a quitter?看完本書,相信你會有全新的感受!

全球第一本講解iOS8應用逆向工程的實戰手冊,作者毫無保留地分享了數年來在iOS逆向工程領域的經驗。

內容系統深入,邏輯緊密,實戰性強,從iOS系統架構等理論出發,以多個實例貫穿全書,闡述class-dump、Theos、Cycript、Reveal、IDA、LLDB等常用工具的使用,通俗易懂。

總結提煉出一套從UI觀察切入代碼分析的iOS應用逆向工程方法論,授人以漁。

作者簡介  · · · · · ·

沙梓社,iOS越獄社區骨灰級活躍份子,思路開闊思想傳統,對蘋果的研究癡迷到連女朋友都沒有的地步。作品見諸於Cydia,有SMSNinja、LowPowerBanner、DimInCall等。

吳航,十餘年程序開發經驗的資深碼農,歷經方正、NEC、Juniper等國內國外知名IT企業,2011年進入iOS領域,專注於iOS app/逆向等方向的開發,主要作品有安全管家、知乎月刊HD等。

目錄  · · · · · ·推薦序一
推薦序二
第2版序
第1版序
前言
第一部分 概 念 篇
第1章 iOS逆向工程簡介 3
1.1 iOS逆向工程的要求 3
1.2 iOS應用逆向工程的作用 4
1.2.1 安全相關的iOS逆向工程 5
1.2.2 開發相關的iOS逆向工程 6
1.3 iOS應用逆向工程的過程 7
1.3.1 系統分析 7
1.3.2 代碼分析 8
1.4 iOS應用逆向工程的工具 8
1.4.1 監測工具 9
1.4.2 反彙編工具 9
1.4.3 調試工具 10
1.4.4 開發工具 11
1.5 小結 11
第2章 越獄iOS平臺簡介 12
2.1 iOS系統結構 12
2.1.1 iOS目錄結構簡介 13
2.1.2 iOS文件權限簡介 16
2.2 iOS二進制文件類型 17
2.2.1 Application 17
2.2.2 Dynamic Library 20
2.2.3 Daemon 20
2.3 小結 22
第二部分 工 具 篇
第3章 OSX工具集 25
3.1 class-dump 25
3.2 Theos 27
3.2.1 Theos簡介 27
3.2.2 安裝Theos 28
3.2.3 Theos用法介紹 30
3.2.4 Theos開發tweak示例 51
3.3 Reveal 53
3.4 IDA 57
3.4.1 IDA簡介 57
3.4.2 IDA使用說明 58
3.4.3 IDA分析示例 68
3.5 iFunBox 71
3.6 dyld_decache 72
3.7 小結 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簡介 89
4.3.2 debugserver簡介 90
4.3.3 配置debugserver 90
4.3.4 用debugserver啓動或附加進程 91
4.3.5 LLDB的使用說明 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 小結 115
第三部分 理 論 篇
第5章 Objective-C相關的iOS逆向理論基礎 119
5.1 tweak在Objective-C中的工作方式 119
5.2 tweak 的編寫套路 121
5.2.1 尋找靈感 121
5.2.2 定位目標文件 123
5.2.3 定位目標函數 127
5.2.4 測試函數功能 129
5.2.5 解析函數參數 130
5.2.6 class-dump的侷限性 133
5.3 實例演示 133
5.3.1 得到靈感 134
5.3.2 定位文件 135
5.3.3 定位函數 143
5.3.4 測試函數 145
5.3.5 編寫實例代碼 145
5.4 小結 147
第6章 ARM彙編相關的iOS逆向理論基礎 148
6.1 ARM彙編基礎 148
6.1.1 基本概念 149
6.1.2 ARM/THUMB指令解讀 152
6.1.3 ARM調用規則 159
6.2 tweak的編寫套路 161
6.2.1 從現象切入App,找出UI函數 162
6.2.2 以UI函數爲起點,尋找目標函數 173
6.3 LLDB的使用技巧 203
6.3.1 尋找函數調用者 203
6.3.2 更改進程執行邏輯 208
6.4 小結 211
第四部分 實 戰 篇
第7章 實戰1:Characount for Notes 8 215
7.1 備忘錄 215
7.2 搭建tweak原型 216
7.2.1 定位Notes的可執行文件 217
7.2.2 class-dump出MobileNotes的頭文件 218
7.2.3 用Cycript找到閱覽界面及其controller 218
7.2.4 從NoteDisplayController找到當前note對象 220
7.2.5 找到實時監測note內容變化的方法 223
7.3 逆向結果整理 227
7.4 編寫tweak 228
7.4.1 用Theos新建tweak工程“CharacountForNotes8” 228
7.4.2 構造CharacountForNotes8.h 229
7.4.3 編輯Tweak.xm 229
7.4.4 編輯Makefile及control 230
7.4.5 測試 230
7.5 小結 233
第8章 實戰2:自動將指定電子郵件標記爲已讀 234
8.1 電子郵件 234
8.2 搭建tweak原型 235
8.2.1 定位Mail的可執行文件並class-dump它 237
8.2.2 把頭文件導入Xcode 238
8.2.3 用Cycript找到Mailboxes界面的controller 239
8.2.4 用Reveal和Cycript找到All Inboxes界面的delegate 240
8.2.5 在MailboxContentViewController中定位“刷新完成”的響應函數 242
8.2.6 從MessageMegaMall中拿到所有郵件 246
8.2.7 從MFLibraryMessage中提取發件人地址,用MessageMegaMall標記
已讀 248
8.3 逆向結果整理 254
8.4 編寫tweak 255
8.4.1 用Theos新建tweak工程“iOSREMailMarker” 255
8.4.2 構造iOSREMailMarker.h 255
8.4.3 編輯Tweak.xm 256
8.4.4 編輯Makefile及control 257
8.4.5 測試 258
8.5 小結 259
第9章 實戰3:保存與分享微信小視頻 260
9.1 微信 260
9.2 搭建tweak原型 261
9.2.1 觀察小視頻播放窗口,尋找逆向切入點 261
9.2.2 class-dump獲取頭文件 262
9.2.3 把頭文件導入Xcode 263
9.2.4 用Reveal找到小視頻播放窗口 264
9.2.5 找到長按手勢響應函數 265
9.2.6 用Cycript定位小視頻的controller 270
9.2.7 從WCTimeLineViewController找到小視頻對象 272
9.2.8 從WCContentItemViewTemplateNewSight中提取WCDataItem對象 276
9.2.9 從WCDataItem中提取目標信息 278
9.3 逆向結果整理 288
9.4 編寫tweak 289
9.4.1 用Theos新建tweak工程“iOSREWCVideoDownloader” 289
9.4.2 構造iOSREWCVideoDownloader.h 289
9.4.3 編輯Tweak.xm 290
9.4.4 編輯Makefile及control 292
9.4.5 測試 293
9.5 彩蛋放送 294
9.5.1 從UIMenuItem切入,找到小視頻對象 294
9.5.2 微信歷史版本頭文件個數變遷 295
9.6 小結 298
第10章 實戰4:檢測與發送iMessage 299
10.1 iMessage 299
10.2 檢測一個號碼或郵箱地址是否支持iMessage 299
10.2.1 觀察MobileSMS界面元素的變化,尋找逆向切入點 299
10.2.2 用Cycript找出placeholder 302
10.2.3 用IDA和LLDB找出placeholderText的一重數據源 308
10.2.4 用IDA和LLDB找出placeholderText的N重數據源 311
10.2.5 還原原始數據源生成placeholderText的過程 340
10.3 發送iMessage 341
10.3.1 從MobileSMS界面元素尋找逆向切入點 341
10.3.2 用Cycript找出“Send”按鈕的響應函數 342
10.3.3 在響應函數中尋找可疑的發送操作 344
10.4 逆向結果整理 369
10.5 編寫tweak 370
10.5.1 用Theos新建tweak工程“iOSREMadridMessenger” 370
10.5.2 構造iOSREMadridMessenger.h 371
10.5.3 編輯Tweak.xm 372
10.5.4 編輯Makefile及control 372
10.5.5 用Cycript測試 373
10.6 小結 373
越獄開發一覽 375
沙箱逃脫 380
編寫tweak——新時代的hacking 382

下載地址:http://www.ioshacker.net/forum.php?mod=viewthread&tid=32&extra=page%3D1

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章