注冊(cè) | 登錄讀書(shū)好,好讀書(shū),讀好書(shū)!
讀書(shū)網(wǎng)-DuShu.com
當(dāng)前位置: 首頁(yè)出版圖書(shū)科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)軟件與程序設(shè)計(jì)程序設(shè)計(jì)綜合Android 軟件安全與逆向分析

Android 軟件安全與逆向分析

Android 軟件安全與逆向分析

定 價(jià):¥69.00

作 者: 豐生強(qiáng) 著
出版社: 人民郵電出版社
叢編項(xiàng):
標(biāo) 簽: 暫缺

購(gòu)買(mǎi)這本書(shū)可以去


ISBN: 9787115308153 出版時(shí)間: 2013-02-01 包裝: 平裝
開(kāi)本: 16開(kāi) 頁(yè)數(shù): 407 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

  本書(shū)由淺入深、循序漸進(jìn)地講解了Android系統(tǒng)的軟件安全、逆向分析與加密解密技術(shù)。包括Android軟件逆向分析和系統(tǒng)安全方面的必備知識(shí)及概念、如何靜態(tài)分析Android軟件、如何動(dòng)態(tài)調(diào)試Android 軟件、Android 軟件的破解與反破解技術(shù)的探討,以及對(duì)典型Android病毒的全面剖析。本書(shū)適合所有Android 應(yīng)用開(kāi)發(fā)者、Android 系統(tǒng)開(kāi)發(fā)工程師、Android系統(tǒng)安全工作者閱讀學(xué)習(xí)。

作者簡(jiǎn)介

  豐生強(qiáng)(網(wǎng)名非蟲(chóng))Android軟件安全專(zhuān)家??囱┱搲疉ndroid安全版版主;安卓巴士開(kāi)發(fā)交流版版主。對(duì)Android軟件與系統(tǒng)安全有狂熱的愛(ài)好和獨(dú)到的見(jiàn)解,對(duì)Android系統(tǒng)的全部源代碼進(jìn)行過(guò)深入地研究和分析。逆向分析實(shí)戰(zhàn)經(jīng)驗(yàn)豐富。在國(guó)內(nèi)信息安全雜志上發(fā)表過(guò)多篇有價(jià)值的軟件安全文章,目前就職于國(guó)內(nèi)某Android開(kāi)發(fā)企業(yè),常年混跡于看雪論壇(ID非蟲(chóng))。作者郵箱:fei_cong@hotmail.com愿與國(guó)內(nèi)安全愛(ài)好者共同交流與探討安全技術(shù)。

圖書(shū)目錄

第1章  Android程序分析環(huán)境搭建  1
1.1  Windows分析環(huán)境搭建  1
1.1.1  安裝JDK  1
1.1.2  安裝Android SDK  3
1.1.3  安裝Android NDK  5
1.1.4  Eclipse集成開(kāi)發(fā)環(huán)境  6
1.1.5  安裝CDT、ADT插件  6
1.1.6  創(chuàng)建Android Virtual Device  8
1.1.7  使用到的工具  9
1.2  Linux分析環(huán)境搭建  9
1.2.1  本書(shū)的Linux環(huán)境  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集成開(kāi)發(fā)環(huán)境  12
1.2.6  在Ubuntu上安裝CDT、ADT插件  13
1.2.7  創(chuàng)建Android Virtual Device  13
1.2.8  使用到的工具  15
1.3  本章小結(jié)  15
第2章  如何分析Android程序  16
2.1  編寫(xiě)第一個(gè)Android程序  16
2.1.1  使用Eclipse創(chuàng)建Android工程  16
2.1.2  編譯生成APK文件  19
2.2  破解第一個(gè)程序  20
2.2.1  如何動(dòng)手?  20
2.2.2  反編譯APK文件  20
2.2.3  分析APK文件  21
2.2.4  修改Smali文件代碼  26
2.2.5  重新編譯APK文件并簽名  26
2.2.6  安裝測(cè)試  27
2.3  本章小結(jié)  28
第3章  進(jìn)入Android Dalvik虛擬機(jī)  29
3.1  Dalvik虛擬機(jī)的特點(diǎn)——掌握Android程序的運(yùn)行原理  29
3.1.1  Dalvik虛擬機(jī)概述  29
3.1.2  Dalvik虛擬機(jī)與Java虛擬機(jī)的區(qū)別  29
3.1.3  Dalvik虛擬機(jī)是如何執(zhí)行程序的  34
3.1.4  關(guān)于Dalvik虛擬機(jī)JIT(即時(shí)編譯)  36
3.2  Dalvik匯編語(yǔ)言基礎(chǔ)為分析Android程序做準(zhǔn)備  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字節(jié)碼的類(lèi)型、方法與字段表示方法  43
3.3  Dalvik指令集  44
3.3.1  指令特點(diǎn)  45
3.3.2  空操作指令  45
3.3.3  數(shù)據(jù)操作指令  46
3.3.4  返回指令  46
3.3.5  數(shù)據(jù)定義指令  46
3.3.6  鎖指令  47
3.3.7  實(shí)例操作指令  47
3.3.8  數(shù)組操作指令  48
3.3.9  異常指令  48
3.3.10  跳轉(zhuǎn)指令  48
3.3.11  比較指令  49
3.3.12  字段操作指令  50
3.3.13  方法調(diào)用指令  50
3.3.14  數(shù)據(jù)轉(zhuǎn)換指令  51
3.3.15  數(shù)據(jù)運(yùn)算指令  51
3.4  Dalvik指令集練習(xí)——寫(xiě)一個(gè)Dalvik版的Hello World  52
3.4.1  編寫(xiě)smali文件  52
3.4.2  編譯smali文件  54
3.4.3  測(cè)試運(yùn)行  54
3.5  本章小結(jié)  55
第4章  Android可執(zhí)行文件  56
4.1  Android程序的生成步驟  56
4.2  Android程序的安裝流程  59
4.3  dex文件格式  66
4.3.1  dex文件中的數(shù)據(jù)結(jié)構(gòu)  66
4.3.2  dex文件整體結(jié)構(gòu)  68
4.3.3  dex文件結(jié)構(gòu)分析  71
4.4  odex文件格式  80
4.4.1  如何生成odex文件  80
4.4.2  odex文件整體結(jié)構(gòu)  81
4.4.3  odex文件結(jié)構(gòu)分析  83
4.5  dex文件的驗(yàn)證與優(yōu)化工具dexopt的工作過(guò)程  88
4.6  Android應(yīng)用程序另類(lèi)破解方法  91
4.7  本章小結(jié)  93
第5章  靜態(tài)分析Android程序  94
5.1  什么是靜態(tài)分析  94
5.2  快速定位Android程序的關(guān)鍵代碼  94
5.2.1  反編譯apk程序  94
5.2.2  程序的主Activity  95
5.2.3  需重點(diǎn)關(guān)注的Application類(lèi)  95
5.2.4  如何定位關(guān)鍵代碼——六種方法  96
5.3  smali文件格式  97
5.4  Android程序中的類(lèi)  100
5.4.1  內(nèi)部類(lèi)  100
5.4.2  監(jiān)聽(tīng)器  102
5.4.3  注解類(lèi)  105
5.4.4  自動(dòng)生成的類(lèi)  108
5.5  閱讀反編譯的smali代碼  110
5.5.1  循環(huán)語(yǔ)句  110
5.5.2  switch分支語(yǔ)句  115
5.5.3  try/catch語(yǔ)句  121
5.6  使用IDA Pro靜態(tài)分析Android程序  127
5.6.1  IDA Pro對(duì)Android的支持  127
5.6.2  如何操作  128
5.6.3  定位關(guān)鍵代碼——使用IDA Pro進(jìn)行破解的實(shí)例  132
5.7  惡意軟件分析工具包——Androguard  135
5.7.1  Androguard的安裝與配置  135
5.7.2  Androguard的使用方法  137
5.7.3  使用Androguard配合Gephi進(jìn)行靜態(tài)分析  144
5.7.4  使用androlyze.py進(jìn)行靜態(tài)分析  148
5.8  其他靜態(tài)分析工具  152
5.9  閱讀反編譯的Java代碼  152
5.9.1  使用dex2jar生成jar文件  152
5.9.2  使用jd-gui查看jar文件的源碼  153
5.10  集成分析環(huán)境——santoku  154
5.11  本章小結(jié)  156
第6章  基于Android的ARM匯編語(yǔ)言基礎(chǔ)——逆向原生!  157
6.1  Android與ARM處理器  157
6.1.1  ARM處理器架構(gòu)概述  157
6.1.2  ARM處理器家族  158
6.1.3  Android支持的處理器架構(gòu)  159
6.2  原生程序與ARM匯編語(yǔ)言——逆向你的原生Hello ARM  160
6.2.1  原生程序逆向初步  160
6.2.2  原生程序的生成過(guò)程  162
6.2.3  必須了解的ARM知識(shí)  164
6.3  ARM匯編語(yǔ)言程序結(jié)構(gòu)  166
6.3.1  完整的ARM匯編程序  166
6.3.2  處理器架構(gòu)定義  167
6.3.3  段定義  168
6.3.4  注釋與標(biāo)號(hào)  169
6.3.5  匯編器指令  169
6.3.6  子程序與參數(shù)傳遞  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  相對(duì)尋址  172
6.5  ARM與Thumb指令集  173
6.5.1  指令格式  173
6.5.2  跳轉(zhuǎn)指令  174
6.5.3  存儲(chǔ)器訪問(wèn)指令  175
6.5.4  數(shù)據(jù)處理指令  177
6.5.5  其他指令  184
6.6  用于多媒體編程與浮點(diǎn)計(jì)算的NEON與VFP指令集  185
6.7  本章小結(jié)  186
第7章  Android NDK程序逆向分析  187
7.1  Android中的原生程序  187
7.1.1  編寫(xiě)一個(gè)例子程序  187
7.1.2  如何編譯原生程序  188
7.2  原生程序的啟動(dòng)流程分析  194
7.2.1  原生程序的入口函數(shù)  194
7.2.2  main函數(shù)究竟何時(shí)被執(zhí)行  198
7.3  原生文件格式  199
7.4  原生C程序逆向分析  200
7.4.1  原生程序的分析方法  200
7.4.2  for循環(huán)語(yǔ)句反匯編代碼的特點(diǎn)  204
7.4.3  if...else分支語(yǔ)句反匯編代碼的特點(diǎn)  208
7.4.4  while循環(huán)語(yǔ)句反匯編代碼的特點(diǎn)  211
7.4.5  switch分支語(yǔ)句反匯編代碼的特點(diǎn)  215
7.4.6  原生程序的編譯時(shí)優(yōu)化  218
7.5  原生C++程序逆向分析  222
7.5.1  C++類(lèi)的逆向  222
7.5.2  Android NDK對(duì)C++特性的支持  225
7.5.3  靜態(tài)鏈接STL與動(dòng)態(tài)鏈接STL的代碼區(qū)別  227
7.6  Android NDK JNI API逆向分析  232
7.6.1  Android NDK提供了哪些函數(shù)  232
7.6.2  如何靜態(tài)分析Android NDK程序  233
7.7  本章小結(jié)  235
第8章  動(dòng)態(tài)調(diào)試Android程序  236
8.1  Android動(dòng)態(tài)調(diào)試支持  236
8.2  DDMS的使用  237
8.2.1  如何啟動(dòng)DDMS  237
8.2.2  使用LogCat查看調(diào)試信息  238
8.3  定位關(guān)鍵代碼  240
8.3.1  代碼注入法——讓程序自己吐出注冊(cè)碼  240
8.3.2  棧跟蹤法  244
8.3.3  Method Profiling  247
8.4  使用AndBug調(diào)試Android程序  250
8.4.1  安裝AndBug  251
8.4.2  使用AndBug  251
8.5  使用IDA Pro調(diào)試Android原生程序  254
8.5.1  調(diào)試Android原生程序  255
8.5.2  調(diào)試Android原生動(dòng)態(tài)鏈接庫(kù)  256
8.6  使用gdb調(diào)試Android原生程序  260
8.6.1  編譯gdb與gdbserver  260
8.6.2  如何調(diào)試  262
8.7  本章小結(jié)  264
第9章  Android軟件的破解技術(shù)  265
9.1  試用版軟件  265
9.1.1  試用版軟件的種類(lèi)  265
9.1.2  實(shí)例破解——針對(duì)授權(quán)KEY方式的破解  265
9.2  序列號(hào)保護(hù)  271
9.3  網(wǎng)絡(luò)驗(yàn)證  272
9.3.1  網(wǎng)絡(luò)驗(yàn)證保護(hù)思路  272
9.3.2  實(shí)例破解——針對(duì)網(wǎng)絡(luò)驗(yàn)證方式的破解  273
9.4  In-app Billing(應(yīng)用內(nèi)付費(fèi))  277
9.4.1  In-app Billing原理  277
9.4.2  In-app Billing破解方法  280
9.5  Google Play License保護(hù)  281
9.5.1  Google Play License保護(hù)機(jī)制  281
9.5.2  實(shí)例破解——針對(duì)Google Play License方式的破解  283
9.6  重啟驗(yàn)證  284
9.6.1  重啟驗(yàn)證保護(hù)思路  285
9.6.2  實(shí)例破解——針對(duì)重啟驗(yàn)證方式的破解  285
9.7  如何破解其他類(lèi)型的Android程序  296
9.7.1  Mono for Android開(kāi)發(fā)的程序及其破解方法  296
9.7.2  Qt for Android開(kāi)發(fā)的程序及其破解方法  301
9.8  本章小結(jié)  309
第10章  Android程序的反破解技術(shù)  310
10.1  對(duì)抗反編譯  310
10.1.1  如何對(duì)抗反編譯工具  310
10.1.2  對(duì)抗dex2jar  311
10.2  對(duì)抗靜態(tài)分析  312
10.2.1  代碼混淆技術(shù)  312
10.2.2  NDK保護(hù)  315
10.2.3  外殼保護(hù)  316
10.3  對(duì)抗動(dòng)態(tài)調(diào)試  316
10.3.1  檢測(cè)調(diào)試器  316
10.3.2  檢測(cè)模擬器  317
10.4  防止重編譯  318
10.4.1  檢查簽名  318
10.4.2  校驗(yàn)保護(hù)  319
10.5  本章小結(jié)  320
第11章  Android系統(tǒng)攻擊與防范  321
11.1  Android系統(tǒng)安全概述  321
11.2  手機(jī)ROOT帶來(lái)的危害  321
11.2.1  為什么要ROOT手機(jī)  321
11.2.2  手機(jī)ROOT后帶來(lái)的安全隱患  322
11.2.3  Android手機(jī)ROOT原理  322
11.3  Android權(quán)限攻擊  329
11.3.1  Android權(quán)限檢查機(jī)制  329
11.3.2  串謀權(quán)限攻擊  333
11.3.3  權(quán)限攻擊檢測(cè)  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  數(shù)據(jù)安全  347
11.5.1  外部存儲(chǔ)安全  347
11.5.2  內(nèi)部存儲(chǔ)安全  348
11.5.3  數(shù)據(jù)通信安全  350
11.6  ROM安全  351
11.6.1  ROM的種類(lèi)  352
11.6.2  ROM的定制過(guò)程  352
11.6.3  定制ROM的安全隱患  359
11.6.4  如何防范  360
11.7  本章小結(jié)  361
第12章  DroidKongFu變種病毒實(shí)例分析  362
12.1  DroidKongFu病毒介紹  362
12.2  配置病毒分析環(huán)境  363
12.3  病毒執(zhí)行狀態(tài)分析  364
12.3.1  使用APIMonitor初步分析  365
12.3.2  使用DroidBox動(dòng)態(tài)分析  369
12.3.3  其他動(dòng)態(tài)分析工具  373
12.4  病毒代碼逆向分析  376
12.4.1  Java層啟動(dòng)代碼分析  376
12.4.2  Native層啟動(dòng)代碼分析  381
12.4.3  Native層病毒核心分析  393
12.5  DroidKongFu病毒框架總結(jié)  404
12.6  病毒防治  406
12.7  本章小結(jié)  406

本目錄推薦

掃描二維碼
Copyright ? 讀書(shū)網(wǎng) hotzeplotz.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)