內容簡介
《Android係統安全和反編譯實戰》循序漸進地講解瞭Android係統安全方麵的基本知識,從Android係統介紹開始到綜閤實例的實戰過程,全程剖析瞭Android係統安全、應用安全開發和加密、解密方麵的核心知識。全書共17章,主要內容包括,Android技術核心框架分析、獲取並編譯源代碼、Android係統的安全機製、內存安全機製、Binder通信安全機製、Android虛擬機基礎、Dalvik VM的運作流程、DEX文件詳解、編寫安全的應用程序、應用安全策略、文件加密、電話係統的安全機製、短信係統的安全機製、網絡防火牆係統、文件加密係統等核心技術。
《Android係統安全和反編譯實戰》適閤Android初學者、Android應用開發者、Android安全架構研究人員、Android底層開發人員和Android源代碼分析人員學習,也可以作為相關培訓學校和大專院校相關專業的教學用書。
作者簡介
楊峻,計算機碩士,軟件工程碩士。現就職於國內某著名安全公司移動端項目組,專門解決移動Android設備方麵的數據加密、漏洞校驗分析和加密工作。精通C、C++、Java、Linux、匯編、ARM,擅長漏洞查找分析、係統安全架構和反編譯。2010年,曾經率先發現微軟IE7的重大漏洞,並提齣瞭具體的補丁方案,引起微軟重視。隨著移動設備的興起,對Android和iOS等主流移動平颱的漏洞和安全隱患進行瞭詳細分析,並取得顯著的成果。
內頁插圖
目錄
第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
9.3.3 加載preload-classes 251
9.3.4 加載preload-resources 2
前言/序言
Android係統安全和反編譯實戰 epub pdf mobi txt 電子書 下載 2024
Android係統安全和反編譯實戰 下載 epub mobi pdf txt 電子書