發表於2024-12-22
每一位Android開發者的必備之書!在Android這個平颱,我們已麵臨諸多威脅!
2013年超過1800萬颱Android設備會遭遇某種形式的惡意軟件的攻擊。
惡意代碼和病毒數量呈指數增長;
應用軟件和數字內容的版權不斷遭到侵害;
軟件破解、篡改、廣告庫修改和植入、應用內付費破解等普遍存在;
軟件本身的安全漏洞也頻繁齣現在國內外互聯網企業的産品中;
數據泄露和賬戶被盜等潛在風險讓人擔憂;
官方係統、第三方定製係統和預裝軟件的漏洞不斷被發現。
要掌握主動,免除威脅,你應瞭解真相!
安全技術幾乎都是雙刃劍,它們既能協助我們開發更有效的保護技術,也幾乎必定會被攻擊者學習和參考。這裏的問題是,大量安全技術的首次大範圍公開,是否會帶來廣泛的模仿和學習,從而引發更多的攻擊?在這個問題上,安全界一直存在爭議。這是任何一本裏程碑式的安全書籍都無法繞開的話題。
在《信息安全工程》中,Ross Anderson說:“盡管一些惡意分子會從這樣的書中獲益,但他們大都已經知道瞭這些技巧,而好人們獲得的收益會多得多。”
正是基於對這種觀念的認同,纔使得這本書呈現於此。
編輯的話
每一本書的誕生,都有讓人記住的事情。在這本書的齣版中,我印象深刻的是三點:
一,作者豐生強在一次給我交來樣稿時,其粗糙不規範的寫書格式和讀起來不是那麼順溜的語言錶達讓我囧瞭一下,我耐心的(也或許是有些耐著性子的?)在QQ上邊截圖邊詳細地告訴瞭他有哪些地方的格式被他忽略瞭,有哪些地方的話說得不夠清楚。
我說完後,他說他會認真修改好後再次給我發來。但說實話,我心裏沒指望他一次就能把格式給改好,因為對於一次寫書的作者來說,這種情況幾乎不曾齣現過。我做瞭繼續指導第3、4次的心理準備。讓我沒想到的是,幾天後他第二次交來的稿件就相當靚仔,讓我多少有些不相信自己的眼睛,格式規範美觀,語言流暢清楚,很難相信這是同一個人僅相隔幾天後的作品。他跟我說他是一個字一個字地來閱讀和修改每句話的。
二,他是很少的按時且保質保量完成書稿的。對於作者,不管水平高低,大多都擅長乾一件事情——拖稿,而策劃編輯不得不被迫乾另一件事情——催稿。但豐生強以實際行動打破瞭這一魔咒,他努力工作,在閤同規定的期限內按時交來瞭全稿。作為對作者拖稿見怪不怪的一名策劃編輯來說,縱然不至於說是老淚縱橫吧,那也是感觸良多啊。
但從另一角度說,那些能完全視閤同交稿期限為無物的作者也著實讓人不敢小覷,這得有多強大的心理素質纔能做到這一點呢,就這麼心平氣地跨過瞭最後期限。真心讓人糾結。
三,在整個寫作過程中,在談及技術時,豐生強所錶現齣的那些熱情、專注和樂觀。我一直信奉的一點是,如果一個作者不能在他所鑽研的領域體會到樂趣和幸福,那這樣的作者寫齣來的東西是不值得一讀的。好的內容就像好的食材,而那份熱情和樂趣則是烹飪的手法。
現在,書已經打開,希望你會喜歡。
本書策劃編輯 陳冰
2013年1月15日
《Android軟件安全與逆嚮分析》由淺入深、循序漸進地講解瞭Android係統的軟件安全、逆嚮分析與加密解密技術。包括Android軟件逆嚮分析和係統安全方麵的必備知識及概念、如何靜態分析Android軟件、如何動態調試Android軟件、Android軟件的破解與反破解技術的探討,以及對典型Android病毒的全麵剖析。強實踐性。缺乏可操作性,是Android安全方麵現有論文、白皮書、技術文章大的問題之一,很多人讀到後可能對內容有瞭一些概念,卻不知道從何下手。這本書的幾乎每一個部分,都結閤實際例子,一步步講解如何操作。強時效性。作者在寫作的同時,持續跟隨業界新進展,剛剛發布不久的Santoku虛擬機、APIMonitor等工具,以及Androguard的新特性等,已然齣現在瞭這本書中。
《Android軟件安全與逆嚮分析》適閤所有Android應用開發者、Android係統開發工程師、Android係統安全工作者閱讀學習。
豐生強(網名非蟲),Android軟件安全專傢。看雪論壇Android安全版版主;安卓巴士開發交流版版主。
對Android軟件與係統安全有狂熱的愛好和獨到的見解,對Android係統的全部源代碼進行過深入地研究和分析。逆嚮分析實戰經驗豐富。
在國內信息安全雜誌上發錶過多篇有價值的軟件安全文章,目前就職於國內某Android開發企業,常年混跡於看雪論壇(ID非蟲)。
第1章 Android程序分析環境搭建
1.1 Windows分析環境搭建
1.1.1 安裝JDK
1.1.2 安裝Android SDK
1.1.3 安裝Android NDK
1.1.4 Eclipse集成開發環境
1.1.5 安裝CDT、ADT插件
1.1.6 創建Android Virtual Device
1.1.7 使用到的工具
1.2 Linux分析環境搭建
1.2.1 本書的Linux環境
1.2.2 安裝JDK
1.2.3 在Ubuntu上安裝Android SDK
1.2.4 在Ubuntu上安裝Android NDK
1.2.5 在Ubuntu上安裝Eclipse集成開發環境
1.2.6 在Ubuntu上安裝CDT、ADT插件
1.2.7 創建Android Virtual Device
1.2.8 使用到的工具
1.3 本章小結
第2章 如何分析Android程序
2.1 編寫第一個Android程序
2.1.1 使用Eclipse創建Android工程
2.1.2 編譯生成APK文件
2.2 破解第一個程序
2.2.1 如何動手?
2.2.2 反編譯APK文件
2.2.3 分析APK文件
2.2.4 修改Smali文件代碼
2.2.5 重新編譯APK文件並簽名
2.2.6 安裝測試
2.3 本章小結
第3章 進入Android Dalvik虛擬機
3.1 Dalvik虛擬機的特點——掌握Android程序的運行原理
3.1.1 Dalvik虛擬機概述
3.1.2 Dalvik虛擬機與Java虛擬機的區彆
3.1.3 Dalvik虛擬機是如何執行程序的
3.1.4 關於Dalvik虛擬機JIT(即時編譯)
3.2 Dalvik匯編語言基礎為分析Android程序做準備
3.2.1 Dalvik指令格式
3.2.2 DEX文件反匯編工具
3.2.3 瞭解Dalvik寄存器
3.2.4 兩種不同的寄存器錶示方法——v命名法與p命名法
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指令集練習——寫一個Dalvik版的Hello World
3.4.1 編寫smali文件
3.4.2 編譯smali文件
3.4.3 測試運行
3.5 本章小結
第4章 Android可執行文件
4.1 Android程序的生成步驟
4.2 Android程序的安裝流程
4.3 dex文件格式
4.3.1 dex文件中的數據結構
4.3.2 dex文件整體結構
4.3.3 dex文件結構分析
4.4 odex文件格式
4.4.1 如何生成odex文件
4.4.2 odex文件整體結構
4.4.3 odex文件結構分析
4.5 dex文件的驗證與優化工具dexopt的工作過程
4.6 Android應用程序另類破解方法
4.7 本章小結
第5章 靜態分析Android程序
5.1 什麼是靜態分析
5.2 快速定位Android程序的關鍵代碼
5.2.1 反編譯apk程序
5.2.2 程序的主Activity
5.2.3 需重點關注的Application類
5.2.4 如何定位關鍵代碼——六種方法
5.3 smali文件格式
5.4 Android程序中的類
5.4.1 內部類
5.4.2 監聽器
5.4.3 注解類
5.4.4 自動生成的類
5.5 閱讀反編譯的smali代碼
5.5.1 循環語句
5.5.2 switch分支語句
5.5.3 try/catch語句
5.6 使用IDA Pro靜態分析Android程序
5.6.1 IDA Pro對Android的支持
5.6.2 如何操作
5.6.3 定位關鍵代碼——使用IDA Pro進行破解的實例
5.7 惡意軟件分析工具包——Androguard
5.7.1 Androguard的安裝與配置
5.7.2 Androguard的使用方法
5.7.3 使用Androguard配閤Gephi進行靜態分析
5.7.4 使用androlyze.py進行靜態分析
5.8 其他靜態分析工具
5.9 閱讀反編譯的Java代碼
5.9.1 使用dex2jar生成jar文件
5.9.2 使用jd-gui查看jar文件的源碼
5.10 集成分析環境——santoku
5.11 本章小結
第6章 基於Android的ARM匯編語言基礎——逆嚮原生!
6.1 Android與ARM處理器
6.1.1 ARM處理器架構概述
6.1.2 ARM處理器傢族
6.1.3 Android支持的處理器架構
6.2 原生程序與ARM匯編語言——逆嚮你的原生Hello ARM
6.2.1 原生程序逆嚮初步
6.2.2 原生程序的生成過程
6.2.3 必須瞭解的ARM知識
6.3 ARM匯編語言程序結構
6.3.1 完整的ARM匯編程序
6.3.2 處理器架構定義
6.3.3 段定義
6.3.4 注釋與標號
6.3.5 匯編器指令
6.3.6 子程序與參數傳遞
6.4 ARM處理器尋址方式
6.4.1 立即尋址
6.4.2 寄存器尋址
6.4.3 寄存器移位尋址
6.4.4 寄存器間接尋址
6.4.5 基址尋址
6.4.6 多寄存器尋址
6.4.7 堆棧尋址
6.4.8 塊拷貝尋址
6.4.9 相對尋址
6.5 ARM與Thumb指令集
6.5.1 指令格式
6.5.2 跳轉指令
6.5.3 存儲器訪問指令
6.5.4 數據處理指令
6.5.5 其他指令
6.6 用於多媒體編程與浮點計算的NEON與VFP指令集
6.7 本章小結
第7章 Android NDK程序逆嚮分析
7.1 Android中的原生程序
7.1.1 編寫一個例子程序
7.1.2 如何編譯原生程序
7.2 原生程序的啓動流程分析
7.2.1 原生程序的入口函數
7.2.2 main函數究竟何時被執行
7.3 原生文件格式
7.4 原生C程序逆嚮分析
7.4.1 原生程序的分析方法
7.4.2 for循環語句反匯編代碼的特點
7.4.3 if...else分支語句反匯編代碼的特點
7.4.4 while循環語句反匯編代碼的特點
7.4.5 switch分支語句反匯編代碼的特點
7.4.6 原生程序的編譯時優化
7.5 原生C++程序逆嚮分析
7.5.1 C++類的逆嚮
7.5.2 Android NDK對C++特性的支持
7.5.3 靜態鏈接STL與動態鏈接STL的代碼區彆
7.6 Android NDK JNI API逆嚮分析
7.6.1 Android NDK提供瞭哪些函數
7.6.2 如何靜態分析Android NDK程序
7.7 本章小結
第8章 動態調試Android程序
8.1 Android動態調試支持
8.2 DDMS的使用
8.2.1 如何啓動DDMS
8.2.2 使用LogCat查看調試信息
8.3 定位關鍵代碼
8.3.1 代碼注入法——讓程序自己吐齣注冊碼
8.3.2 棧跟蹤法
8.3.3 Method Profiling
8.4 使用AndBug調試Android程序
8.4.1 安裝AndBug
8.4.2 使用AndBug
8.5 使用IDA Pro調試Android原生程序
8.5.1 調試Android原生程序
8.5.2 調試Android原生動態鏈接庫
8.6 使用gdb調試Android原生程序
8.6.1 編譯gdb與gdbserver
8.6.2 如何調試
8.7 本章小結
第9章 Android軟件的破解技術
9.1 試用版軟件
9.1.1 試用版軟件的種類
9.1.2 實例破解——針對授權KEY方式的破解
9.2 序列號保護
9.3 網絡驗證
9.3.1 網絡驗證保護思路
9.3.2 實例破解——針對網絡驗證方式的破解
9.4 In-app Billing(應用內付費)
9.4.1 In-app Billing原理
9.4.2 In-app Billing破解方法
9.5 Google Play License保護
9.5.1 Google Play License保護機製
9.5.2 實例破解——針對Google Play License方式的破解
9.6 重啓驗證
9.6.1 重啓驗證保護思路
9.6.2 實例破解——針對重啓驗證方式的破解
9.7 如何破解其他類型的Android程序
9.7.1 Mono for Android開發的程序及其破解方法
9.7.2 Qt for Android開發的程序及其破解方法
9.8 本章小結
第10章 Android程序的反破解技術
10.1 對抗反編譯
10.1.1 如何對抗反編譯工具
10.1.2 對抗dex2jar
10.2 對抗靜態分析
10.2.1 代碼混淆技術
10.2.2 NDK保護
10.2.3 外殼保護
10.3 對抗動態調試
10.3.1 檢測調試器
10.3.2 檢測模擬器
10.4 防止重編譯
10.4.1 檢查簽名
10.4.2 校驗保護
10.5 本章小結
第11章 Android係統攻擊與防範
11.1 Android係統安全概述
11.2 手機ROOT帶來的危害
11.2.1 為什麼要ROOT手機
11.2.2 手機ROOT後帶來的安全隱患
11.2.3 Android手機ROOT原理
11.3 Android權限攻擊
11.3.1 Android權限檢查機製
11.3.2 串謀權限攻擊
11.3.3 權限攻擊檢測
11.4 Android組件安全
11.4.1 Activity安全及Activity劫持演示
11.4.2 Broadcast Receiver 安全
11.4.3 Service安全
11.4.4 Content Provider安全
11.5 數據安全
11.5.1 外部存儲安全
11.5.2 內部存儲安全
11.5.3 數據通信安全
11.6 ROM安全
11.6.1 ROM的種類
11.6.2 ROM的定製過程
11.6.3 定製ROM的安全隱患
11.6.4 如何防範
11.7 本章小結
第12章 DroidKongFu變種病毒實例分析
12.1 DroidKongFu病毒介紹
12.2 配置病毒分析環境
12.3 病毒執行狀態分析
12.3.1 使用APIMonitor初步分析
12.3.2 使用DroidBox動態分析
12.3.3 其他動態分析工具
12.4 病毒代碼逆嚮分析
12.4.1 Java層啓動代碼分析
12.4.2 Native層啓動代碼分析
12.4.3 Native層病毒核心分析
12.5 DroidKongFu病毒框架總結
12.6 病毒防治
12.7 本章小結
……
近幾年,Android在國內的發展極其迅猛,這除瞭相關産品強大的功能與豐富的應用外,更是因為它優良的性能錶現吸引著用戶。2011年可謂是Android的風光年,從手機生産商到應用開發者都紛紛捧場,短短幾個月的時間,Android在國內紅遍瞭大街小巷,截止到2012年的第一個季度,Android在國內的市場份額就超過60%,將曾經風靡一時的塞班係統遠遠的甩在瞭身後,與此同時,它也帶動瞭國內移動互聯網行業的發展,創造瞭更多就業的崗位,國內IT人士為之雀躍歡呼。
隨著Android在國內的興起,基於Android的平颱應用需求也越來越復雜。形形色色的軟件壯大瞭Android市場,也豐富瞭我們的生産生活,越來越多的人從起初的嘗試到享受再到依賴,沉浸在Android的神奇海洋中。事情有利也總有弊,即使Android如此優秀也會有怨聲載道的時候,各種信息泄露、惡意扣費、係統被破壞的事件也屢見不鮮,Android係統的安全也逐漸成為人們所關注的話題。
如今市場上講解Android開發的書籍已經有很多瞭,從應用軟件開發層到係統底層的研究均豐富涵蓋,其中不乏一些經典之作,然而遺憾的是,分析Android軟件及係統安全的書籍卻一本也沒有,而且相關的中文資料也非常匱乏,這使得普通用戶以及大多數Android應用開發者對係統的安全防護及軟件本身沒有一個全麵理性的認識。因此,筆者決定將自身的實際經驗整理,編寫為本書。
內容導讀
本書主要從軟件安全和係統安全兩個方麵講解Android平颱存在的攻擊與防範方法。
第1章和第2章主要介紹Android分析環境的搭建與Android程序的分析方法。
第3章詳細介紹瞭Dalvik VM匯編語言,它是Android平颱上進行安全分析工作的基礎知識,讀者隻有掌握瞭這部分內容纔能順利地學習後麵的章節。
第
Android軟件安全與逆嚮分析 下載 mobi epub pdf txt 電子書 格式
Android軟件安全與逆嚮分析 下載 mobi pdf epub txt 電子書 格式 2024
Android軟件安全與逆嚮分析 下載 mobi epub pdf 電子書幫朋友買的,他說質量不錯。
評分外麵缺少包裝,運來的時候有點髒
評分評分很高
評分還沒看,應該不錯
評分非常前沿,非常全麵,非常詳細,可操作性強!
評分東西很好,送貨也快,@的贊!!!
評分馬馬虎虎 就是版本有點老
評分希望作者可以更新第二 第三版!
評分書包裝完好,希望有用
Android軟件安全與逆嚮分析 mobi epub pdf txt 電子書 格式下載 2024