Frida是一款基于Python + JavaScript的Hook調(diào)試框架,可以將自己編寫的JavaScript代碼注入到Windows,MACOS,Linux, iOS,Android和QNX 的應(yīng)用中從而進行Hook,其實Frida功能不僅僅是Hook,還包括以下這些功能:
- 訪問進程的內(nèi)存
- 在應(yīng)用程序運行時覆蓋一些功能
- 從導(dǎo)入的類中調(diào)用函數(shù)
- 在堆上查找對象實例并使用這些對象實例
- Hook,跟蹤和攔截函數(shù)等等
Frida官網(wǎng)地址:https://www.frida.re.
Frida可以運行在多個平臺上,這次主要講解使用MacOS當宿主機的使用方式
- 宿主機系統(tǒng):Mac OS
- Android手機: 已Root過的Android 手機或使用Android模擬器也可以(PS:我使用的華為榮耀6p的Android 6.0系統(tǒng),模擬器沒用過不知道會不會有坑)
- Frida: Frida有多重安裝方式,這里主要記錄一下常用的兩種方式。
方式一: 直接通過Pip安裝Frida,一般Mac系統(tǒng)上都會有Python環(huán)境,如果沒有則需要先安裝python(最好用最新的版本)安裝完P(guān)ython后繼續(xù)安裝pip,打開終端輸入sudo easy_install pip命令進行安裝
sudo easy_install pip
Password:
安裝完pip后就可以安裝Frida了,直接輸入sudo pip install frida即可(安裝時間比較長耐心等待,最好使用VPN)
sudo pip install frida
pip install frida-tools
方式二: 直接下載對應(yīng)平臺的Python版本的安裝包,比如:當前系統(tǒng)是Mac OS-10.12,Python是2.7,那么就應(yīng)該下載:frida-10.6.52-py2.7-macosx-10.12-intel.egg ,下載完成后直接安裝即可
下載地址: https://pypi.python.org/pypi/frida
安裝完成后,直接在終端中輸入frida-ps命令查看,如果能顯示當前系統(tǒng)進程則證明安裝成功
frida-ps
PID Name
---- ---------------------------------------------
416 AirPlayUIAgent
596 Android Studio
551 AppleSpell.service
529 CoreServicesUIAgent
264 Dock
266 Finder
402 FolderActionsDispatcher
553 Google Chrome
505 LaterAgent
517 QQ
530 QQ jietu plugin
- Frida-server: 直接去官網(wǎng)下載:https://github.com/frida/frida/releases 對應(yīng)的版本即可,注意:Frida-server的版本必須跟你宿主機的Frida版本一致,比如我宿主機Frida的版本是10.6.52,Android手機是arm64的,那么應(yīng)該下載:rida-server-10.6.52-android-arm64.xz 文件。
下載后解壓文件,并將文件重命名為:frida-server, 重命名完成后使用adb push命令推送到手機中
adb push frida-server /data/local/tmp/
推送完成后將frida-sever賦予執(zhí)行的權(quán)限,并運行Frida-server,使用以下命令:
adb shell
su
cd /data/local/tmp/
chmod 777 frida-server
./frida-server
注1: 如果frida-server沒有啟動,查看一下你是否使用的是Root用戶來啟動,如果使用Root用戶則應(yīng)該是#
注2: 如果要啟動frida-server作為后臺進程、可以使用這個命令./frida-server &
正常啟動后,另開一個終端,使用frida-ps -U命令檢查Frida是否正常運行,如果正常運行則會列出Android設(shè)備上當前正在運行的進程.
frida-ps -U
PID Name
----- ------------------------------------------
3835 31:0
3724 HwCamCfgSvr
3954 adbd
5011 android.process.acore
5029 android.process.media
3739 bastetd
3736 check_longpress
3764 check_longpress
13962 com.UCMobile:channel
14462 com.UCMobile:push
參數(shù)-U 代表USB,意思讓Frida檢查USB設(shè)備,使用frida-ps -R 也可以,但是需要進行轉(zhuǎn)發(fā)。執(zhí)行adb forward tcp:27042 tcp:27042后執(zhí)行frida-ps -R也可以看到手機上的進程.
到此為止,F(xiàn)rida工作環(huán)境已經(jīng)準備好了,下一篇文章介紹一下Android Hook工具之Frida 基礎(chǔ)使用