frida

weixin_34148456發表於2018-05-07

一、windows安裝

1.支援python2.7和python3.6,直接使用easy_install下載frida

8854824-59ba33a026fc949c.png

2.選擇模擬器 / 實體機架構對應的frida-server  :frida-server download 使用adb push命令傳入安卓機

8854824-cdf43e432b3164af.png

3. adb shell進入android shell

8854824-9cf234dbfab092cd.png

chmod 777 改許可權

8854824-70cd5a3c8618eac5.png

4. 執行frida-shell

8854824-eb2dfa41d07fcb3d.png

5.轉發android TCP埠到本地

8854824-44ddeee5ce41271b.png

6. frida-ps -R或-U 測試frida環境,顯示android程式列表說明搭建成功:

8854824-9d0c912e633f9be8.png

二、一個例子

測試程式:

8854824-f9e0434371869701.png
目標:test函式!     
8854824-f4b34d2f4a633697.png

仍然要先執行frida-server,設定TCP埠轉發,然後frida-ps -U測試是否連通。

python3編寫frida指令碼:

8854824-c258f86080fa5329.png

執行效果:

8854824-cc9c4b30a9790a2f.png
8854824-384c9896b0b826f2.png

三、VX SQL passwd

遇到一個坑,frida.frida.get_usb_device().attach('com.tencent.mm')的時候報錯了:

TransportError: the connection is closed

frida-server那邊的報錯資訊:

Frida:ERROR:../../../frida-core/src/linux/frida-helper-service-glue.c:2929:frida_resolve_library_function: assertion failed (local_library_path == remote_library_path): ("/system/lib/libc.so" == "/system/lib/arm/libc.so")

github上有一些回答:

Mixed-architecture emulators are not supported. Please use a plain emulator or a real device. (Or contribute support for this.)

Systems like Genymotion, that emulate ARM binaries through qemu-user, are not supported. (PRs welcome though!)

以及blablabla的,看樣子我可能需要嘗試換一個安卓模擬器或者上真機。

選了一萬個手機,網上各種神奇教程號稱百分百各種root,一萬個silly B軟體號稱一鍵root。。。。。小米的開發版系統華為的鎖玄乎其玄

最後乖乖上淘寶買了二手root過的機器,lg g5 H830。。。

拿來adb shell找不到device。。。

不要慌!!!

1.常規 > 關於手機 > 軟體資訊 > 核心版本連點78下進入開發者模式

2.再看常規中就多了一個開發人員選項的條目,點進去,最上面的開發人員選項滑塊關掉再開啟實現一次強無敵的重啟

3.然後usb除錯勾上!再往下找,找到"選擇usb配置"選為RNDIS(USB Ethernet)

4.adb shell成功!

5.注意拷進去跑的frida-server的版本,如果frida-ps -U能執行,但是自己寫的frida指令碼提示無法處理64位,那麼請使用frida-server的arm64版本


雖然我沒有掌握手機root大法。。。。但最後我終於練成了貼膜大法!