1. 程式人生 > 其它 >Hook框架Frida之安裝踩坑日記

Hook框架Frida之安裝踩坑日記

一、概述 Frida,官網介紹:Dynamic instrumentation toolkit for developers, reverse-engineers, and security researchers,是個輕量級so級別的hook框架,Hook的原理簡單地說就是用一個新的函式替代掉原來的函式。

Frida可以幫助逆向人員對指定的程序的so模組進行分析。它是一款基於python + javascript 的hook框架,通殺android\ios\linux\win\osx等各平臺,由於是基於指令碼的互動,因此相比xposed和substrace cydia更加便捷。

本文主要記錄Frida在android下面的安裝過程及遇到的一些坑。

二、安裝

frida由兩部分組成:一部分是執行在系統上(Windows)的互動工具frida CLI,另一部分是執行在目標機器(Android)上的程式碼注入工具frida-server。

所以Frida的安裝只需要在windows安裝frida客戶端和在安卓安裝frida服務端。

1、客戶端安裝

windows上安裝frida使用python自帶的pip即可,命令:

pip install frida

問題1:python版本

windows的frida目前只支援python2.7和python3.7,因此使用其他版本會卡在:

Running setup.py install for frida

改用手動安裝的方式執行python setup.py install仍然會出現這個問題,在2和3版本中推薦使用pip3來安裝。

問題2:frida-tools

windows下安裝frida時,首先要安裝frida-tools,執行pip install frida-tools命令會下載並安裝colorama、frida-tools、frida、wcwidth等工具。

問題3:egg檔案

執行到上一步操作時由於網路原因可能會出現error報錯,多試幾次,直到出現下面的報錯:

這步下載frida-12.10.4-py3.7-win-amd64.egg失敗,需要根據提示手動下載egg檔案到指定目錄中。

下載後重新執行pip安裝,執行到Running setup.py install for frida ...這步的時候同樣會卡一會,稍等片刻即可,最後成功安裝:

安裝成功後會在python的Scripts目錄下生成frida的各個exe檔案,包括frida-trace,frida-ps,frida,frida-discover,直接在命令列執行就可呼叫:

問題4:pip源

使用國外源較慢,可選擇國內源:

pip3 install frida-tools -i https://pypi.tuna.tsinghua.edu.cn/simple/

2、服務端安裝

服務端需在到github上下載frida-server,網址為https://github.com/frida/frida/releases,frida提供了各種系統平臺的server:

問題1:模擬器與真機

一個小坑,真機的arm架構和模擬器的x86差異,如果是真機需要下載-arm64.xz檔案,模擬器則是-x86.xz,下載解壓後,使用adb連線機器,使用push將frida-server放到手機目錄/data/local/tmp,然後修改屬性為可執行,以root許可權啟動:

可以看到如果模擬器使用的是arm型別檔案,則會報錯:

Not executable: 64-bit ELF file

換成-x86 server成功執行:

下面就可以使用客戶端命令進行除錯,如frida-ps -U列出手機上所有的程序資訊:

frida-trace追蹤指定的函式的呼叫:

問題2:版本一致

frida-server版本要和frida版本一致,否則呼叫js指令碼會報錯,pip安裝客戶端一般是最新版本,在GitHub上下載server版本也要選擇最新版本。

最後吐槽一下GitHub下載檔案的速度,如果下載太慢最好還是想辦法掛個梯子。後續更新Frida的使用方法和實戰案例,很全面很強大。

轉載請註明出處