- Android應用安全實戰:Frida協議分析
- 李岳陽 卓斌編著
- 1454字
- 2022-11-23 17:37:01
前言
Android應用的安全問題在業內備受關注,但這方面相關的系統性資料卻不多。本書從Hook框架Frida出發來講解如何對Android應用的協議進行分析。
這本書講了什么
本書共8章,全書整體圍繞Frida框架進行講解,并配合大量實戰,相信會讓讀者學會該框架的使用方法。
第1章介紹的是在Android系統下使用Frida框架進行逆向的環境搭建。當然這里安裝的環境只是最基礎的環境,實際上Android逆向需要配置的環境比這多得多。比如反編譯dex需要的jadx、jeb工具,反編譯so文件需要的IDA工具,開發App應用程序需要的Android Studio,以及各種抓包工具等。不過,一開始能夠掌握最基本的逆向工具就已經足夠了。
第2章主要介紹Java層的逆向分析,Android應用最常見的代碼都存放在Java層,因此對熟悉Android正向開發的讀者來說,學習逆向也是較為簡單的。配合本章的實戰,學習完這章之后,一般較為簡單的Android應用的協議分析讀者就都可以解決了。
第3章主要介紹關鍵代碼快速定位,看似只是一堆分散的技巧羅列,實際上是進行逆向工作最基本的方法。因為在實際的逆向分析中,不可能去逐行查看反編譯后的代碼,而只憑感覺定位也是不夠的,這里把一些常用的定位方法總結起來,能夠幫助讀者快速提高逆向效率。
第4章介紹了算法“自吐”腳本的開發,本章的內容比較重要,因為它擺脫了以往將純逆向視為體力勞動的片面思想,進入了更抽象的框架開發。基于Frida的框架開發并不難,所謂熟能生巧,把日常逆向工作中常用的操作封裝起來,就可以慢慢積累成框架。讀者可以在完成本章的學習后對“自吐”框架進行完善,增加更多功能。
第5章介紹了so層的逆向分析,只要是有志于在逆向分析領域有所精進的逆向工作者,都必須學會so層的逆向分析,因為一般有難度的Android應用都會使用so層加密。
第6章介紹了JNI函數的Hook和快速定位,在so層逆向分析中,經常需要和JNI函數打交道,掌握JNI函數的Hook是必要的。
第7章講解內存讀寫、各種系統函數的Hook,以及各種代碼的trace方法。
第8章介紹了Frida框架算法轉發方案,能夠將Android應用本身當作解密工具,也可以建立解密API方便調用。
學習本書需要注意的事項
書中的Hook框架Frida在命令中多是首字母小寫形式frida。
App應用程序指的是Android系統下的APK。
當提到某函數的參數個數是3,指的是從1開始共3個參數。
當提到某函數的第3個參數,指的是從0開始的第4個參數。
另外,本書的初衷是為了讓讀者掌握Frida這一Hook框架,并將其用于工作和學習當中,為避免對書中提供的案例造成不利影響,本書對涉及的具體應用名和包名都會進行省略。
什么人適合看這本書
本書是零基礎,可以說,只要是對Android應用安全感興趣的人都可以閱讀。當然,具有一定Android開發基礎的人讀起來會更加輕松。值得一提的是,當下熱門的網絡爬蟲,在對Android應用進行數據爬取時,必然要用到書里的知識。本書貴在實用,沒有講解大量簡單的基礎知識,而是以實戰為主,對大量實際Android應用進行分析,跟著書中內容認真操作會讓你飛速進步。
本書的資源有哪些
本書的學習需要配合卓斌開發的Android測試應用,因為書中的實操大多是在該應用程序上實踐的。此外,也會為讀者提供書中進行逆向分析的案例樣本和所有代碼(掃描封底二維碼即可獲得),而且部分章節還配有視頻(掃描書中二維碼即可觀看)。
讀者如果在操作過程中有任何問題,或者有解決不了的難題,歡迎聯系我們,可以添加微信(xiaojianbang8888或者Charleval),也可以加入讀者QQ群945868932。本人和卓斌致力于安全逆向教育多年,涉及領域包括網絡爬蟲、JavaScript逆向、Android逆向、深度學習圖像識別等。讀者有進一步學習的想法,或者對于書中的知識有任何問題,都可以通過以上渠道聯系我們,我們可以共同討論解決。
由于編者水平有限,對書中的不足之處,懇請讀者批評指正。
李岳陽