基本介紹
- 中文名:Android Dalvik虛擬機結構及機制剖析——第1卷 Dalvik虛擬機結構剖析
- 作者:張國印、吳艷霞
- 出版社:清華大學出版社
- 出版時間:2004年11月1日
- 定價:25 元
- ISBN:9787302361039
本系列叢書共分2卷,本書為第1卷,是一本以情景方式對Android的原始碼進行深入分析的書,內容廣泛,主要從Dalvik虛擬機整體結構、獲取和編譯Dalvik虛擬機的源碼、源碼分析輔助工具使用、.dex檔案及Dalvik位元組碼格式解析、Dalvik虛擬機下的系統工具介紹及Dalvik虛擬機執行流程簡述等方面進行闡述,幫助讀者從巨觀上了解Dalvik虛擬機的架構設計,為有興趣閱讀Dalvik虛擬機源碼的讀者提供必要的入門指導。
第1卷共6章: 第1章為準備工作,在這一章中主要介紹了Dalvik虛擬機的功用、分析Dalvik源碼所用到的主要方法以及如何搭建Dalvik源碼分析環境;第2章為源碼分析輔助工具介紹,包括Vim、Doxygen、GDBSERVER等;第3章為Dex檔案以及Dalvik位元組碼格式分析;第4章為系統工具介紹,在這一章中主要介紹了Dalvik虛擬機的一些重要系統工具,通過對系統工具的介紹,讓讀者對虛擬機內部的實現機制更加清晰;第5章為Dalvik虛擬機執行流程簡述,通過這一章的介紹,旨在讓讀者對Dalvik虛擬機的整體功能架構有一個巨觀的認識,為後續進一步掌握各個功能模組的原理功能做好相應的知識鋪墊;第6章為調試支撐模組,在這一章中主要介紹了調試支撐模組的基本原理。
通過閱讀本書,讓讀者了解Dalvik虛擬機在Android應用程式運行過程中所扮演的重要角色及其不可替代的價值;同時對Android應用程式的執行過程有更加細緻的了解,可以幫助讀者最佳化自己編寫的應用程式,更加合理地設計應用程式結構,有效提高應用程式的運行速度。
目錄
第1章準備工作1
1.1本章概述1
1.1.1什麼是Dalvik虛擬機1
1.1.2Dalvik虛擬機的功能3
1.1.3Dalvik虛擬機與Java虛擬機的區別6
1.1.4Dalvik虛擬機的特性7
1.2Ubuntu Linux系統安裝8
1.3工作目錄設定11
1.4下載、編譯和運行Android核心原始碼12
1.4.1下載Android核心原始碼12
1.4.2整體編譯Android原始碼15
1.4.3運行Android模擬器16
1.5編譯經過修改的Android源碼17
1.6開發第一個Android應用程式17
小結21
第2章源碼分析輔助工具22
2.1本章概述22
2.2Vim源碼閱讀環境搭建22
2.3Doxygen工具25
2.4GDBSERVER工具29
小結32
第3章Dex檔案及Dalvik位元組碼格式解析33
3.1本章概述33
3.2Dex檔案格式34
3.2.1Dex檔案中的數據結構34
3.2.2Dex檔案結構分析35
3.3Dalvik位元組碼介紹46
3.3.1Dalvik位元組碼總體設計46
3.3.2Dalvik位元組碼指令格式47
3.4Odex檔案簡介48
3.4.1什麼是“最佳化檔案”49
3.4.2Odex檔案結構49
3.4.3Odex檔案加速系統運行速度51
3.4.4手機“減負”問題再討論51
小結52
第4章系統工具53
4.1本章概述53
4.2dexdump工具54
4.2.1dexdump工具簡介54
4.2.2dexdump工具使用方法54
4.3dexdeps工具64
4.3.1dexdeps工具簡介64
4.3.2dexdeps工具使用方法64
4.4dexlist工具67
4.4.1dexlist工具簡介67
4.4.2dexlist工具使用說明67
4.5dexopt工具72
4.5.1dexopt工具簡介72
4.5.2dexopt工具使用方法72
4.6dvz工具73
4.6.1dvz工具簡介73
4.6.2dvz工具使用方法73
小結74
第5章開發分析工具75
5.1本章概述75
5.2trace檔案分析工具75
5.2.1trace檔案分析工具簡介75
5.2.2trace檔案分析工具使用方法76
5.3Heap Profile工具78
5.3.1Heap Profile工具簡介78
5.3.2Heap Profile工具使用方法79
5.4DDMS工具83
5.4.1啟動DDMS84
5.4.2DDMS原理和特性86
5.4.3DDMS具體功能86
5.4.4進程監控87
5.4.5使用檔案瀏覽器90
5.4.6模擬器控制91
5.4.7應用程式日誌92
小結93
第6章Dalvik虛擬機執行流程詳解94
6.1本章概述94
6.2Dalvik虛擬機的入口點介紹95
6.2.1Dalvik虛擬機在x86平台運行的入口點95
6.2.2Dalvik虛擬機運行在ARM平台的入口點96
6.2.3Dalvik虛擬機的初始化97
6.3Zygote進程97
6.4Dalvik虛擬機運行應用程式過程109
6.4.1apk檔案生成109
6.4.2Dalvik虛擬機運行應用程式的主要流程109
小結111
第1章引言1
1.1軟體保護的背景及意義1
1.2軟體保護場景2
1.3軟體攻擊模型3
1.3.1攻擊者的能力3
1.3.2攻擊者的目標4
1.3.3針對軟體保護的通用攻擊方式4
1.3.4針對軟體水印的特定攻擊方式4
1.4研究現狀5
1.5軟體保護方案6
1.5.1基於審計的保護方案6
1.5.2基於硬體的保護方案6
1.5.3基於軟體的保護方案6
1.6關於軟體保護的專利及法律條文7
1.6.1美國7
1.6.2歐盟8
1.6.3日本8
1.6.4中國8
參考文獻9
參考文獻注釋10
第2章軟體保護基礎11
2.1代碼操縱技術11
2.1.1位元組碼查看工具11
2.1.2位元組碼操縱工具11
2.1.3位元組碼操縱示例14
2.2程式分析技術15
2.3Class檔案結構19
2.4拆分與編碼知識23
2.4.1整數拆分23
2.4.2圖編碼23
參考文獻25
參考文獻注釋 25
目錄軟體保護技術第3章軟體水印技術26
3.1國內外研究現狀26
3.2軟體水印的概念、模型及分類26
3.2.1軟體水印概念26
3.2.2軟體水印系統的模型27
3.2.3軟體水印的分類28
3.3評價指標30
3.3.1數據率30
3.3.2隱蔽性30
3.3.3彈性30
3.3.4代價30
3.3.5效率30
3.3.6可信度30
3.4若干關鍵算法31
3.4.1靜態水印算法31
3.4.2動態水印算法42
3.4.3半動態水印算法46
3.5軟體水印系統53
3.5.1現有水印系統53
3.5.2TRUP平台56
參考文獻59
參考文獻注釋60
第4章軟體混淆技術61
4.1引言61
4.2混淆技術的概念、分類及評估61
4.2.1概念61
4.2.2分類62
4.2.3評估62
4.3混淆算法63
4.3.1設計混淆63
4.3.2數據混淆67
4.3.3控制流混淆68
4.3.4預防混淆69
4.4混淆工具70
4.5混淆算法的檢驗與比較72
4.5.1實驗說明73
4.5.2混淆算法的效果73
4.5.3混淆算法的正確性測試76
4.5.4混淆算法對程式性能的影響76
4.5.5混淆算法對程式最佳化的抵抗力78