我以爲官網已經說得很清楚了。簡單的說就是一款動態代碼檢測工具,可用於各類主流操做系統,這裏主要討論的是動態檢測Android系統裏面代碼運行狀況。
python
Android版的Frida環境的搭建主要分爲兩個部分,一部分是運行在Android機器上的代理工具 frida - server
,另外一部分是Windows系統用Python PIP安裝了發指令的工具 frida - CLI
,下面 frida-server我簡稱爲Android端、frida CLI我簡稱爲Windows端。把這兩端的環境都部署好後,就能經過Windows向Android發送指令了。linux
分類以下:android
frida - CLI的其它替代方案:
我這裏使用Window系統的Python語言,同理你能夠切換成Linux、Mac OS等其餘操做系統,只要能安裝Python環境便可。git
Android手機主要是安裝一個 frida-server,安裝前,可是須要根據不一樣的CPU架構去選擇 frida-server,其實也能夠從宏觀的層面上看出Frida的核心功能就是監管CPU、內存的操做,如今Android主流的CPU架構分類爲 x86 和 arm 架構的,那麼怎麼區分本身Android手機的CPU架構呢? 跟着我敲一行命令便可:github
adb shell getprop ro.product.cpu.abi
CPU架構和位數:
armeabi-v7a -------(32位ARM設備)
arm64-v8a -------(64位ARM設備)shell
下載地址:https://github.com/frida/frida/releases
地址裏面比較多產品,由於Frida比較牛逼,支持的平臺衆多,你就搜索frida-server-XXX.XXX.XXX-android-x86_64.xz
就好。
windows
我這個是 arm64 架構的,下載好了以後解壓,adb push ~ ~
到Android手機就好了。架構
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報錯沒法運行,新手儘可能使用真機來避免這個問題,若是實在沒有這個條件,那麼挑選虛擬機的時候儘可能注意一下這個問題便可。tcp
若是程序一直處於運行狀態(以下圖),不返回shell就是正常的。
工具
pip install frida pip install frida-tools
pip list # 驗證一下pip是否安裝成功
# 設置端口轉發 adb forward tcp:27042 tcp:27042 adb forward tcp:27043 tcp:27043 # 查看進程 frida-ps -R # 或 frida-ps -U
能看到打印出來的PID和進程,說明Android、Windows端都已經安裝好了。去探索吧,少年!