Android 安全技術揭秘與防範 Android安全技术揭秘与防范

周聖韜

  • 出版商: 人民郵電
  • 出版日期: 2015-09-01
  • 定價: $414
  • 售價: 8.5$352
  • 語言: 簡體中文
  • 頁數: 339
  • 裝訂: 平裝
  • ISBN: 7115401667
  • ISBN-13: 9787115401663
  • 相關分類: Android

下單後立即進貨 (約4週~6週)

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

相關主題

商品描述

 

<內容簡介>

《Android安全技術揭秘與防範》從分析Android系統的運行原理、框架和主要模塊入手,著重分析了Android系統存在的安全技術問題,以及這些技術在移動設備上產生的安全問題,幫助讀者瞭解如何靜態分析Android軟件,如何動態調試Android軟件,如何開發出安全的App,如何使自己的系統不被盜版,以及Android漏洞、逆向工程和反匯編等核心技術。
《Android安全技術揭秘與防範》幾乎每一個部分,都結合實際例子,一步步講解,可以使讀者瞭解App安全的問題,給開發者一些防範技術,是一本特別實用的Android安全指南。移動設備開發者、安全研究人員、Android應用程序開發者和負責評估Android安全性的技術人員都可以在本書中找到必要的指導。

 

<章節目錄>

第1章 Android簡介1
1.1 Android的發展歷史1
1.2 Android系統進化史1
1.2.1 Nexus系列3
1.2.2 國產定製系統3
1.2.3 Android的開放與安全4
1.2.4 移動因特網的趨勢4
1.3 Android和iOS系統對比5
1.3.1 系統架構對比6
1.3.2 Android和iOS安全對比6
第2章 Android地下產業鏈分析8
2.1 錢從哪裏來8
2.1.1 惡意吸費9
2.1.2 廣告、惡意推廣9
2.1.3 誘騙欺詐10
2.1.4 隱私竊取10
2.1.5 安裝包分析10
2.2 安全的發展趨勢11
2.2.1 系統級別的殺毒11
2.2.2 應用市場的監管11
2.2.3 智能硬件安全12
第3章 理解Android系統13
3.1 Android系統的層級架構13
3.1.1 應用層14
3.1.2 框架層14
3.1.3 核心庫與運行環境層14
3.1.4 Linux內核層15
3.1.5 Android系統的分區結構15
3.2 啟動過程16
3.2.1 Boot Loader加載階段17
3.2.2 加載Kernel與initrd階段17
3.2.3 初始化設備服務階段17
3.2.4 加載系統服務階段18
3.2.5 虛擬機初始化階段18
3.2.6 啟動完成階段18
3.3 系統關鍵進程與服務18
3.3.1 系統第一個進程init詳解18
3.3.2 ADB進程19
3.3.3 存儲類守護進程Vold20
3.3.4 進程母體Zygote21
3.3.5 服務管理器ServiceMananger21
3.3.6 進程覆制Android Fork22
3.3.7 進程間通信Binder機制22
3.3.8 匿名共享內存機制Ashmem24
3.3.9 日誌服務Logger24
3.4 APK生成25
3.4.1 編譯過程26
3.4.2 打包過程26
3.4.3 簽名優化過程26
3.5 系統安全執行邊界26
3.5.1 沙箱隔離機制27
3.5.2 權限授予機制28
3.5.3 數字簽名機制31
3.6 系統的安全結構34
3.6.1 Android應用程序安全34
3.6.2 主要的應用組件34
3.6.3 四大組件模型36
3.6.4 Android框架層37
3.6.5 Dalvik虛擬機38
3.7 Android 5.0(Lollipop)的安全架構38
3.7.1 加強型內核SEAndroid39
3.7.2 安全的鎖屏39
3.7.3 充分的加密40
3.7.4 Android5.0安全總結40
第4章 Root你的設備41
4.1 獲取Root權限原理41
4.1.1 su源碼分析42
4.1.2 Root後手機對比43
4.1.3 Root思路43
4.1.4 Root漏洞44
4.1.5 已經發現的Root漏洞46
4.1.6 SuperUser分析46
4.1.7 Root安全48
4.2 Root的分類48
4.2.1 臨時Root48
4.2.2 永久Root50
4.2.3 刪除Root52
4.2.4 免Root52
4.3 Root之後52
4.3.1 靜默安裝53
4.3.2 刪除預裝58
4.3.3 鍵盤監控60
4.3.4 短信攔截與靜默發送64
4.3.5 電話監控66
第5章 APK靜態分析69
5.1 什麽是靜態分析69
5.2 常用分析利器69
5.2.1 資源逆向工具AXMLPrinter 270
5.2.2 查看源碼工具dex2jar、jd—GUI70
5.2.3 APK逆向工具APKTool71
5.2.4 Android逆向助手71
5.2.5 反匯編工具IDA PRO72
5.2.6 超級編輯器UltraEdit73
5.3 認識APK文件73
5.3.1 App的種類73
5.3.2 反編譯前結構75
5.3.3 反編譯後結構76
5.4 分析DEX文件78
5.4.1 認識DEX79
5.4.2 虛擬機指令Smali簡介79
5.4.3 Smali與Java對比79
5.4.4 Smali語法基礎81
5.4.5 常用的Smali 註入代碼82
5.5 分析SO文件83
5.5.1 NDK開發流程84
5.5.2 開始反匯編87
5.5.3 嘗試修改SO文件邏輯90
5.6 收集信息定位關鍵代碼92
5.6.1 AndroidManifest.xml突破92
5.6.2 特殊關鍵字突破94
5.6.3 資源索引突破94
5.7 開始篡改代碼95
5.7.1 嘗試篡改邏輯96
5.7.2 廣告植入與去除97
5.7.3 收費限制破解101
5.7.4 應用程序漢化102
5.7.5 篡改邏輯小結103
第6章 ARM匯編速成104
6.1 抽象層次104
6.1.1 計算機體系結構104
6.1.2 常見嵌入式處理器105
6.1.3 Android支持處理器情況106
6.2 逆向工程107
6.2.1 計算機層級107
6.2.2 匯編語言108
6.2.3 反匯編的理解111
6.2.4 ARM匯編語言模塊的結構111
6.2.5 簡單的ARM程序111
6.3 ARM體系結構113
6.3.1 ARM微處理器的工作狀態113
6.3.2 ARM體系結構的存儲器格式113
6.3.3 指令長度及數據類型114
6.3.4 處理器模式114
6.3.5 ARM狀態下寄存器組織114
6.3.6 Thumb狀態下的寄存器組織116
6.4 ARM微處理器的指令集概述117
6.4.1 ARM指令的助記符118
6.4.2 程序狀態寄存器118
6.4.3 指令的條件域120
6.4.4 ARM指令的尋址方式121
6.5 Thumb指令及應用123
6.5.1 Thumb指令集特點124
6.5.2 ARM與Thumb狀態切換124
6.5.3 Thumb指令集格式125
6.5.4 Thmub指令的十六進制值
計算126
6.6 快速識別ARM匯編中的C/C++邏輯127
6.6.1 識別if—else判斷邏輯127
6.6.2 識別while—do循環邏輯129
6.6.3 識別for循環邏輯130
6.6.4 識別switch—case分支邏輯132
第7章 APK動態分析135
7.1 應用體系架構135
7.1.1 代碼安全分析135
7.1.2 組件安全分析136
7.1.3 存儲安全分析136
7.1.4 通信安全分析136
7.2 DDMS調試137
7.2.1 使用Log進行邏輯跟蹤138
7.2.2 不安全的本地存儲140
7.2.3 使用TraceView進行方法跟蹤141
7.3 網絡抓包145
7.3.1 抓包工具Fiddler簡介145
7.3.2 抓包的原理145
7.3.3 如何在Android上進行抓包146
7.3.4 設置斷點修改請求148
7.4 使用AndBug斷點調試150
7.4.1 配置AndBug環境150
7.4.2 AndBug常用命令152
7.4.3 AndBug調試步驟152
7.4.4 開始斷點調試153
7.5 使用IDA Pro進行動態調試158
7.5.1 使用IDA動態調試原生庫so158
7.5.2 使用IDA動態調試dex162
7.6 調試WebViewApp164
7.6.1 Chrome插件調試164
7.6.2 WebView已知漏洞165
7.6.3 HTML安全166
7.6.4 網絡釣魚166
7.6.5 SQL註入攻擊167
第8章 動態註入技術169
8.1 什麽是Hook技術169
8.1.1 Hook原理170
8.1.2 Hook的種類173
8.1.3 Hook的危害174
8.2 常用的Hook工具174
8.2.1 Xposed框架174
8.2.2 CydiaSubstrate框架176
8.2.3 ADBI/DDI框架177
8.3 HookAndroid應用178
8.3.1 嘗試Hook系統API179
8.3.2 Hook指定應用註入廣告181
8.3.3 App登錄劫持184
8.4 Hook原生應用程序188
8.4.1 CydiaSubstrate框架針對Native層Hook的支持188
8.4.2 通過JNI改變系統顏色190
8.4.3 Hook後替換指定應用中的原生方法193
8.4.4 使用Hook進行廣告攔截196
8.5 Hook檢測/修覆198
8.5.1 Hook檢測198
第9章 應用加固與滲透測試
9.1 防止利用系統組件漏洞
9.1.1 Activity編碼安全
9.1.2 Brocast Recevier編碼安全
9.1.3 Service編碼安全
9.1.4 Provider編碼安全
9.2 防止逆向
9.2.1 代碼混淆
9.2.2 DEX保護
9.2.3 SO文件保護
9.2.4 防止jd—GUI查看代碼
9.2.5 防止二次打包
9.3 防止動態分析
9.3.1 檢測運行環境
9.3.2 防止進行動態註入
9.4 Android滲透測試
9.4.1 滲透測試步驟
9.4.2 滲透測試工具
9.4.3 應用程序滲透測試
第10章 系統安全措施
10.1 啟動驗證
10.2 磁盤加密
10.2.1 加密模式
10.2.2 密鑰的生成
10.3 屏幕安全
10.3.1 圖形同虛設的屏幕鎖
10.3.2 密碼鎖
10.3.3 PIN鎖
10.4 USB調試安全
10.4.1 ADB概況
10.4.2 為什麽ADB需要安全
10.4.3 ADB安全
10.4.4 ADB的安全措施
10.4.5 ADB認證秘鑰
10.5 增強型內核SELinux/SEAndroid
10.5.1 SELinux架構
10.5.2 傳統的Linux的不足之處
10.5.3 SELinux的特點
10.5.4 SELinux的運行模式
10.5.5 SELinux的啟動、關閉與觀察
第11章 內核攻擊與防護
11.1 Rootkit是什麽
11.1.1 Rootkit概述
11.1.2 Linux可加載的內核模塊
11.1.3 剖析內核模塊
11.1.4 瞭解內核模塊對象
11.1.5 LKM的生命周期
11.1.6 系統調用機制
11.1.7 SWI中斷
11.1.8 Linux系統調用規範
11.1.9 系統接口重定向
11.1.10 虛擬文件系統
11.2 Android電話系統
11.2.1 Android電話子系統體系結構
11.2.2 Android電話子系統工作流程
11.2.3 內核級Rootkit攻擊位置
11.3 開始攻擊內核
11.3.1 環境搭建
11.3.2 第一個自定義內核程序
11.3.3 隱藏潛伏模塊
11.3.4 操縱內核模塊
11.3.5 信息收集模塊
11.4 內核級Rootkit檢測
11.4.1 常用的Rootkit檢測方法
11.4.2 Android Rootkit檢測系統模型
11.4.3 LKM模塊檢測
11.4.4 電話子系統攻擊檢測
11.5 Rootkit的植入與啟動
11.5.1 Rootkit的植入
11.5.2 Rootkit的啟動
11.5.3 Rootkit小結
……
附錄A ARM指令集