九陰真經 iOS黑客攻防秘籍
陳德
- 出版商: 人民郵電
- 出版日期: 2019-08-01
- 定價: $534
- 售價: 8.5 折 $454
- 語言: 簡體中文
- ISBN: 7115516103
- ISBN-13: 9787115516107
-
相關分類:
Apple Developer、資訊安全、駭客 Hack
已絕版
買這商品的人也買了...
-
$480$408 -
$254iOS Auto Layout 開發秘籍, 2/e
-
$680$612 -
$1,320CraftinCrafting the InfoSec Playbook: Security Monitoring and Incident Response Master Plan (Paperback)
-
$800$720 -
$1,980$1,881 -
$480$379 -
$1,750$1,663 -
$301騰訊 iOS 測試實踐
-
$780$663 -
$580$458 -
$354$336 -
$207生成對抗網絡入門指南 (Generative adversarial Networks)
-
$1,280$998 -
$505C++ 黑客編程揭秘與防範, 3/e
-
$331Python 深度學習實戰:基於 TensorFlow 和 Keras 的聊天機器人以及人臉、物體和語音識別
-
$505iOS 性能優化實戰
-
$1,040$988 -
$520$442 -
$680$537 -
$658iOS 應用逆向與安全之道
-
$1,990$1,891 -
$880$695 -
$454iOS 全埋點解決方案
-
$505Kali Linux 高級滲透測試, 3/e (Mastering Kali Linux for Advanced Penetration Testing: Secure your network with Kali Linux 2019.1 – the ultimate white hat hackers' toolkit, 3/e)
相關主題
商品描述
本書內容易於理解,可以讓讀者循序漸進、系統性地學習iOS 安全技術。書中首先細致地介紹了越獄環境的開發與逆向相關工具,然後依次講解了匯編基礎、動態調試、靜態分析、註入與hook、文件格式,最後為大家呈現了應用破解與應用保護、隱私獲取與取證、刷量與作弊、唯一設備ID、寫殼內幕等多個主題。
作者簡介
陳德
安全專家,軟件安全研究員。2007年開始自學安全技術,在安全領域精通多方面技術,個人作品有eXfaker、FileMonitorKit和SystemKit等。
目錄大綱
第1章iOS安全機制1
1.1應用的安裝源1
1.2沙盒2
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