前言
第1章 Android程式分析環境架設
1.1 Windows分析環境架設
1.2 Linux分析環境架設
1.3 本章小結
第2章 如何分析Android程式
2.1 撰寫第一個Android程式
2.2 破解第一個程式
2.3 本章小結
第3章 進入Android Dalvik虛擬機器
3.1 Dalvik虛擬機器的特點——熟練Android程式的執行原理
3.2 Dalvik組合語言基礎為分析Android程式做準備
3.3 Dalvik指令集
3.4 Dalvik指令集練習——寫一個Dalvik版的Hello World
3.5 本章小結
第4章 Android可執行檔
4.1 Android程式的產生步驟
4.2 Android程式的安裝流程
4.3 dex檔案格式
4.4 odex檔案格式
4.5 dex檔案的驗證與最佳化工具dexopt的工作過程
4.6 Android應用程式另類別破解方法
4.7 本章小結
第5章 靜態分析Android程式
5.1 什麼是靜態分析
5.2 快速找出Android程式的關鍵程式
5.3 smali檔案格式
5.4 Android程式中的類別
5.5 閱讀反編譯的smali程式
5.6 使用IDA Pro靜態分析Android程式
5.7 惡意軟體分析工具套件——Androguard
5.8 其他靜態分析工具
5.9 閱讀反編譯的Java程式
5.10 整合分析環境——santoku
5.11 本章小結
第6章 以Android為基礎的ARM組合語言基礎——逆向原生!
6.1 Android與ARM處理器
6.2 原生程式與ARM組合語言——逆向你的原生Hello ARM
6.3 ARM組合語言程式結構
6.4 ARM處理器定址方式
6.5 ARM與Thumb指令集
6.6 用於多媒體程式設計與浮點計算的NEON與VFP指令集
6.7 本章小結
第7章 Android NDK程式逆向分析
7.1 Android中的原生程式
7.2 原生程式的啟動流程分析
7.3 原生檔案格式
7.4 原生C程式逆向分析
7.5 原生C++程式逆向分析
7.6 Android NDK JNI API逆向分析
7.7 本章小結
第8章 動態偵錯Android程式
8.1 Android動態偵錯支援
8.2 DDMS的使用
8.3 定位關鍵程式
8.4 使用AndBug偵錯Android程式
8.5 使用IDA Pro偵錯Android原生程式
8.6 使用gdb偵錯Android原生程式
8.7 本章小結
第9章 Android軟體的破解技術
9.1 試用版軟體
9.2 序號保護
9.3 網路驗證
9.4 In-app Billing(應用內付費)
9.5 Google Play License保護
9.6 重新啟動驗證
9.7 如何破解其他型態的Android程式
9.8 本章小結
第10章 Android程式的反破解技術
10.1 對抗反編譯
10.2 對抗靜態分析
10.3 對抗動態偵錯
10.4 防止重編譯
10.5 本章小結
第11章 Android系統攻擊與防範
11.1 Android系統安全概述
11.2 手機ROOT帶來的危害
11.3 Android許可權攻擊
11.4 Android元件安全
11.5 資料安全
11.6 ROM安全
11.7 本章小結
第12章 DroidKongFu變種病毒實例分析
12.1 DroidKongFu病毒介紹
12.2 設定病毒分析環境
12.3 病毒執行狀態分析
12.4 病毒程式逆向分析
12.5 DroidKongFu病毒框架歸納
12.6 病毒防治
12.7 本章小結