安卓Frida逆向與抓包實戰( 簡體 字) | |
作者:陳佳林 | 類別:1. -> 程式設計 -> 綜合 |
出版社:清華大學出版社 | 3dWoo書號: 55089 詢問書籍請說出此書號! 有庫存 NT售價: 495 元 |
出版日:9/1/2021 | |
頁數:312 | |
光碟數:0 | |
站長推薦: | |
印刷:黑白印刷 | 語系: ( 簡體 字 ) |
ISBN:9787302587477 | 加入購物車 │加到我的最愛 (請先登入會員) |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證, 繁體書的下載亦請直接連絡出版社) | |
第1章環境準備 1
1.1虛擬機環境準備 1 1.2逆向過程的環境準備 3 1.3移動設備環境準備 7 1.3.1刷機 7 1.3.2ROOT 11 1.4KaliNetHunter刷機 14 1.5本章小結 18 第2章安卓逆向過程必備基礎 19 2.1Android相關基礎介紹 19 2.1.1系統架構 19 2.1.2Android四大組件 21 2.2從HelloWorld開始了解Android的 開發流程 21 2.2.1第一行代碼HelloWorld的 開發流程 22 2.2.2HelloWorld分析與完善 24 2.3安卓逆向過程中的常用命令 27 2.3.1常用Linux命令介紹 27 2.3.2Android特有的adb命令 介紹 30 2.4本章小結 35 第3章Frida逆向入門之Java層Hook 36 3.1Frida基礎 36 3.1.1Frida介紹 36 3.1.2Frida環境搭建 37 3.1.3Frida基礎介紹 39 3.1.4FridaIDE配置 40 3.2Frida腳本入門 41 3.2.1Frida腳本的概念 41 3.2.2Java層Hook基礎 43 3.2.3Java層主動調用 50 3.3RPC及其自動化 53 3.4本章小結 58 第4章Objection快速逆向入門 59 4.1Objection介紹 59 4.2Objection安裝與使用 60 4.2.1Objection安裝 60 4.2.2Objection使用 62 4.3Objection實戰 71 4.3.1Jadx/Jeb/GDA介紹 72 4.3.2Objection結合Jeb分析 76 4.4Frida開發思想 84 4.4.1定位:Objection輔助定位 84 4.4.2利用:Frida腳本修改參數、 主動調用 90 4.4.3規模化利用:Python規模化 利用 94 4.5本章小結 96 第5章App攻防博弈過程 97 5.1App攻防技術演進 97 5.1.1APK結構分析 97 5.1.2App攻防技術發展 99 5.2Smali語言簡介 105 5.3對App進行分析和破解的實戰 114 5.3.1對未加固App進行分析和 破解的實戰 114 5.3.2對加固App進行分析和 破解的實戰 122 5.4本章小結 129 第6章Xposed框架介紹 130 6.1Xposed框架簡介 130 6.2Xposed框架安裝與插件開發 132 6.2.1Xposed框架安裝 132 6.2.2Xposed插件安裝 134 6.3本章小結 141 第7章抓包詳解 143 7.1抓包介紹 143 7.2HTTP(S)協議抓包配置 144 7.2.1HTTP抓包配置 144 7.2.2HTTPS/Socket協議抓包配置 152 7.3應用層抓包核心原理 156 7.4Hook模擬抓包 160 7.5本章小結 169 第8章Hook抓包實戰之HTTP(S) 網絡框架分析 170 8.1常見網絡通信框架介紹 170 8.2系統自帶HTTP網絡通信庫 HttpURLConnection 171 8.2.1HttpURLConnection基礎 開發流程 171 8.2.2HttpURLConnection “自吐”腳本開發 173 8.3HTTP第三方網絡通信庫—— okhttp3與Retrofit 178 8.3.1okhttp3開發初步 178 8.3.2okhttp3“自吐”腳本開發 184 8.4終極“自吐”Socket 197 8.4.1網絡模型 197 8.4.2Socket(s)抓包分析 199 8.5本章小結 210 第9章Hook抓包實戰之應用層 其他協議及抓包分析 211 9.1WebSocket協議 211 9.1.1WebSocket簡介 211 9.1.2分析WebSocket搭建環境 212 9.1.3WebSocket抓包與協議分析 215 9.2XMPP協議 219 9.2.1XMPP簡介 219 9.2.2XMPP環境搭建與抓包分析 220 9.3Protobuf相關協議 225 9.3.1gRPC/Protobuf介紹 225 9.3.2gRPC/Protobuf環境搭建與 逆向分析 227 9.4本章小結 237 第10章實戰協議分析 238 10.1Frida輔助抓包 238 10.1.1SSLPinning案例介紹 238 10.1.2服務器端校驗客戶端 244 10.2違法應用協議分析 249 10.2.1違法圖片取證分析 249 10.2.2違法應用視頻清晰度破解 261 10.3本章小結 266 第11章Frida逆向入門之 native層Hook 267 11.1native基礎 267 11.1.1NDK基礎介紹 267 11.1.2NDK開發的基本流程 268 11.1.3JNI函數逆向的基本流程 272 11.2Fridanative層Hook 275 11.2.1native層Hook基礎 275 11.2.2libssl庫Hook 281 11.2.3libc庫Hook 288 11.3本章小結 292 第12章抓包進階 293 12.1花式抓包姿勢介紹 293 12.1.1Wireshark手機抓包 293 12.1.2路由器抓包 297 12.2r0capture開發 300 12.3本章小結 306 本書以詳細介紹了Hook框架Frida在安卓逆向工程與抓包中的應用,主要內容包括如何搭建完美運行Frida的安卓逆向分析環境,使用Frida對安卓App各項組件、框架和代碼進行Hook,如何批量自動化Hook,以及全自動導出結果。針對爬蟲工程師最為迫切需要的抓包技術,詳細闡述了各種應用層框架的抓包實戰,HTTP(S)及其框架抓包的核心原理及工具使用,通過Frida進行的Hook抓包,還進一步介紹了Frida對native層的Hook,以及一系列“通殺”“自吐”腳本的研發過程和核心原理。
本書內容詳盡,突出實操,適合安卓開發人員,安卓應用安全工程師,逆向分析工程師,爬蟲工程師,以及大數據分析工程師和安全研究人員使用。 “Frida真是太有意思了!”這是一位資深爬蟲工程師在筆者的星球中留言。
為什么爬蟲工程師會用Frida呢?因為要學習App安全的逆向分析。為什么爬蟲工程師要分析App呢?由于智能手機的普及和O2O商業模式的推廣,人們已經逐漸習慣了“一部手機”搞定一切的生活方式。 大量的數據在App中產生,比如在大眾點評中評價餐館,在短視頻社交App中給女主播點贊,在淘寶中下單購物,在微信朋友圈中分享自己的動態,到通過App進行“消費”,比如查看別人對于某網紅店鋪的評價,在短視頻App上看感興趣的視頻和直播消磨時間,看別人的朋友圈,看淘寶寶貝的點評等。 我們以某著名短視頻App為例,從拍視頻、剪視頻、配樂上傳,通過平臺的大數據分發體系推送給對其感興趣的受眾,受眾對其觀看、點贊加關注,數據的產生、加工和消費,只在一部手機上即可完成,已經不存在網頁的形式了,這也是爬蟲或大數據工程師必須學習App端安全分析的客觀原因。 主觀原因方面爬蟲工程師向上突破較為乏力,想要拿更高的工資,一般走架構師或App安全分析兩條路。架構師要求設計海量數據存儲架構,App安全分析則必須學習App逆向,這也是爬蟲工程師來做App逆向工程的情況越來越多,對App逆向分析的需求越來越大的 原因。 那么為什么爬蟲工程師會這么喜歡Frida呢?原因主要有以下兩點: (1)Frida有Python接口,爬蟲工程師的主力語言是Python,看到Python就倍感親切; (2)Frida的Hook Java和Hook native都是用JavaScript編寫的,爬蟲工程師在分析網頁時對JavaScript已經相當熟悉;使用Frida進行逆向分析和測試時非常迅速,可以快速進行猜想驗證和原型制作,所試立刻有所得。 Frida以其簡潔的接口和強大的功能,迅速擄獲了安卓應用安全研究員以及爬蟲工程師的芳心,成為學習和工作中的絕對主力,筆者也有幸在Frida的浪潮中應用Frida做了許多工作,本書即是筆者的工作和學習總結,筆者還建立了自己的社群,期待與大家一起、跟隨Frida的更新腳步共同成長和進步。 本書內容介紹 本書主要內容為安卓Frida逆向與抓包,包含如何搭建完美運行Frida的安卓逆向分析環境,使用Frida對安卓App各項組件、框架和代碼進行Hook,如何批量自動化Hook,以及全自動導出Hook的結果。針對爬蟲工程師最為迫切需要的抓包部分,本書詳細闡述了各種應用層框架的抓包實戰,HTTP(S)及其框架的抓包的核心原理及工具的使用,通過Frida進行的Hook抓包,還深入介紹了Frida對native層的Hook,以及一系列“通殺”“自吐”腳本的研發過程和核心原理。 本書的讀者對象 ? 安卓開發工程師 ? 安卓App安全工程師 ? 安卓逆向分析工程師 ? 爬蟲工程師 ? 大數據收集和分析工程師 ? App安全研究人員 技術支持 在本書編寫的過程中,Frida已經推出版本14,即將推出版本15,安卓也出了Android 11版本,本書中的代碼可以在特定版本的Frida和安卓中成功運行。由于安卓逆向是一門實踐性極強的學科,讀者在動手實踐的過程中難免會產生各式各樣的疑問,筆者特地準備了GitHub倉庫更新,讀者如有疑問可以在倉庫的issue頁面提出,筆者會盡力解答和修復。 如果在使用本書的過程中有什么問題,請發郵件聯系,郵件主題為“安卓Frida逆向與抓包實戰”。 最后,感謝公眾號“菜鳥學編程”運營者蔡晉、“咸魚學Python”運營者戴煌金、“進擊的Coder”運營者崔慶才和開源Frida工具DEXDump、Wallbreaker作者hluwa的熱情推薦! 感謝筆者的父母,感謝中科院信工所的Simpler,感謝看雪學院和段鋼先生,感謝寒冰冷月、imyang、白龍、bxl、葫蘆娃、智障、NWMonster、非蟲,成就屬于你們。 陳佳林 2021年5月 |