|
-- 會員 / 註冊 --
|
|
|
|
九陰真經 iOS黑客攻防秘籍 ( 簡體 字) |
作者:陳德 | 類別:1. -> 安全 -> 網路安全 -> 駭客攻擊與入侵 |
譯者: |
出版社:人民郵電出版社 | 3dWoo書號: 51555 詢問書籍請說出此書號!【缺書】 NT售價: 445 元 |
出版日:8/1/2019 |
頁數:348 |
光碟數:0 |
|
站長推薦: |
印刷: | 語系: ( 簡體 版 ) |
|
加入購物車 │加到我的最愛 (請先登入會員) |
ISBN:9787115516107 |
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 序 |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證) |
作者序: |
譯者序: |
前言: |
內容簡介:本書內容易于理解,可以讓讀者循序漸進、系統性地學習iOS 安全技術。書中首先細致地介紹了越獄環境的開發與逆向相關工具,然后依次講解了匯編基礎、動態調試、靜態分析、注入與hook、文件格式,最后為大家呈現了應用破解與應用保護、隱私獲取與取證、刷量與作弊、唯一設備ID、寫殼內幕等多個主題。 |
目錄:第 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 |
序: |
|