Android系統安全和反編譯實戰

《Android系統安全和反編譯實戰》是2015年出版的圖書,作者是楊峻。

基本介紹

  • 書名:Android系統安全和反編譯實戰
  • 作者:楊峻
  • ISBN:978-7-115-39303-6
  • 出版時間:2015-08
圖書簡介,目錄,

圖書簡介

《Android系統安全和反編譯實戰》循序漸進地講解了Android系統安全方面的基本知識,從Android系統介紹開始到綜合實例的實戰過程,全程剖析了Android系統安全、套用安全開發和加密、解密方面的核心知識。全書共17章,主要內容包括,Android技術核心框架分析、獲取並編譯原始碼、Android系統的安全機制、記憶體安全機制、Binder通信安全機制、Android虛擬機基礎、Dalvik VM的運作流程、DEX檔案詳解、編寫安全的應用程式、套用安全策略、檔案加密、電話系統的安全機制、簡訊系統的安全機制、網路防火牆系統、檔案加密系統等核心技術。

目錄

第 1章 Android技術概述 1
1.1 智慧型手機系統介紹 1
1.2 搭建Android套用開發環境 2
1.2.1 安裝Android SDK的
系統要求 2
1.2.2 安裝JDK 2
1.2.3 獲取並安裝Eclipse和
Android SDK 5
1.2.4 安裝ADT 7
1.2.5 設定Android SDK Home 8
1.2.6 驗證開發環境 9
1.2.7 創建Android虛擬設備(AVD) 9
1.2.8 啟動AVD模擬器 10
1.2.9 解決搭建環境過程中
的常見問題 12
第 2章 Android技術核心框架分析 15
2.1 簡析Android安裝檔案 15
2.1.1 Android SDK目錄結構 15
2.1.2 android.jar及內部結構 16
2.1.3 閱讀SDK幫助文檔 16
2.1.4 常用的SDK工具 17
2.2 演示官方實例 19
2.3 剖析Android系統架構 23
2.3.1 Android體系結構介紹 23
2.3.2 Android套用工程
檔案組成 25
2.4 簡述五大組件 27
2.4.1 用Activity來表現界面 27
2.4.2 用Intent和Intent Filters
實現切換 28
2.4.3 Service為你服務 28
2.4.4 用Broadcast Intent/Receiver傳送廣播 29
2.4.5 用Content Provider
存儲數據 29
2.5 進程和執行緒 29
2.5.1 先看進程 29
2.5.2 再看執行緒 30
2.5.3 應用程式的生命周期 30
第3章 獲取並編譯源碼 33
3.1 在Linux系統中獲取
Android源碼 33
3.2 在Windows平台獲取
Android源碼 34
3.3 分析Android源碼結構 36
3.3.1 應用程式 38
3.3.2 應用程式框架 39
3.3.3 系統服務 39
3.3.4 系統程式庫 41
3.3.5 系統運行庫 44
3.3.6 硬體抽象層 44
3.4 編譯源碼 45
3.4.1 搭建編譯環境 46
3.4.2 開始編譯 46
3.4.3 在模擬器中運行 47
3.4.4 常見的錯誤分析 48
3.4.5 實踐演練——演示兩種編譯
Android程式的方法 49
3.5 編譯Android Kernel 52
3.5.1 獲取Goldfish核心代碼 52
3.5.2 獲取MSM核心代碼 55
3.5.3 獲取OMAP核心代碼 55
3.5.4 編譯Android的Linux
核心 55
3.6 編譯源碼生成SDK 57
第4章 Android系統的安全機制 61
4.1 Android安全機制概述 61
4.1.1 Android的安全機制模型 61
4.1.2 Android的安全框架概述 62
4.2 分析Linux系統的安全機制 63
4.2.1 Linux用戶許可權基礎 63
4.2.2 進程 68
4.3 分析Android系統的安全機制 70
4.3.1 沙箱模型介紹 70
4.3.2 應用程式的安全機制 72
4.3.3 分區載入機制 73
第5章 記憶體安全機制——匿名共享
記憶體系統 74
5.1 分析Ashmem驅動程式 74
5.1.1 基礎數據結構 74
5.1.2 初始化處理 75
5.1.3 打開匿名共享記憶體
設備檔案 76
5.1.4 記憶體映射 78
5.1.5 實現讀寫操作 79
5.1.6 鎖定和解鎖 81
5.1.7 回收記憶體塊 86
5.2 分析C++訪問接口層 87
5.2.1 接口MemoryBase 87
5.2.2 客戶端實現 90
5.2.3 接口MemoryBase 94
5.3 分析Java訪問接口層 97
5.4 記憶體最佳化機制 100
5.4.1 sp和wp簡析 100
5.4.2 詳解智慧型指針 102
5.5 Android記憶體系統的安全
機制分析 118
5.5.1 Ashmem匿名共享記憶體
的機理 119
5.5.2 使用Low Memory Killer
機制實現安全和高效 119
第6章 Binder通信安全機制(上) 121
6.1 Binder機制基礎 121
6.1.1 選擇Binder機制的
原因——簡潔快速、
低耗記憶體、更加安全 121
6.1.2 Binder安全機制的
必要性 122
6.1.3 Android的進程間通信
(IPC)機制Binder 122
6.1.4 Service Manager是Binder
機制的上下文管理者 123
6.1.5 Service Manager服務 137
6.2 分析Binder驅動程式 140
6.2.1 分析數據結構 140
6.2.2 分析設備初始化 150
6.2.3 打開Binder設備檔案 151
6.2.4 記憶體映射 152
6.2.5 釋放物理頁面 156
6.2.6 分配核心緩衝區 157
6.2.7 釋放核心緩衝區 158
6.2.8 查詢核心緩衝區 160
第7章 Binder通信安全機制(下) 162
7.1 Binder封裝庫 162
7.1.1 類BBinder 163
7.1.2 類BpRefBase 165
7.1.3 類IPCThreadState 166
7.2 初始化Java層Binder框架 168
7.3 分析MediaServer的通信機制 170
7.3.1 MediaServer的入口函式 170
7.3.2 ProcessState 171
7.3.3 defaultServiceManager 173
7.3.4 註冊MediaPlayerService 179
7.3.5 分析StartThread Pool和
join Thread Pool 188
7.4 總結進程通信機制的安全性 190
7.4.1 進程先執行緒安全 190
7.4.2 遠程過程調用機制
(RPC) 191
7.4.3 實現執行緒安全方法 192
7.4.4 Binder中的安全策略 193
第8章 Android虛擬機基礎 194
8.1 Dalvik VM和JVM的差異 194
8.2 Dalvik虛擬機的主要特徵 195
8.3 Dalvik VM架構 196
8.3.1 Dalvik虛擬機的代碼結構 196
8.3.2 dx工具 198
8.3.3 Dalvik VM的進程管理 198
8.3.4 Android的初始化流程 198
8.4 Dalvik VM控制VM命令詳解 199
8.4.1 基本命令 199
8.4.2 擴展的JNI檢測 199
8.4.3 斷言 200
8.4.4 位元組碼校驗和最佳化 200
8.4.5 Dalvik VM的運行模式 201
8.4.6 死鎖預測 201
8.4.7 dump堆疊追蹤 202
8.4.8 dex檔案和校驗 202
8.4.9 產生標誌位 202
8.5 Dalvik VM進程管理 202
8.5.1 Zygote基礎 202
8.5.2 Dalvik的進程模型 211
8.5.3 Dalvik的進程通信 215
8.6 Zygote(孕育)進程 218
8.6.1 Zygote基礎 218
8.6.2 分析Zygote的啟動過程 219
第9章 Dalvik VM的運作流程 233
9.1 Dalvik VM相關的可執行程式 233
9.1.1 dalvikvm、dvz和
app_process簡介 233
9.1.2 對比app_process和
dalvikvm的執行過程 234
9.2 初始化Dalvik VM 236
9.2.1 開始虛擬機的準備工作 236
9.2.2 初始化跟蹤顯示系統 237
9.2.3 初始化垃圾回收器 237
9.2.4 初始化執行緒列表和
主執行緒環境參數 237
9.2.5 分配內部操作方法的
表格記憶體 238
9.2.6 初始化虛擬機的指令碼
相關的內容 238
9.2.7 分配指令暫存器狀態
的記憶體 239
9.2.8 分配指令暫存器狀態
的記憶體和**基本用的
Java庫 239
9.2.9 初始化使用的Java類庫
執行緒類 240
9.2.10 初始化虛擬機使用的
異常Java類庫 241
9.2.11 初始化其他對象 242
9.3 啟動Zygote 250
9.3.1 在init.rc中配置zygote
啟動參數 250
9.3.2 啟動Socket服務連線埠 250

相關詞條

熱門詞條

聯絡我們