1. 概述
Frida是個輕量級別的hook框架
是Python API看靠,但JavaScript調(diào)試邏輯
Frida的核心是用C編寫的,并將Google的V8引擎注入到目標(biāo)進程中液肌,在這些進程中挟炬,JS可以完全訪問內(nèi)存,掛鉤函數(shù)甚至調(diào)用進程內(nèi)的本機函數(shù)來執(zhí)行嗦哆。
使用Python和JS可以使用無風(fēng)險的API進行快速開發(fā)谤祖。Frida可以幫助您輕松捕獲JS中的錯誤并為您提供異常而不是崩潰。
老速。
關(guān)于frda學(xué)習(xí)路線了粥喜,F(xiàn)rida的學(xué)習(xí)還是蠻簡單的,只需要了解兩方面的內(nèi)容:
1)主控端和目標(biāo)進程的交互(message)
2)Python接口和js接口(查文檔)
frida框架分為兩部分:
1)一部分是運行在系統(tǒng)上的交互工具frida CLI橘券。
2)另一部分是運行在目標(biāo)機器上的代碼注入工具 frida-serve额湘。
2. 資源和環(huán)境
Windows10 X64
Python 3.7
Google pixel Anroid 7.1
Frida官網(wǎng):https://www.frida.re/
Frida源碼:https://github.com/frida
3.運作模式
Frida通過其強大的儀器核心Gum提供動態(tài)檢測卿吐,Gum是用C語言編寫的。因為這種檢測邏輯很容易發(fā)生變化锋华,所以通常需要用腳本語言編寫嗡官,這樣在開發(fā)和維護它時會得到一個簡短的反饋循環(huán)。這就是GumJS發(fā)揮作用的地方毯焕。只需幾行C就可以在運行時內(nèi)運行一段JavaScript衍腥,它可以完全訪問Gum的API,允許您掛鉤函數(shù)纳猫,枚舉加載的庫婆咸,導(dǎo)入和導(dǎo)出的函數(shù),讀寫內(nèi)存续担,掃描模式的內(nèi)存等
4. Frida安裝
Frida的安裝很簡單擅耽,需要在windows安裝frida客戶端和在安卓安裝frida服務(wù)端活孩。
1物遇、windows安裝客戶端
windows安裝pyhon37安裝,打開cmd,使用命令
pip3.7.exe install frida
在安裝frida-tools
pip3.7.exe install frida-tools
查看frida版本frida --version
2憾儒、手機中安裝Frida服務(wù)端
查看Android手機設(shè)備設(shè)置getprop ro.product.cpu.abi
根據(jù)cpu版本去下載相應(yīng)frida-server,手機是arm64-v8a的询兴,找到相應(yīng)的服務(wù)器server,如下
將frida-server下載下來,加壓出來起趾,為了簡單诗舰,重命名為frida-server64,將放到手機训裆,并進行端口轉(zhuǎn)發(fā)眶根,運行frida
如果運行不了,關(guān)閉liunx的SELinux: echo 0 > /sys/fs/selinux/enforce
边琉。
另打開一個cmd属百,查看frida-server64是否運行成功。
Frida工具
1变姨、 工具總體概述
Frida提供了四個工具族扰,frida-trace,frida-ps定欧,frida渔呵,frida-discover,這些工具都位于python的Scripts路徑下
升級frida
pip3 install -U frida
pip3 install -U frida-tools
python2.7安裝方法與python3.7一致