描述
內容簡介
☆★☆★【偶爾想走後門,卻不知如何下手?】★☆★☆ 只有本書,教你如何「安全逆向」!
駭客堅持使用Android而非iPhone最大的原因,就是其基於Linux的開放及「可亂搞」性。然而就是因為Linux的開放及「可亂搞」,使得Android系統的安全性一直飽受質疑。當你在使用手機時,後台的演算法及爬蟲不斷地從你的手機中撈出資料,因此逆向工程及App安全,一直是Android駭客最感興趣的技術領域。Frida自從2014年末問世以來,迅速在全球安全社區掀起了熱潮,借助Frida動態修改記憶體的特性實現了快速逆向和演算法呼叫功能,Android應用安全分析和對抗技術從未像如今這樣成熟和自動化。然而道高一尺魔高一丈,大型軟體和平台的開發者也逐漸把演算法藏得越來越深,增加演算法本身的複雜度,或利用中間層將演算法保護,使得逆向工作變得更加困難,而Frida的沙盒機制,讓大家能更利用簡單的逆向方法解決這些問題。本書充實地介紹了如何安裝和使用Frida、基本的環境架設、Frida-tools、Frida指令稿、Frida API、批次自動化Trace和分析、RPC遠端方法呼叫,並包含大量App逆向與協定分析案例實戰,此外,還介紹了更加穩定的框架Xposed的使用方法,以及從Android原始程式開始訂製屬於自己的抓取封包沙盒,打造無法被繞過的抓取封包環境等內容。
本書看點 ✪真正Android逆向工程的實作框架 ✪動態修改記憶體架構,使用Kali-Nethunter ✪VM中安裝Kali連上Android手機進行 ✪Xposed、Xposed Hook完整安裝及使用說明 ✪封包/套件截取沙盒 ✪Frida逆向、RPC、協定分析及取證 ✪Android原始碼編輯及Xposed魔改 ✪Android沙盒加解密庫、網路庫、系統庫「自吐」 ✪收費直播間逆向分析 ✪會員制非法應用破解付費繞過機制 |
作者簡介
陳佳林
看雪論壇版主,看雪公司講師,樹莓派玩家,在移動安全領域經驗豐富,多次主持銀行、電信及行業部門培訓並參與安全研究項目;在看雪安全開發者峰會、GeekPwn多次發表主題演講;愛折騰、興趣廣泛,樹莓派骨灰級愛好者,Frida傳授者,基於Frida r0capture抓包工具開發者。 |
目錄
第1章 Android逆向環境架設
1.1 虛擬機器環境準備 1.2 逆向環境準備 1.3 行動裝置環境準備 1.4 Frida開發環境架設 1.5 本章小結
第2章 Frida Hook基礎與快速定位 2.1 Frida基礎 2.2 Hook快速定位方案 2.3 本章小結
第3章 Frida指令稿開發之主動呼叫與RPC入門 3.1 Frida RPC開發姿勢 3.2 Frida Java層主動呼叫與RPC 3.3 Frida Native層函數主動呼叫 3.4 本章小結
第4章 Frida逆向之違法App協定分析與取證實戰 4.1 保護App協定分析 4.2 違法應用取證分析與VIP破解 4.3 本章小結
第5章 Xposed Hook及主動呼叫與RPC實現 5.1 Xposed應用Hook 5.2 Xposed主動呼叫與RPC實現 5.3 本章小結
第6章 Android原始程式編譯與Xposed魔改 6.1 Android原始程式環境架設 6.2 Xposed訂製 6.3 本章小結
第7章 Android沙盒之加解密庫“自吐” 7.1 沙盒介紹 7.2 雜湊演算法“自吐” 7.3 crypto_filter_aosp專案移植 7.4 本章小結
第8章 Android沙盒開發之網路庫與系統庫“自吐” 8.1 從r0capture到原始程式沙盒網路庫“自吐” 8.2 風控對抗之簡單實現裝置資訊的篡改 8.3 本章小結
第9章 Android協定分析之收費直播間逆向分析 9.1 VIP功能繞過 9.2 協定分析 9.3 主動呼叫分析 9.4 本章小結
第10章 Android協定分析之會員制非法應用破解 10.1 r0tracer介紹與原始程式剖析 10.2 付費功能繞過 10.3 協定分析 10.4 打造智慧聊天機器人 10.5 本章小結 |
序
Android作業系統目前在全球佔據主流,大量網際網路、市政、金融、O2O、叫車平台等公司及部門將業務依靠於App的方式交付給最終使用者,這些App真的安全嗎?有各類爬蟲軟體對票務、企業個人資訊等App內容的瘋狂抓取,因此App的安全、逆向工程及自動化利用技術越來越受到App開發者的關注。
自從Frida於2014年年末問世以來,迅速在全球安全社區掀起了“Frida熱潮”,借助Frida動態修改記憶體的特性實現了快速逆向和演算法呼叫功能,Android應用安全分析和對抗技術從未像如今這樣成熟和自動化。 作為Android應用安全測評工程師,或巨量資料平台擷取工程師,逆向研究員對於App的逆向分析研究及其演算法的還原和介面呼叫的熱愛仿佛是刻在骨子裡的。 與逆向技術的發展相對應的是,很多大型軟體和平台的開發者也逐漸把演算法藏得越來越深,越來越難以逆向。這裡面最具有代表性的是強混淆框架Ollvm和Arm層的虛擬機器保護技術Vmp,前者注重增加演算法本身的複雜度,後者透過增加一套中間層將演算法保護起來,使得逆向工作變得更加困難,顯然,逆不出中間層也就還原不出演算法。 面對這種情況我們該如何應對呢?解決辦法是採用黑盒呼叫的方式,忽略演算法的具體細節,使用Frida把SO載入起來,直接呼叫裡面的演算法得到計算結果,構造出正確的參數,將封包傳給伺服器。也可以將呼叫過程封裝成API曝露給同事使用,甚至架設計算叢集,加快運行速度,提高運行效率。本書詳細地介紹了基於Frida和Xposed的演算法批次呼叫和轉發實踐,並舉出了具體的案例分析。 如果App對Frida或Xposed進行了檢測,我們還可以採用編譯Android原始程式的方式打造屬於自己的抓取封包沙盒。對系統來說,由於App的全部程式都是依賴系統去完成執行的,因此無論是保護App在執行時期的脫殼,還是App發送和接收資料封包,對系統本身來說App的行為都是沒有隱私的。換句話說,如果在系統層或更底層對App的行為進行監控,App的很多關鍵資訊就會曝露在“陽光”之下一覽無餘。之後可以直接修改系統原始程式,使用r0capture工具為Hook的那些API中加入一份日誌,即可把處於明文狀態的封包列印出來,從而實現無法對抗的抓取封包系統沙盒。 Frida以其簡潔的介面和強大的功能迅速俘獲了Android應用安全研究員以及爬蟲研究員的芳心,成為逆向工作中的絕對主力,筆者也有幸在Frida普及的浪潮中做了一些複習和分享,建立了自己的社群,與大家一起跟隨Frida的更新腳步共同成長和進步。 本書充實地介紹了如何安裝和使用Frida、基本的環境架設、Frida-tools、Frida指令稿、Frida API、批次自動化Trace和分析、RPC遠端方法呼叫,並包含大量App逆向與協定分析案例實戰,此外,還介紹了更加穩定的框架Xposed的使用方法,以及從Android原始程式開始訂製屬於自己的抓取封包沙盒,打造無法被繞過的抓取封包環境等內容。 本書技術新穎,案例豐富,注重實操,適合以下人員閱讀: l Android應用安全工程師。 l Android逆向分析工程師。 l 爬蟲工程師。 l 巨量資料收集和分析工程師。 在本書完稿時,Frida版本更新到15,Android也即將推出版本12,不過請讀者放心,本書中的程式可以在特定版本的Frida和Android中成功運行。 Android逆向是一門實踐性極強的學科,讀者在動手實踐的過程中難免會產生各式各樣的疑問,因此筆者特地準備了GitHub倉庫更新和勘誤,讀者如有疑問可以到倉庫的issue頁面提出,筆者會盡力解答和修復。筆者的GitHub:https://github.com/r0ysue/AndroidFridaSeniorBook。
陳佳林 |