《iOS套用逆向工程:分析與實戰》是2014年機械工業出版社出版的圖書,作者是沙梓、社吳航、劉瑾。本書內容以工具+代碼的形式全面、系統地展開知識點,由淺入深,圖文並茂地帶著讀者一步步探索常規iOSApp之外的世界。
基本介紹
- 書名:iOS套用逆向工程:分析與實戰
- 作者:沙梓、社吳航、劉瑾
- 譯者:9787111450726
- 類別:軟硬體開發
- 定價:69.00元
- 出版社:機械工業出版社
- 出版時間:2014-01-01
- 著作權方:北京華章圖文信息有限公司
圖書簡介,編輯推薦,作者簡介,圖書目錄,
圖書簡介
本書是iOS套用逆向工程方面的權威著作,三位作者都是iOS領域內的專家,擁有紮實的理論知識和豐富的實踐經驗。本書分為四大部分,分別是概念、工具、理論和實戰。前三部分介紹iOS逆向分析領域的背景、知識體系,以及相應的工具集、理論知識;第四部分則通過4個實際案例來將前面的知識以實戰的方式展開。第一部分為概念篇,簡單介紹iOS逆向分析的概念以及iOS平台系統架構。第二部分為工具篇,介紹一系列基於Mac和iOS平台的配套工具,並且重點講解其中的class-dump、Theos、Reveal、IDA、GDB等5個工具的使用方法,前3個側重於使用,後2個側重於分析。第三部分為理論篇,主要講述iOS逆向/越獄方向的進階必備理論知識。第四部分為實戰篇,通過對3個AppStoreApp及1個系統App進行逆向分析的實戰操作,讓讀者能夠了解並同步實踐已掌握的知識。
編輯推薦
國內第一本講解iOS套用逆向工程的實戰手冊,作者毫無保留地分享了數年來在iOS逆向領域的經驗。內容系統深入,實戰性強,從iOS系統架構、檔案類型等逆向理論出發,通過多個實用案例,結合Class-dump、Theos、Cycript、Reveal、IDA、GDB等最常用逆向工具闡述了對iOS套用進行逆向分析的思路、方法和技巧。
作者簡介
沙梓社,碩士畢業一年,iOS越獄社區骨灰級活躍份子,思路開闊思想傳統,對蘋果的研究痴迷到連女朋友都沒有的地步。作品見諸於Cydia,有SMSNinja、LowPowerBanner、DimInCall等。吳航,十餘年程式開發經驗的資深碼農,歷經方正、NEC、Juniper等國內國外知名IT企業,2011年進入iOS領域,專注於iOSapp/逆向等方向的開發,主要作品有安全管家、有康醫生、知乎月刊HD等。劉瑾,北京電子科技學院計算機科學與技術系講師,教課之餘主要從事移動客戶端的安全應用程式設計和嵌入式應用程式開發研究,參與編著及翻譯多本相關教材,承擔過多個項目的研發工作,多次獲得各項教學科研獎項。
圖書目錄
推薦序一
推薦序二
自序
前言
第一部分 概念篇
第1 章 iOS 逆向工程簡介
1.1 iOS 軟體逆向工程的要求
1.2 iOS 軟體逆向工程的作用
1.2.1 與安全相關的iOS 逆向工程
1.2.2 與開發相關的iOS 逆向工程
1.3 iOS 軟體逆向工程的一般過程
1.3.1 系統分析
1.3.2 代碼分析
1.4 iOS 軟體逆向工程用到的工具
1.4.1 監測工具
1.4.2 開發工具
1.4.3 反編譯器
1.4.4 調試器
1.5 小結
第2 章 越獄iOS 平台簡介
2.1 iOS 系統架構
2.1.1 iOS 目錄結構
2.1.2 iOS 檔案許可權
2.2 iOS 程式類型
2.2.1 Application
2.2.2 Dynamic Library
2.2.3 Daemon
2.3 小結
第二部分 工具篇
第3 章 Mac 工具集
3.1 class-dump
3.1.1 class-dump 介紹及下載
3.1.2 class-dump 使用演示
3.1.3 關於class-dump 的補充說明
3.2 Theos
3.2.1 Theos 簡介
3.2.2 Theos 安裝及編譯
3.2.3 Theos 用法簡介
3.2.4 Theos 開發tweak 示例
3.3 Reveal
3.3.1 Reveal 簡介
3.3.2 Reveal 安裝及功能擴展
3.4 IDA
3.4.1 IDA 簡介
3.4.2 IDA 使用說明
3.4.3 IDA 分析示例
3.5 其他工具
3.5.1 iTools
3.5.2 dyld_decache
3.5.3 MesaSQLite
3.6 小結
第4 章 iOS 工具集
4.1 SBSettings
4.2 MobileSubstrate
4.3 OpenSSH
4.4 GDB
4.4.1 GDB 簡介
4.4.2 GDB 的使用說明
4.5 Cycript
4.6 其他常用工具
4.6.1 BigBoss RecommendedTools
4.6.2 AppCrackr
4.6.3 iFile
4.6.4 MobileTerminal
4.6.5 Vi IMproved
4.6.6 SQLite
4.6.7 top
4.6.8 syslogd
4.7 小結
第三部分 理論篇
第5 章 Objective-C 相關的iOS逆向理論基礎
5.1 tweak 的作用原理
5.1.1 Objective-C 語言的特性
5.1.2 MobileSubstrate
5.2 tweak 的編寫套路
5.2.1 靈感的來源
5.2.2 分析檔案,尋找切入點
5.2.3 定位目標函式
5.2.4 測試函式功能
5.2.5 解析函式參數
5.2.6 class-dump 的局限性
5.3 實例演示
5.3.1 得到靈感
5.3.2 分析檔案
5.3.3 定位函式
5.3.4 測試函式
5.3.5 編寫實例代碼
5.4 小結
第6 章 ARM 彙編相關的iOS逆向理論基礎
6.1 ARM 彙編基礎
6.1.1 基本概念
6.1.2 ARM/THUMB 指令解讀
6.1.3 ARM 調用規則
6.2 在IDA 中分析目標檔案
6.2.1 分析函式實現細節
6.2.2 驗證分析結果
6.3 在GDB 中分析目標檔案
6.3.1 跟蹤代碼執行流程
6.3.2 動態更改代碼
6.4 小結
第四部分 實戰篇
第7 章 實戰1:去除OPlayerLite 的廣告
7.1 OPlayer Lite 簡介
7.2 分析原始碼結構,並定位廣告橫幅的代碼
7.2.1 class-dump 獲取.h 檔案
7.2.2 猜測廣告橫幅的出現位置
7.2.3 分析PlayViewController.h
7.3 去除廣告橫幅,節省流量
7.3.1 找到“準備”廣告的位置
7.3.2 追溯到網路連線的起點
7.4 編寫調試代碼
7.4.1 編寫Tweak_OPlayerLite.xm
7.4.2 編輯control
7.4.3 編輯RemoveOPlayerAds.plist
7.4.4 編輯Makefile
7.4.5 編譯+ 打包
7.4.6 安裝
7.5 調試去廣告外掛程式
7.6 代碼結果整理
7.7 小結
第8 章 實戰2:WhatsApp訊息攔截
8.1 WhatsApp 簡介
8.2 分析原始碼結構,並定位監聽點
8.2.1 class-dump 獲取.h 檔案
8.2.2 導入Xcode
8.2.3 找到WhatsAppAppDelegate
8.2.4 找到ChatManager
8.3 編寫調試代碼
8.3.1 分析函式列表
8.3.2 編寫Tweak_WhatsApp.xm
8.3.3 編輯control
8.3.4 編輯monitor.plist
8.3.5 編輯Makefile
8.3.6 編譯+打包
8.3.7 安裝
8.4 調試運行監聽外掛程式
8.4.1 運行WhatsApp,SSH 連線
8.4.2 傳送/ 接收訊息,監控日誌
8.4.3 保存數據
8.5 代碼結果整理
8.6 小結
第9 章 實戰3:Instagram 圖片保存
9.1 Instagram 簡介
9.2 分析原始碼結構,並定點陣圖片展示點
9.2.1 用class-dump獲取.h 檔案
9.2.2 導入Xcode
9.2.3 找到AppDelegate
9.2.4 注入Reveal
9.2.5 尋找圖片頁相關class
9.3 保存圖片
9.3.1 嘗試保存圖片
9.3.2 對.h 檔案進行瘦身
9.3.3 編譯測試
9.4 彈出提示選單
9.4.1 彈出選單代碼
9.4.2 使用Theos 新增函式
9.4.3 使用runtime 新增函式
9.5 代碼結果整理
9.6 小結
第10 章 實戰4:iOS 電話操作
10.1 常用電話操作
10.2 分析原始碼結構,並定位電話操作的代碼
10.2.1 class-dump 獲取.h 檔案
10.2.2 尋找撥打電話的函式
10.2.3 尋找接聽電話的函式
10.2.4 尋找掛斷電話的函式
10.2.5 尋找刪除通話記錄的函式
10.2.6 尋找攔截電話的方法
10.3 編寫調試代碼
10.3.1 編寫Tweak_PhoneOperation.xm
10.3.2 編輯control
10.3.3 編輯PhoneOperation.plist
10.3.4 編輯Makefile
10.3.5 編譯+ 打包+ 安裝
10.4 調試電話操作外掛程式
10.5 代碼結果整理
10.6 小結
越獄開發一覽
沙箱逃脫
編寫tweak新時代的hacking