Android 軟件安全權威指南

豐生強

  • 出版商: 電子工業
  • 出版日期: 2019-03-01
  • 定價: $570
  • 售價: 8.5$485
  • 語言: 簡體中文
  • 頁數: 451
  • ISBN: 7121355205
  • ISBN-13: 9787121355202
  • 相關分類: Android
  • 立即出貨 (庫存=1)

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

相關主題

商品描述

本書主要介紹Android平臺上的軟件安全技術。從平臺搭建和語言基礎開始,循序漸進地講解了Android平臺上的軟件攻防技術。本書共12章,系統地講解了與Android軟件安全相關的環境搭建、文件格式、靜態分析、動態調試、Hook與註入、軟件保護技術、軟件殼等多個主題。本書較第1版更新幅度較大,加入了Windows、Linux、macOS 3個平臺上的軟件平臺支持,在文件格式上加入了OAT、ELF等新的文件格式。另外,本書更新調整了目錄結構,將Java與Native層的軟件安全技術分開講解,在內容安排上更加細致、合理。同時,加入了時下流行的軟件殼章節,內容大多是目前尚未公開的技術。另外,書中的每一章中都以實例講解的方式來展開內容,實踐性較強。

作者簡介

豐生強,網名非蟲,獨立軟件安全研究員,資深安全專家,ISC2016安全訓練營獨立講師,有著豐富的軟件安全實戰經驗。自2008年起,在知名安全雜誌《黑客防線》上發表多篇技術文章,從此踏上軟件安全道路,常年混跡於國內各大軟件安全論壇。著有暢銷安全圖書《Android軟件安全與逆向分析》。

目錄大綱

第1章 搭建Android程序分析環境
1.1 搭建Windows分析環境
1.1.1 安裝JDK
1.1.2 安裝Android SDK
1.1.3 安裝Android NDK
1.1.4 Android Studio集成開發環境
1.1.5 創建Android模擬器
1.1.6 Cygwin
1.1.7 Bash on Ubuntu on Windows
1.2 搭建macOS分析環境
1.2.1 安裝JDK
1.2.2 安裝Android SDK
1.2.3 安裝Android NDK
1.2.4 Android Studio集成開發環境
1.3 搭建Ubuntu分析環境
1.3.1 安裝JDK
1.3.2 安裝Android SDK
1.3.3 安裝Android NDK
1.3.4 Android Studio集成開發環境
1.4 常用逆向分析工具
1.5 常用Linux Shell命令
1.6 搭建源碼分析環境
1.6.1 在macOS中編譯Android源碼
1.6.2 在Ubuntu中編譯Android源碼
1.6.3 在Windows中編譯Android源碼
1.7 本章小結
第2章 如何分析Android程序
2.1 編寫第一個Android程序
2.1.1 創建Android工程
2.1.2 編譯生成APK文件
2.2 破解第一個Android程序
2.2.1 破解入手
2.2.2 反編譯APK文件
2.2.3 分析APK文件
2.2.4 修改smali文件的代碼
2.2.5 重新編譯APK文件並簽名
2.2.6 安裝和測試
2.2.7 小結
2.3 本章小結
第3章 Dalvik可執行格式與字節碼規範
3.1 Dalvik虛擬機
3.1.1 Dalvik虛擬機的特點
3.1.2 Dalvik虛擬機與Java虛擬機的區別
3.1.3 虛擬機的執行流程
3.1.4 虛擬機的執行方式
3.2 Dalvik語言基礎
3.2.1 Dalvik指令格式
3.2.2 DEX反匯編工具
3.2.3 Dalvik寄存器
3.2.4 寄存器命名法
3.2.5 Dalvik字節碼
3.3 Dalvik指令集
3.3.1 指令類型
3.3.2 空操作指令
3.3.3 數據操作指令
3.3.4 返回指令
3.3.5 數據定義指令
3.3.6 鎖指令
3.3.7 實例操作指令
3.3.8 數組操作指令
3.3.9 異常指令
3.3.10 跳轉指令
3.3.11 比較指令
3.3.12 字段操作指令
3.3.13 方法調用指令
3.3.14 數據轉換指令
3.3.15 數據運算指令
3.4 Dalvik指令練習
3.4.1 編寫smali文件
3.4.2 編譯smali文件
3.4.3 測試運行
3.5 本章小結
第4章 常見Android文件格式
4.1 庫文件
4.1.1 jar包
4.1.2 aar包
4.2 APK
4.2.1 APK文件結構
4.2.2 APK文件的生成流程
4.2.3 APK的安裝流程
4.3 classes.dex
4.3.1 DEX文件結構
4.3.2 DEX文件的驗證與優化過程
4.3.3 DEX文件的修改
4.3.4 MultiDex
4.4 AndroidManifest.xml
4.4.1 AndroidManifest.xml文件的格式
4.4.2 AXML文件格式
4.4.3 AXML文件的修改
4.5 resources.arsc
4.5.1 ARSC文件格式
4.5.2 ARSC文件的修改
4.6 META-INF目錄
4.6.1 CERT.RSA
4.6.2 MANIFEST.MF
4.6.3 CERT.SF
4.7 ODEX
4.7.1 生成ODEX文件
4.7.2 ODEX文件格式
4.7.3 將ODEX文件轉換成DEX文件
4.8 OAT
4.8.1 ART虛擬機
4.8.2 生成OAT文件
4.8.3 OAT文件格式
4.8.4 將OAT文件轉換成DEX文件
4.9 本章小結
第5章 靜態分析Android程序
5.1 靜態分析簡介
5.2 閱讀smali代碼
5.2.1 smali文件結構
5.2.2 循環語句
5.2.3 switch分支語句
5.2.4 try/catch語句
5.3 閱讀Java代碼
5.3.1 將DEX文件轉換成jar包
5.3.2 jar分析工具
5.4 代碼定位技巧
5.4.1 入口分析法
5.4.2 信息反饋法
5.4.3 特征函數法
5.5 使用JEB進行靜態分析
5.5.1 安裝JEB
5.5.2 JEB的靜態分析功能
5.5.3 JEB的腳本化與插件
5.6 使用IDA Pro進行靜態分析
5.6.1 IDA Pro對Android的支持
5.6.2 分析DEX文件
5.6.3 定位關鍵代碼
5.7 使用Androguard進行靜態分析
5.7.1 安裝Androguard
5.7.2 Androguard的使用方法
5.7.3 使用androlyze.py進行分析
5.8 本章小結
第6章 動態分析Android程序
6.1 動態分析框架
6.2 動態分析技巧
6.2.1 代碼註入法
6.2.2 棧跟蹤法
6.2.3 Method Profiling
6.2.4 UI檢查
6.3 使用JDB動態調試APK
6.4 使用JEB動態調試APK
6.5 使用IDA Pro動態調試APK
6.6 本章小結
第7章 ARM反匯編基礎
7.1 Android與ARM處理器
7.1.1 ARM處理器架構概述
7.1.2 Android支持的處理器架構
7.2 Android ARM EABI
7.2.1 armeabi
7.2.2 armeabi-v7a
7.2.3 arm64-v8a
7.3 ARM原生程序的生成過程
7.3.1 預處理
7.3.2 編譯
7.3.3 匯編