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端都已經安裝好了,去探索吧,少年!
參考
https://frida.re/docs/home/
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/45639.html
標籤:Android
上一篇:Win10下編譯arm上的Qt
