安裝 Frida 和 Passionfruit

JiandanDream發表於2018-04-19

寫在前面

Frida 因為可以動態執行程式碼,所以主要用來分析應用,功能十分強大。

對於 iOS 而言,無論裝置是否越獄,都可以使用它來分析除錯應用。

更加詳細的內容可以通過官網瞭解。

而 Passionfruit 是一位大神為 Frida 開發的圖形介面,可以用來動態分析 iOS 應用。

筆者在安裝二者過程中,碰到一些問題,遂記錄下來。

安裝 Frida

官方推薦的安裝命令如下,其中 pip 是 Python 的一個包管理工具。

sudo pip install frida
複製程式碼

筆者在 macOS Hign Sierra 上安裝,提示錯誤:

The directory '/Users/jiandan/Library/Caches/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
The directory '/Users/jiandan/Library/Caches/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
複製程式碼

所以按照提示,修改為:

sudo -H pip install frida
複製程式碼

順利跑完後,可以按照官網裡面的方式來測試。

如果有越獄裝置,可以啟動 Cydia 後,新增源 https://build.frida.re ,重新整理後,搜尋下載安裝 Frida,再把裝置連線到電腦,最後輸入:

frida-ps -U
複製程式碼

終端顯示的是,目前在執行的程式,大概是這樣:

  PID  Name
-----  ----------------
54425  App Store
54445  QQ
54421  微信
複製程式碼

安裝 Passionfruit 錯誤

GitHub 上直接給出了安裝命令:

sudo npm install -g passionfruit
複製程式碼

執行的前提是安裝了 node,作者在《給 frida 做了個圖形介面,動態分析 iOS 應用》給出的建議是直接從官網下載安裝。

筆者直接使用 HomeBrew 安裝 node,可能是本地的 HomeBrew 存在一些問題,所以導致在安裝 Passionfruit 時,報以下錯誤:

npm WARN deprecated babel-preset-es2015@6.24.1: ?  Thanks for using Babel: we recommend using babel-preset-env now: please read babeljs.io/env to update!
/usr/local/bin/passionfruit -> /usr/local/lib/node_modules/passionfruit/bin/cli.js

> fsevents@1.1.3 install /usr/local/lib/node_modules/passionfruit/node_modules/fsevents
複製程式碼

嘗試了這樣的方案:

sudo npm install -g node-pre-gyp
sudo npm install --save d3
sudo npm install --save-dev
複製程式碼

沒能成功。

在使用 brew doctor 後發現:

Warning: You have unlinked kegs in your Cellar
Leaving kegs unlinked can lead to build-trouble and cause brews that depend on
those kegs to fail to run properly once built. Run brew link on these:
node
複製程式碼

最後按照這篇文章,徹底地刪除 node,用 HomeBrew 重新安裝後,根據 brew doctor 提示的資訊,解決與 node 相關問題。

再次安裝 PassionFruit,雖然有提示以下錯誤,但它也能正常使用。

node-pre-gyp ERR! Tried to download(undefined): https://fsevents-binaries.s3-us-west-2.amazonaws.com/v1.1.3/fse-v1.1.3-node-v59-darwin-x64.tar.gz
node-pre-gyp ERR! Pre-built binaries not found for fsevents@1.1.3 and node@9.1.0 (node-v59 ABI, unknown) (falling back to source compile with node-gyp)
複製程式碼

啟動 PassionFruit

$ passionfruit
listening on http://localhost:31337
複製程式碼

用瀏覽器開啟上面網址,可以在頁面上選擇已經連上電腦的手機,然後可以檢視手機上所有 app 的資訊,如圖所示

Passionfruit-App 資訊.png

總結

如果想分析應用,Frida 這款利器絕對值得一試。

如果 iOS 開發者,配合 Passionfruit 使用,可以方便快捷分析應用。

若是有意搞搞 Android 或者 iOS 的逆向,Frida 更是不容錯過。

相關文章