iOS應用逆向與安全 iOS应用逆向与安全

劉培慶

  • 出版商: 電子工業出版社
  • 出版日期: 2018-06-01
  • 定價: $510
  • 售價: $510
  • 貴賓價: 9.5$485
  • 語言: 簡體中文
  • 頁數: 404
  • 裝訂: 平裝
  • ISBN: 7121340992
  • ISBN-13: 9787121340994
  • 相關分類: Apple Developer

立即出貨

買這商品的人也買了...

相關活動主題

20180802 %e6%9c%80%e6%96%b0%e5%88%b0%e8%b2%a8small

商品描述

本書從正向開發、工具的使用、逆向實戰及安全保護等方面,對iOS應用的逆向與安全進行了講解。本書內容包括基本概念、逆向環境的準備、常用逆向分析工具、類的結構、App簽名、Mach-O文件格式、hook原理等,並通過在越獄平臺和非越獄平臺上的逆向分析實例,帶領讀者學習逆向分析的思路和方法。在應用安全及保護方面,本書內容涉及網絡傳輸、安全檢測、代碼混淆等。

作者簡介

作者 : 劉培慶 

1.15年加入網易從事iOS安全保護相關工程,開發了一套iOS加固保護的工具

2.16年從事移動端相關開發,並在網易云課堂錄製了《iOS逆向與安全》的課程。

3.17年上半年從事前端開發和移動端性能監控工作,現繼續回安全部門從事iOS加固保護的工作。

目錄大綱

第1章概述
1.1逆向工程簡介1 
1.1.1 iOS逆向學習基礎1 
1.1.2 iOS逆向的流程1 
1.1.3 iOS逆向使用的工具2 
1.1.4 iOS逆向的應用場景2 
1.2應用面臨的安全風險2 
1.2.1靜態修改文件3 
1.2.2動態篡改邏輯3 
1.2.3協議分析3 
1.3應用保護手段3 
1.3.1數據加密3 
1.3.2程序混淆4 
1.3.3安全監測4 
1.4本書工具4 
1.4. 1效率工具4 
1.4.2實用工具5 
1.4.3逆向工具5 

第2章越獄設備
2.1什麼是越獄6 
2.2 Cydia 6 
2.3 SSH 7 
2.3.1安裝OpenSSH 8 
2.3.2配置dropbear 10 
2.3.3修改默認密碼11 
2.3.4公鑰登錄11 
2.3.5通過USB登錄13 
2.4 iOS系統結構14 
2.4.1文件目錄15 
2.4.2文件權限17 
2.5 Cydia Substrate 18 
2.5.1 MobileHooker 19
2.5.2 MobileLoader 19 
2.5.3 Safe mode 20 
2.6越獄必備工具21 
2.6.1 adv-cmds 21 
2.6.2 appsync 21 
2.6.3 iFile 21 
2.6.4 scp 22 

第3章逆向工具詳解
3.1應用解密23 
3.1 .1 dumpdecrypted 23 
3.1.2 Clutch 28 
3.1.3小結30 
3.2 class-dump 30 
3.2.1 class-dump的使用30 
3.2.2 class-dump的原理33 
3.2.3 OC和Swift混編40 
3.3 Reveal 41 
3.3 .1開發集成Reveal 41 
3.3.2越獄注入Reveal 42 
3.4 Cycript 43 
3.4.1開發集成Cycript 44 
3.4.2使用Cycript越獄45 
3.4.3使用Cycript分析應用46 
3.4.4 Cycript的高級用法49 
3.5抓包52 
3.5.1 Charles抓包53 
3.5.2修改網絡請求55 
3.5.3 HTTPS抓包59
3.5.4 Wireshark抓包60 

第4章開發儲備
4.1 App的結構及構建66 
4.1.1獲取應用包66 
4.1.2應用包的格式71 
4.1.3應用的構建過程72 
4.2界面結構和事件傳遞76 
4.2 .1界面的組成76 
4.2.2界面事件的響應79 
4.3類與方法83 
4.3.1類與方法的底層實現84 
4.3.2運行時類的結構89 
4.3.3消息機制91 
4.3.4 runtime的應用94 
4.4 App簽名98 
4.4.1配置Xcode簽名98 
4.4.2 App簽名的原理100 
4.4.3重簽名107 

第5章分析與調試
5.1靜態分析109 
5.1.1 Hopper 109 
5.1.2 IDA 118 
5.1.3靜態庫分析125 
5.2動態調試128 
5.2.1 LLDB調試128 
5.2.2 LLDB解密141 
5.2.3用Xcode調試第三方應用144 
5.2.4 LLDB的高級調試技巧151 
5.3 Theos 167 
5.3.1 Theos的安裝168
5.3.2 Theos的基本應用168 
5.3.3 Theos的高級應用172 
5.4 MonkeyDev 177 
5.4.1安裝MonkeyDev 178 
5.4.2 Logos Tweak 179 
5.4.3 CaptainHook Tweak 181 
5.4.4 Command-line Tool 185 

第6章逆向進階
6.1程序加載186 
6.1.1 dyld簡介186 
6.1.2 dyld加載流程187 
6.2 Mach-O文件格式206 
6.2.1 Mach-O文件的基本格式206 
6.2.2 Mach-O頭部208 
6.2.3 Load Command 210 
6.2.4虛擬地址和文件偏移214 
6.2.5懶加載和非懶加載217 
6.2.6 Code Signature 223 
6.3 ARM彙編228 
6.3.1 ARM架構和指令集228 
6.3.2 AArch64寄存器229 
6.3.3指令集編碼231 
6.3.4 AArch64指令233 
6.3.5棧和方法236 
6.3.6 Objective-C彙編245 
6.4 hook 247 
6.4.1 Method Swizzle 247
6.4.2 fishhook 248 
6.4.3 Cydia Substrate 253 
6.4.4 Swift hook 256 
6.5動態庫259 
6.5.1編譯和注入260 
6.5.2導出和隱藏符號260 
6.5.3 C++和OC動態庫263 
6.5.4其他常見問題267 

第7章實戰演練
7.1越獄設備分析270 
7.1.1分析準備270 
7.1.2開始分析272 
7.1.3編寫Tweak 284 
7.1.4安裝與小結287 
7.2非越獄設備分析288 
7.2.1創建MonkeyDev項目288 
7.2.2非越獄逆向實戰291 
7.2.3編寫hook代碼303 
7.2.4製作非越獄Pod 304 
7.2.5小結308 
7.3 Frida實戰應用309 
7.3.1 Frida的安裝309 
7.3.2 Frida的初級使用311 
7.3. 3 Frida的高級使用319 
7.3.4小結326 

第8章安全保護
8.1數據加密327 
8.1.1本地存儲加密328 
8.1.2網絡傳輸加密328
8.1.3字符串加密333 
8.2靜態混淆341 
8.2.1宏定義342 
8.2.2二進制修改347 
8.3動態保護349 
8.3.1反調試349 
8.3.2反反調試352 
8.3.3反注入359 
8.3.4 hook檢測360 
8.3.5完整性校驗361 
8.4代碼混淆363 
8.4.1什麼是LLVM 363 
8.4.2下載和編譯LLVM 364 
8.4.3開發和調試Pass 366 
8.4.4 OLLVM源代碼分析373 
8.4.5替換Xcode編譯器379 
8.4.6靜態庫混淆389 
8.5本章總結390