Android軟體安全與逆向分析

來源:互聯網
上載者:User

《Android軟體安全與逆向分析》
基本資料
作者: 豐生強 [作譯者介紹]
叢書名: 圖靈原創
出版社:人民郵電出版社
ISBN:9787115308153
上架時間:2013-2-7
出版日期:2013 年2月
開本:16開
頁碼:1
版次:1-1
所屬分類:電腦 > 軟體與程式設計 > 移動開發 > Android

更多關於 》》》《Android軟體安全與逆向分析》
內容簡介
書籍
電腦書籍
  《android軟體安全與逆向分析》由淺入深、循序漸進地講解了android 系統的軟體安全、逆向分析與加密解密技術。包括android軟體逆向分析和系統安全方面的必備知識及概念、如何靜態分析android 軟體、如何動態調試android 軟體、android 軟體的破解與反破解技術的探討,以及對典型android 病毒的全面剖析。
   《android軟體安全與逆向分析》適合所有android 應用開發人員、android 系統開發工程師、android 系統安全工作者閱讀學習。
目錄
《android軟體安全與逆向分析》
第1章  android程式分析環境搭建  1
1.1  windows分析環境搭建  1
1.1.1  安裝jdk  1
1.1.2  安裝android sdk  3
1.1.3  安裝android ndk  5
1.1.4  eclipse整合式開發環境  6
1.1.5  安裝cdt、adt外掛程式  6
1.1.6  建立android virtual device  8
1.1.7  使用到的工具  9
1.2  linux分析環境搭建  9
1.2.1  本書的linux環境  9
1.2.2  安裝jdk  9
1.2.3  在ubuntu上安裝android sdk  10
1.2.4  在ubuntu上安裝android ndk  11
1.2.5  在ubuntu上安裝eclipse整合式開發環境  12
1.2.6  在ubuntu上安裝cdt、adt外掛程式  13
1.2.7  建立android virtual device  13
1.2.8  使用到的工具  15
1.3  本章小結  15
.第2章  如何分析android程式  16
2.1  編寫第一個android程式  16
2.1.1  使用eclipse建立android工程  16
2.1.2  編譯產生apk檔案  19
2.2  破解第一個程式  20
2.2.1  如何動手?  20
2.2.2  反編譯apk檔案  20
2.2.3  分析apk檔案  21
2.2.4  修改smali檔案代碼  26
2.2.5  重新編譯apk檔案並簽名  26
2.2.6  安裝測試  27
2.3  本章小結  28
第3章  進入android dalvik虛擬機器  29
3.1  dalvik虛擬機器的特點——掌握android程式的運行原理  29
3.1.1  dalvik虛擬機器概述  29
3.1.2  dalvik虛擬機器與java虛擬機器的區別  29
3.1.3  dalvik虛擬機器是如何執行程式的  34
3.1.4  關於dalvik虛擬機器jit(即時編譯)  36
3.2  dalvik組合語言基礎為分析android程式做準備  37
3.2.1  dalvik指令格式  37
3.2.2  dex檔案反組譯碼工具  39
3.2.3  瞭解dalvik寄存器  40
3.2.4  兩種不同的寄存器表示方法——v命名法與p命名法  42
3.2.5  dalvik位元組碼的類型、方法與欄位表示方法  43
3.3  dalvik指令集  44
3.3.1  指令特點  45
3.3.2  空操作指令  45
3.3.3  資料操作指令  46
3.3.4  返回指令  46
3.3.5  資料定義指令  46
3.3.6  鎖指令  47
3.3.7  執行個體操作指令  47
3.3.8  數組操作指令  48
3.3.9  異常指令  48
3.3.10  跳轉指令  48
3.3.11  比較指令  49
3.3.12  欄位操作指令  50
3.3.13  方法調用指令  50
3.3.14  資料轉換指令  51
3.3.15  資料運算指令  51
3.4  dalvik指令集練習——寫一個dalvik版的hello world  52
3.4.1  編寫smali檔案  52
3.4.2  編譯smali檔案  54
3.4.3  測試回合  54
3.5  本章小結  55
第4章  android可執行檔  56
4.1  android程式的產生步驟  56
4.2  android程式的安裝流程  59
4.3  dex檔案格式  66
4.3.1  dex檔案中的資料結構  66
4.3.2  dex檔案整體結構  68
4.3.3  dex檔案結構分析  71
4.4  odex檔案格式  80
4.4.1  如何產生odex檔案  80
4.4.2  odex檔案整體結構  81
4.4.3  odex檔案結構分析  83
4.5  dex檔案的驗證與最佳化工具dexopt的工作過程  88
4.6  android應用程式另類破解方法  91
4.7  本章小結  93
第5章  靜態分析android程式  94
5.1  什麼是靜態分析  94
5.2  快速定位android程式的關鍵代碼  94
5.2.1  反編譯apk程式  94
5.2.2  程式的主activity  95
5.2.3  需重點關注的application類  95
5.2.4  如何定位關鍵代碼——六種方法  96
5.3  smali檔案格式  97
5.4  android程式中的類  100
5.4.1  內部類  100
5.4.2  監聽器  102
5.4.3  註解類  105
5.4.4  自動產生的類  108
5.5  閱讀反編譯的smali代碼  110
5.5.1  迴圈語句  110
5.5.2  switch分支語句  115
5.5.3  try/catch語句  121
5.6  使用ida pro靜態分析android程式  127
5.6.1  ida pro對android的支援  127
5.6.2  如何操作  128
5.6.3  定位關鍵代碼——使用ida pro進行破解的執行個體  132
5.7  惡意軟體分析工具包——androguard  135
5.7.1  androguard的安裝與配置  135
5.7.2  androguard的使用方法  137
5.7.3  使用androguard配合gephi進行靜態分析  144
5.7.4  使用androlyze.py進行靜態分析  148
5.8  其他靜態分析工具  152
5.9  閱讀反編譯的java代碼  152
5.9.1  使用dex2jar產生jar檔案  152
5.9.2  使用jd-gui查看jar檔案的源碼  153
5.10  整合分析環境——santoku  154
5.11  本章小結  156
第6章  基於android的arm組合語言基礎——逆向原生!  157
6.1  android與arm處理器  157
6.1.1  arm處理器架構概述  157
6.1.2  arm處理器家族  158
6.1.3  android支援的處理器架構  159
6.2  原生程式與arm組合語言——逆向你的原生hello arm  160
6.2.1  原生程式逆向初步  160
6.2.2  原生程式的產生過程  162
6.2.3  必須瞭解的arm知識  164
6.3  arm組合語言程式結構  166
6.3.1  完整的arm組譯工具  166
6.3.2  處理器架構定義  167
6.3.3  段定義  168
6.3.4  注釋與標號  169
6.3.5  彙編器指令  169
6.3.6  子程式與參數傳遞  170
6.4  arm處理器定址方式  170
6.4.1  立即定址  170
6.4.2  寄存器定址  171
6.4.3  寄存器移位定址  171
6.4.4  寄存器間接定址  171
6.4.5  基址定址  171
6.4.6  多寄存器定址  171
6.4.7  堆棧定址  172
6.4.8  塊拷貝定址  172
6.4.9  相對定址  172
6.5  arm與thumb指令集  173
6.5.1  指令格式  173
6.5.2  跳轉指令  174
6.5.3  儲存空間訪問指令  175
6.5.4  資料處理指令  177
6.5.5  其他指令  184
6.6  用於多媒體編程與浮點計算的neon與vfp指令集  185
6.7  本章小結  186
第7章  android ndk程式逆向分析  187
7.1  android中的原生程式  187
7.1.1  編寫一個例子程式  187
7.1.2  如何編譯原生程式  188
7.2  原生程式的啟動流程分析  194
7.2.1  原生程式的入口函數  194
7.2.2  main函數究竟何時被執行  198
7.3  原生檔案格式  199
7.4  原生c程式逆向分析  200
7.4.1  原生程式的分析方法  200
7.4.2  for迴圈語句反組譯碼代碼的特點  204
7.4.3  if...else分支語句反組譯碼代碼的特點  208
7.4.4  while迴圈語句反組譯碼代碼的特點  211
7.4.5  switch分支語句反組譯碼代碼的特點  215
7.4.6  原生程式的編譯時間最佳化  218
7.5  原生c++程式逆向分析  222
7.5.1  c++類的逆向  222
7.5.2  android ndk對c++特性的支援  225
7.5.3  靜態連結stl與動態連結stl的代碼區別  227
7.6  android ndk jni api逆向分析  232
7.6.1  android ndk提供了哪些函數  232
7.6.2  如何靜態分析android ndk程式  233
7.7  本章小結  235
第8章  動態調試android程式  236
8.1  android動態調試支援  236
8.2  ddms的使用  237
8.2.1  如何啟動ddms  237
8.2.2  使用logcat查看調試資訊  238
8.3  定位關鍵代碼  240
8.3.1  代碼注入法——讓程式自己吐出註冊碼  240
8.3.2  棧跟蹤法  244
8.3.3  method profiling  247
8.4  使用andbug調試android程式  250
8.4.1  安裝andbug  251
8.4.2  使用andbug  251
8.5  使用ida pro調試android原生程式  254
8.5.1  調試android原生程式  255
8.5.2  調試android原生動態連結程式庫  256
8.6  使用gdb調試android原生程式  260
8.6.1  編譯gdb與gdbserver  260
8.6.2  如何調試  262
8.7  本章小結  264
第9章  android軟體的破解技術  265
9.1  試用版軟體  265
9.1.1  試用版軟體的種類  265
9.1.2  執行個體破解——針對授權key方式的破解  265
9.2  序號保護  271
9.3  網路驗證  272
9.3.1  網路驗證保護思路  272
9.3.2  執行個體破解——針對網路驗證方式的破解  273
9.4  in-app billing(應用內付費)  277
9.4.1  in-app billing原理  277
9.4.2  in-app billing破解方法  280
9.5  google play license保護  281
9.5.1  google play license保護機制  281
9.5.2  執行個體破解——針對google play license方式的破解  283
9.6  重啟驗證  284
9.6.1  重啟驗證保護思路  285
9.6.2  執行個體破解——針對重啟驗證方式的破解  285
9.7  如何破解其他類型的android程式  296
9.7.1  mono for android開發的程式及其破解方法  296
9.7.2  qt for android開發的程式及其破解方法  301
9.8  本章小結  309
第10章  android程式的反破解技術  310
10.1  對抗反編譯  310
10.1.1  如何對抗反編譯工具  310
10.1.2  對抗dex2jar  311
10.2  對抗靜態分析  312
10.2.1  代碼混淆技術  312
10.2.2  ndk保護  315
10.2.3  外殼保護  316
10.3  對抗動態調試  316
10.3.1  檢測調試器  316
10.3.2  檢測模擬器  317
10.4  防止重編譯  318
10.4.1  檢查簽名  318
10.4.2  校正保護  319
10.5  本章小結  320
第11章  android系統攻擊與防範  321
11.1  android系統安全概述  321
11.2  手機root帶來的危害  321
11.2.1  為什麼要root手機  321
11.2.2  手機root後帶來的安全隱患  322
11.2.3  android手機root原理  322
11.3  android許可權攻擊  329
11.3.1  android許可權檢查機制  329
11.3.2  串謀許可權攻擊  333
11.3.3  許可權攻擊檢測  336
11.4  android組件安全  339
11.4.1  activity安全及activity劫持示範  340
11.4.2  broadcast receiver 安全  343
11.4.3  service安全  345
11.4.4  content provider安全  346
11.5  資料安全  347
11.5.1  外部儲存安全  347
11.5.2  內部儲存安全  348
11.5.3  資料通訊安全  350
11.6  rom安全  351
11.6.1  rom的種類  352
11.6.2  rom的定製過程  352
11.6.3  定製rom的安全隱患  359
11.6.4  如何防範  360
11.7  本章小結  361
第12章  droidkongfu變種病毒執行個體分析  362
12.1  droidkongfu病毒介紹  362
12.2  配置病毒分析環境  363
12.3  病毒執行狀態分析  364
12.3.1  使用apimonitor初步分析  365
12.3.2  使用droidbox動態分析  369
12.3.3  其他動態分析工具  373
12.4  病毒代碼逆向分析  376
12.4.1  java層啟動程式碼分析  376
12.4.2  native層啟動程式碼分析  381
12.4.3  native層病毒核心分析  393
12.5  droidkongfu病毒架構總結  404
12.6  病毒防治  406
12.7  本章小結  406

本圖書資訊來源:中國互動出版網

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.