2015年6月20日 星期六

新書推薦-「Android及ARM原生語言:逆向工程破解Android APP安全(第2版)」書評

 

新書推薦-「Android及ARM原生語言:逆向工程破解Android APP安全(第2版)」書評

 

詳細介紹(點我)

 

 

 閱讀心得,心得感想,書評


內容簡介




  別讓你的程式碼成為別人的砲灰。



  第一本有系統地介紹Android逆向技術和安全分析技術的書。



  市面上有關Android 開發的書籍很多,不乏涵蓋從應用軟體開發層到系統底層的研究,。然而遺憾的是,分析Android 軟體及系統安全的書籍卻一本也沒有,而且相關的中文資料也非常匱乏,這使得一般使用者以及大多數Android 應用程式開發者對系統的安全防護及軟體本身沒有一個全面理性的認識。



  本書有系統地介紹Android逆向技術和安全分析技術,從軟體安全和系統安全二方面說明Android平台存在的攻擊與防範方法。



本書特色



  1實作性強


  結合實際實例,一步步說明如何操作。對剛入門或想快速了解其中某個話題的人會有很大的幫助。簡潔、清晰是其顯著的特點,一般放在每一個模組的開始部分,讓讀者對每一個模組都有一個清晰、全域的認識。



  2時效性強

  涵蓋Santoku 虛擬機器、APIMonitor 等工具,以及Androguard 的新特性。



  3深度和廣度適當

  本書的面向很廣,目錄內容就是一份極好的自學參考大綱。對每個模組均列出執行結果和對應圖示,幫助讀者更直觀地了解實例程式。



 

作者介紹




作者簡介



豐生強




  網名非蟲,Android軟體安全專家。看雪論壇Android安全版版主、安卓巴士開發交流版版主。



  對Android軟體與系統安全有狂熱的愛好和獨到的見解,對Android系統的全部原始程式碼進行過深入地研究和分析。逆向分析實戰經驗豐富。



  在資訊安全雜誌上發表過多篇有價值的軟體安全文章,目前就職於某Android開發企業,常年混跡於看雪論壇(ID非蟲)。



 

目錄




前言



第1章  Android程式分析環境架設

1.1 Windows分析環境架設     

1.2 Linux分析環境架設     

1.3 本章小結    



第2章  如何分析Android程式

2.1 撰寫第一個Android程式     

2.2 破解第一個程式     

2.3 本章小結



第3章  進入Android Dalvik虛擬機器

3.1 Dalvik虛擬機器的特點——熟練Android程式的執行原理     

3.2 Dalvik組合語言基礎為分析Android程式做準備      

3.3 Dalvik指令集     

3.4 Dalvik指令集練習——寫一個Dalvik版的Hello World     

3.5 本章小結



第4章  Android可執行檔

4.1 Android程式的產生步驟     

4.2 Android程式的安裝流程     

4.3 dex檔案格式     

4.4 odex檔案格式     

4.5 dex檔案的驗證與最佳化工具dexopt的工作過程     

4.6 Android應用程式另類別破解方法     

4.7 本章小結



第5章  靜態分析Android程式

5.1 什麼是靜態分析     

5.2 快速找出Android程式的關鍵程式     

5.3 smali檔案格式     

5.4 Android程式中的類別     

5.5 閱讀反編譯的smali程式     

5.6 使用IDA Pro靜態分析Android程式     

5.7 惡意軟體分析工具套件——Androguard     

5.8 其他靜態分析工具     

5.9 閱讀反編譯的Java程式

5.10 整合分析環境——santoku     

5.11 本章小結



第6章 以Android為基礎的ARM組合語言基礎——逆向原生!

6.1 Android與ARM處理器

6.2 原生程式與ARM組合語言——逆向你的原生Hello ARM     

6.3 ARM組合語言程式結構     

6.4 ARM處理器定址方式     

6.5 ARM與Thumb指令集     

6.6 用於多媒體程式設計與浮點計算的NEON與VFP指令集     

6.7 本章小結      



第7章 Android NDK程式逆向分析     

7.1 Android中的原生程式     

7.2 原生程式的啟動流程分析     

7.3 原生檔案格式     

7.4 原生C程式逆向分析      

7.5 原生C++程式逆向分析

7.6 Android NDK JNI API逆向分析     

7.7 本章小結     



第8章 動態偵錯Android程式     

8.1 Android動態偵錯支援     

8.2 DDMS的使用     

8.3 定位關鍵程式     

8.4 使用AndBug偵錯Android程式     

8.5 使用IDA Pro偵錯Android原生程式     

8.6 使用gdb偵錯Android原生程式     

8.7 本章小結     



第9章 Android軟體的破解技術     

9.1 試用版軟體     

9.2 序號保護     

9.3 網路驗證     

9.4 In-app Billing(應用內付費)     

9.5 Google Play License保護     

9.6 重新啟動驗證     

9.7 如何破解其他型態的Android程式     

9.8 本章小結     



第10章 Android程式的反破解技術     

10.1 對抗反編譯     

10.2 對抗靜態分析     

10.3 對抗動態偵錯     

10.4 防止重編譯     

10.5 本章小結     



第11章 Android系統攻擊與防範     

11.1 Android系統安全概述     

11.2 手機ROOT帶來的危害     

11.3 Android許可權攻擊     

11.4 Android元件安全     

11.5 資料安全      

11.6 ROM安全     

11.7 本章小結     



第12章 DroidKongFu變種病毒實例分析     

12.1 DroidKongFu病毒介紹     

12.2 設定病毒分析環境     

12.3 病毒執行狀態分析     

12.4 病毒程式逆向分析     

12.5 DroidKongFu病毒框架歸納     

12.6 病毒防治     

12.7 本章小結






 




前言



  近幾年,Android的發展極其快速,除了相關產品強大的功能與豐富的應用外,更是因為它優良的效能表現吸引著使用者。2011年可謂是Android的風光年,從手機生產商到應用程式開發者都紛紛捧場,短短幾個月的時間,Android紅遍了大街小巷,截止到2013年的第一季,Android的市佔率就超過65%,將曾經風靡一時的Symbian系統遠遠的甩在了身後,與此同時,它也帶動了行動網際網路產業的發展,創造了更多就業的職位,IT人士為之雀躍歡呼。



  隨著Android的興起,以Android為基礎的平台應用需求也越來越複雜。形形色色的軟體壯大了Android市場,也豐富了我們的生活,越來越多的人從起初的嘗試到享受再到依賴,沉浸在Android的神奇海洋中。



  事情有利也總有弊,即使Android如此優秀也會有怨聲載道的時候,各種資訊洩露、惡意扣費、系統被破壞的事件也屢見不鮮,Android系統的安全也逐漸成為人們所關注的話題。



  如今市場上說明Android開發的書籍已經有很多了,從應用軟體開發層到系統底層的研究均豐富涵蓋,其中不乏一些經典之作,然而遺憾的是,分析Android軟體及系統安全的書籍卻一本也沒有,而且相關的中文資料也非常匱乏,這使得普通使用者以及大多數Android應用程式開發者對系統的安全防護及軟體本身沒有一個全面理性的認識。因此,筆者決定將本身的實際經驗整理,撰寫為本書。



  內容導讀



  本書主要從軟體安全和系統安全兩個方面說明Android平台存在的攻擊與防範方法。



  第1章和第2章主要介紹Android分析環境的架設與Android程式的分析方法。



  第3章詳細介紹Dalvik VM組合語言,它是Android平台上進行安全分析工作的基礎知識,讀者只有熟練了這部分內容才能順利地學習後面的章節。



  第4章介紹Android平台的可執行檔,它是Android軟體得以執行的基礎,我們大多數的分析工作都是基於它,因此這部分內容必須熟練。



  第5章起正式開始了對Android程式的分析,對這部分的了解與運用完全是建立在前面章節的基礎之上。這一章詳細說明了Android軟體的各種反組譯程式特徵,以及可供使用的分析工具,如何合理搭配使用它們是這章需要學習的重點。



  第6章主要說明ARM組合語言的基礎知識,在這一章中,會對ARM組合語言指令集做一個簡要的介紹,為下一章的學習做準備。



  第7章是本書的進階部分,主要介紹了以ARM架構為基礎的Android原生程式的特點以及分析它們的方法,讀者需要在這一章中仔細的體會並實作,鑑於這種程式目前在市場上比較流行,讀者在閱讀時需要多進行實作操作,多動手分析這種程式,加強自己的逆向分析能力。



  第8章介紹了Android平台上軟體的動態偵錯技術,動態偵錯與靜態分析是逆向分析程式時的兩大主要技術方法,各具有優缺點,透過動態偵錯可以讓你看到軟體執行到某一點時程式的狀態,對了解程式執行流程有很大的幫助。



  第9章詳細介紹了Android平台軟體的破解方法。主要分析了目前市場上一些常見的Android程式保護方法,分析它們的保護效果以及介紹如何對它們進行破解,透過對本章的學習,讀者會對Android平台上的軟體安全有一種“恍然大悟”的感覺。



  第10章介紹了在以軟體可能被破解為目的的情況下,如何加強Android平台軟體的保護,內容與第9章是對立的,只有同時熟練了攻與防,才能將軟體安全真正地熟練合格。



  第11章從系統安全的角度出發,分析了Android系統中不同環節可能存在的安全隱憂,同時介紹了以這些安全問題時,如何做出對應為目的的保護措施。另外,本章的部分小節還從開發人員的角度出發,說明不安全程式對系統造成的危害,讀者在熟練這部分內容後,撰寫程式的安全意識會明顯加強。



  第12章採用病毒實戰分析的方式,將前面所學的知識全面展示並加以應用,讓讀者能徹底地熟練分析Android程式的方法。本章的內容詳實、知識涵蓋範圍廣,讀者完全熟練本章內容後,以後動手分析Android程式時,便能夠信手拈來。



  為了讓讀者對文中所說明的內容有深刻的認識,並且在閱讀時避免感到乏味,書中的內容不會有關太多的基礎理論知識,而更多的是採用動手實作的方式說明,所以在閱讀本書前假設讀者已經熟練了Android程式開發所必備的基礎知識,如果讀者還不具備這些基礎知識的話,請先打好基礎後再閱讀本書。



  適合的讀者



  本書適合以下讀者:

  Android應用程式開發者、Android系統開發工程師、Android系統安全工作者。



  本書約定



  為了使書中說明的知識更加容易了解,想法更加清晰,本書做了以下約定:



  .在說明部分內容時,可能會對Android系統與核心的原始程式加以參考,如文中無實際說明系統版本,則統一為Android 4.1的系統, Linux 3.4的核心。



  .不介紹Android系統原始程式的下載方法,假設讀者已經自行下載好了Android系統原始程式。



  .在參考Android系統原始程式時,為了避免程式佔用過多篇幅及影響主體的分析想法,在不影響了解的情況下,對摘抄的內容進行適量的刪減。



  .在列舉實例程式時,為了方便讀者閱讀與了解,對程式中的關鍵部分採用粗體顯示。



  .在列出指令的格式用法時,為了醒目起見,採用斜體顯示。



  .對於部分操作容易發生錯誤或了解上造成問題的地方,會在下面加上文字標籤註釋。如:注意 Smali程式的語法與格式會在本書第3章進行詳細介紹。






沒有留言: