Frida是什麼 我覺得官網已經說得很清楚了。簡單的說就是一款動態代碼檢測工具,可用於各種主流操作系統,這裡主要討論的是動態檢測Android系統裡面代碼運行情況。 Android版的Frida環境的搭建主要分為兩個部分,一部分是運行在Android機器上的代理工具 ,另一部分是Windows系統用 ...
Frida是什麼
我覺得官網已經說得很清楚了。簡單的說就是一款動態代碼檢測工具,可用於各種主流操作系統,這裡主要討論的是動態檢測Android系統裡面代碼運行情況。
Android版的Frida環境的搭建主要分為兩個部分,一部分是運行在Android機器上的代理工具 frida - server
,另一部分是Windows系統用Python PIP安裝了髮指令的工具 frida - CLI
,下麵 frida-server我簡稱為Android端、frida CLI我簡稱為Windows端。把這兩端的環境都部署好後,就能通過Windows向Android發送指令了。
分類如下:
- frida - server (相當於Android系統裡面安裝了一個代理工具)
- frida - CLI (指在Windows系統用Python PIP安裝了髮指令的工具)
frida - CLI的其它替代方案:
我這裡使用Window系統的Python語言,同理你可以切換成Linux、Mac OS等其他操作系統,只要能安裝Python環境即可。
Android端安裝步驟
根據CPU架構選擇frida-server
Android手機主要是安裝一個 frida-server,安裝前,但是需要根據不同的CPU架構去選擇 frida-server,其實也可以從巨集觀的層面上看出Frida的核心功能就是監管CPU、記憶體的操作,現在Android主流的CPU架構分類為 x86 和 arm 架構的,那麼怎麼區分自己Android手機的CPU架構呢? 跟著我敲一行命令即可:
adb shell getprop ro.product.cpu.abi
CPU架構和位數:
armeabi-v7a -------(32位ARM設備)
arm64-v8a -------(64位ARM設備)
下載地址:https://github.com/frida/frida/releases
地址裡面比較多產品,因為Frida比較牛逼,支持的平臺眾多,你就搜索frida-server-XXX.XXX.XXX-android-x86_64.xz
就好。
我這個是 arm64 架構的,下載好了之後解壓,adb push ~ ~
到Android手機就行了。
Android安裝frida-server
adb push frida-server /data/local/tmp # adb push 參數1 參數2
adb shell
su
cd data/local/tmp
chmod 777 frida-server
ls -all # 驗證是否777
-rwxrwxrwx shell shell 21248332 2019-01-03 17:29 frida-server-12.2.27-android-arm
./frida-server # 必須運行
機器需要root許可權,因為Frida要求的許可權比較大。註意
儘量使用真機測試,因為一些虛擬機CPU使用混合模式架構,這樣就會導致Frida報錯無法運行,新手儘量使用真機來避免這個問題,如果實在沒有這個條件,那麼挑選虛擬機的時候儘量註意一下這個問題即可。
如果程式一直處於運行狀態(如下圖),不返回shell就是正常的。
Windows端安裝步驟
Python PIP安裝組件
pip install frida
pip install frida-tools
pip list # 驗證一下pip是否安裝成功
Windows端驗證 frida-server 是否成功
# 設置埠轉發
adb forward tcp:27042 tcp:27042
adb forward tcp:27043 tcp:27043
# 查看進程
frida-ps -R
# 或
frida-ps -U
能看到列印出來的PID和進程,說明Android、Windows端都已經安裝好了。去探索吧,少年!