免責聲明:內容僅供學習參考,請合法利用知識,禁止進行違法犯罪活動!
內容參考于:圖靈Python學院
工具下載:
鏈接:https://pan.baidu.com/s/1bb8NhJc9eTuLzQr39lF55Q?pwd=zy89
提取碼:zy89
復制這段內容后打開百度網盤手機App,操作更方便哦
上一個內容:6.安卓逆向2-手機安裝charles證書
到這一定是手機可以被抓包了,然后2.安卓逆向-初識java語言這個java環境設置好(環境變量和idea)其它的不重要(比如不會寫java代碼,這個不重要,只要跟著把環境搞好就行),然后Python環境看python基礎之搭建環境這個大哥寫的,要確保java環境和Python環境搞好
開始安卓HOOK
frida是一個安卓HOOK框架,hook就是一種攔截app(應用)里面代碼的技術,frida是一個主流框架,市面上只要搞安卓逆向的必會frida也必使用frida
安卓開發分為兩層,一層是Native(也就是so文件,so文件可以用多種語言寫,用js語言寫的可以編譯成so、用c語言也能編譯成so,總而言之so就是非常規的java代碼),一層是java
frida說明
frida是一個輕量級的Hook框架,可以用來監聽app的動作,它的亮點,比如一個可以聯網的app,比如短視頻app,打開之后它會發送網絡請求讓服務器給返回短視頻,這個操作發送和接收的操作是在app也就是apk文件里面發生的,這個frida就可以監聽這個東西,這就是frida的亮點。
frida分兩個部分,服務端和控制端,服務端運行在手機里面,然后通過進程注入來劫持app
frida可以hook到java也可以hook到so
為什么可以hook
現代應用分b/s架構(網頁和服務器),c/s架構(客戶端(app)和服務器)
b/s架構,比如加密代碼都會在某個js文件里面,在我們本地電腦中
C/S架構中,比如加密的代碼都會在apk文件里面,在我們本地手機中
為什么會在本地?
因為app里面要用數據,比如短視頻app,服務器返回的視頻,肯定要在app里面用,所以app里面必須要有解析視頻數據的代碼,如果不在本地app也沒辦法做
frida使用的是動態二進制插樁技術(DBI)
DBI可以做到的事情
1.可以訪問進程的內存,就是手機打開一個app文件它就會打開一個進程,然后app里的數據都會放到進程的內存中,DBI讓frida支持訪問進程里的內存
2.在應用程序運行時覆蓋一些功能
3.從導入的類中調用函數
4.在堆內存中查找對象實例并使用
5.HOOK,跟蹤和攔截函數等
它可以攔截app中所有類和方法、入參、返回值
總結:
Frida使用二進制動態插樁技術,就是把一段代碼動態的插入到app里面,但最終不會改變原有的程序,通過動態的插入,可以快速簡單的分析出我們想要的源代碼