九陰真經:iOS黑客攻防秘籍

九陰真經:iOS黑客攻防秘籍

《九陰真經:iOS黑客攻防秘籍》是陳德所著的計算機網路工具類書籍,蘋果系統黑客攻防入門到實戰教程,iOS網路套用安全書籍。

基本介紹

  • 中文名:九陰真經:iOS黑客攻防秘籍
  • 作者:陳德
  • ISBN:9787115516107
  • 出版社:人民郵電出版社
  • 出版時間:2019年08月
  • 開本:16開
內容簡介,作品目錄,

內容簡介

本書內容易於理解,可以讓讀者循序漸進、系統性地學習iOS 安全技術。書中首先細緻地介紹了越獄環境的開發與逆向相關工具,然後依次講解了彙編基礎、動態調試、靜態分析、注入與hook、檔案格式,最後為大家呈現了套用破解與套用保護、隱私獲取與取證、刷量與作弊、唯一設備ID、寫殼內幕等多個主題。

作品目錄

第1章 iOS安全機制 1
1.1 套用的安裝源 1
1.2 沙盒 2
九陰真經:iOS黑客攻防秘籍
九陰真經:iOS黑客攻防秘籍
1.3 代碼簽名 3
1.4 用戶許可權隔離 4
1.5 數據執行保護 4
1.6 地址隨機化 5
1.7 後台程式 5
第2章 越獄環境開發工具的準備 8
2.1 越獄與Cydia 8
2.2 檔案管理工具 10
2.2.1 iFile:在手機上管理檔案 10
2.2.2 AFC2:通過USB管理手機檔案 10
2.3 命令行工具 11
2.3.1 MTerminal:手機中執行命令行 11
2.3.2 OpenSSH:在電腦上執行命令行 12
2.4 代碼注入測試工具 13
2.5 遠程調試工具 14
2.5.1 debugserver的配置與啟動 14
2.5.2 LLDB連線debugserver及其調試 15
2.5.3 通過USB連線SSH進行調試 17
2.6 反彙編工具 18
2.6.1 IDA 18
2.6.2 Hopper 21
2.7 其他工具 22
第3章 ARM彙編基礎 30
3.1 ARMv7 30
3.1.1 編寫32位彙編代碼 30
3.1.2 暫存器與棧 32
3.1.3 基礎指令 32
3.1.4 條件跳轉與循環 33
3.1.5 函式參數的調用過程 34
3.1.6 Thumb指令 35
3.2 ARM64 36
3.2.1 編寫64位的彙編代碼 36
3.2.2 暫存器與棧 36
3.2.3 函式參數的調用過程 37
3.3 在Xcode中使用內聯彙編 38
3.3.1 C/C++/Objective-C調用彙編函式 39
3.3.2 直接編寫內聯彙編 39
第4章 套用逆向分析 41
4.1 尋找main函式的入口 41
4.1.1 編寫一個測試程式 41
4.1.2 ARMv7的main函式入口 42
4.1.3 ARM64的main函式入口 43
4.2 動態調試 44
4.2.1 反彙編 44
4.2.2 添加斷點 45
4.2.3 列印數據 50
4.2.4 讀寫數據 51
4.2.5 修改程式的執行流程 52
4.2.6 查看信息 54
4.2.7 執行到上層調用棧 56
4.2.8 臨時修改變數的值 57
4.2.9 使用幫助與搜尋 57
4.3 靜態分析 58
4.3.1 通過字元串定位到代碼的引用位置 58
4.3.2 查看函式被調用的位置 62
4.3.3 重設基地址 63
4.3.4 修改代碼並保存檔案 64
4.3.5 使用IDA Python腳本 65
4.4 逆向分析實例 65
第5章 Tweak編寫技術 76
5.1 Theos開發環境的使用 76
5.1.1 編寫第一個Tweak 76
5.1.2 Theos工程檔案 80
5.2 逆向分析與編寫Tweak 83
5.2.1 逆向分析 83
5.2.2 編寫Tweak 91
第6章 注入與hook 94
6.1 注入動態庫 94
6.1.1 編寫動態庫 94
6.1.2 DynamicLibraries目錄 95
6.1.3 DYLD_INSERT_LIBRARIES環境變數 95
6.1.4 不越獄注入動態庫 96
6.2 hook 97
6.2.1 Cydia Substrate 97
6.2.2 Symbol Table 100
6.2.3 Method Swizzing 102
第7章 Mach-O檔案格式解析 104
7.1 Mach-O檔案格式 104
7.1.1 Fat頭部 106
7.1.2 Mach頭部 108
7.1.3 Load command 109
7.1.4 符號表與字元串表 122
7.2 CFString的運行過程 124
7.2.1 編寫測試代碼 124
7.2.2 CFString的數據結構 125
7.2.3 調試運行過程 126
7.3 Mach-O ARM函式綁定的調用過程分析 127
7.3.1 編寫測試代碼 127
7.3.2 分析ARMv7函式綁定的調用過程 128
7.3.3 分析ARM64函式綁定的調用過程 136
7.3.4 總結 140
7.4 靜態庫檔案格式 142
7.5 class-dump導出頭檔案的原理 143
7.6 關於Bitcode 147
7.6.1 Bitcode的作用 148
7.6.2 在Xcode中如何生成Bitcode 148
7.6.3 通過命令行編譯Bitcode 150
7.6.4 將Bitcode編譯成執行檔 152
7.6.5 編譯器相關參數 153
第8章 唯一設備ID 154
8.1 UDID與設備ID 154
8.2 IDFA 157
8.3 IDFV 157
8.4 OpenUDID 158
8.5 SimulateIDFA 159
8.6 MAC地址 160
8.7 ID的持久化存儲 163
8.8 DeviceToken 167
第9章 刷量與作弊 168
9.1 越獄環境下獲取root許可權 168
9.2 修改手機信息 169
9.2.1 修改基本信息 169
9.2.2 修改Wi-Fi信息 176
9.2.3 修改DeviceToken 177
9.2.4 修改位置信息 178
9.3 清除套用數據 179
9.4 清除Keychain 181
9.5 清除剪貼簿 183
9.6 發布套用 183
9.6.1 將App打包成deb 183
9.6.2 製作Cydia源發布套用 184
9.7 許可權的切換 185
9.8 變化IP位址 186
9.9 反越獄檢測 188
9.10 不用越獄修改任意位置信息 190
9.11 在兩個手機上同時登錄同一微信 192
9.12 微信的62數據 193
第10章 重要信息獲取與取證 195
10.1 通訊錄 195
10.2 簡訊 196
10.3 通話記錄 197
10.4 位置信息 197
10.5 網路信息 199
10.6 感測器信息 206
10.7 系統信息 210
10.8 硬體ID信息 214
10.9 已安裝的套用列表 216
10.10 使用idb分析泄露的數據 218
10.11 重要的檔案與目錄 223
10.12 libimobiledevice獲取手機信息 226
第11章 套用破解 228
11.1 重打包套用與多開 228
11.1.1 重打包套用 228
11.1.2 多開 235
11.2 套用重簽名 238
11.2.1 代碼簽名 238
11.2.2 授權機制 241
11.2.3 配置檔案 243
11.2.4 重簽名 244
11.3 抓包和改包 245
11.3.1 tcpdump抓包 245
11.3.2 Wireshark抓包 248
11.3.3 Charles抓取HTTPS數據包 250
11.3.4 Charles修改數據包與重發 254
11.3.5 突破SSL雙向認證 257
11.4 檔案監控 258
11.5 破解登錄驗證 259
11.5.1 得到HTTP傳輸的數據 259
11.5.2 得到解密的數據 260
11.5.3 破解方法 261
第12章 套用保護 262
12.1 函式名混淆 262
12.2 字元串加密 262
12.3 代碼混淆 265
12.3.1 inline內聯函式 265
12.3.2 obfuscator-llvm編譯器 266
12.3.3 Xcode集成配置obfuscator-llvm 268
12.3.4 Theos集成配置obfuscator-llvm 270
12.4 越獄檢測 270
12.4.1 判斷相關檔案是否存在 270
12.4.2 直接讀取相關檔案 271
12.4.3 使用stat函式判斷檔案 271
12.4.4 檢查動態庫列表 272
12.4.5 檢查環境變數 272
12.4.6 檢查函式是否被劫持 272
12.5 反盜版 273
12.5.1 檢查Bundle identifier 273
12.5.2 檢查來源是否為App Store 273
12.5.3 檢查重簽名 276
12.5.4 代碼校驗 277
12.6 反調試與反反調試 278
12.6.1 反調試方法 279
12.6.2 反反調試 281
12.7 反注入與反反注入 285
第13章 代碼入口點劫持 287
13.1 實現原理 287
13.2 編寫ShellCode 287
13.2.1 編寫ARM彙編 288
13.2.2 計算main函式的跳轉地址 292
13.2.3 最終的ShellCode 294
13.3 插入代碼 295
13.4 修改入口點 296
13.4.1 關於指令切換 296
13.4.2 ARMv7入口點 297
13.4.3 ARM64入口點 297
13.5 重簽名 298
第14章 寫殼內幕 300
14.1 判斷檔案格式類型 300
14.2 代碼的插入 301
14.3 修改程式入口點 303
14.4 Shellcode如何調用函式 304
14.5 編寫和調試Shellcode 308
14.5.1 ARMv7 Shellcode 309
14.5.2 ARM64 Shellcode 316
14.6 總結 329
第15章 系統相關 331
15.1 Cydia的相關問題及修複方法 331
15.2 降級傳說 334
15.3 訪問限制密碼的安全隱患 335
15.4 掃碼線上安裝套用 338
15.5 CVE-2018-4407遠程溢出漏洞 344
15.6 解決磁碟空間不足的問題 345
附錄A 書中用到的工具列表 347

相關詞條

熱門詞條

聯絡我們