Home

Awesome

Discontinued Project

This project has been discontinued. Please use the new Grapefruit

https://github.com/chaitin/passionfruit/issues/74

frida@14 compatibility issues

frida@14 introduces lots of breaking changes. After struggling a bit, I was unable to solve them. If you still need passionfruit, please keep the frida on your device to stay at 12.x.


<img src="images/logo.png" alt="Passionfruit" width="400" align="center">

npm version License: MIT

Simple iOS app blackbox assessment tool. Powered by frida.re and vuejs.

TL;DR

npm install -g passionfruit
passionfruit

Features

General

Please check out Wiki for more information.

Setup

Desktop requirements:

Passionfruit is now avaliable on npm, so just type following command to install:

npm install -g passionfruit

Then launch it:

passionfruit

Note that if the port 31337 is in use, set environment variable PORT to use an alternative port. Also, setting HOST can force to listen on an alternative interface, but be careful because it has no authentication yet:

HOST=192.168.1.100 PORT=12345 passionfruit

Security Warning

Passionfruit does not support authentication now, so any one that have access to the web page may control your connected devices!

Device setup:

Jailbroken Device

See https://www.frida.re/docs/ios/

Start Cydia and add Frida’s repository by going to Manage -> Sources -> Edit -> Add and enter https://build.frida.re. You should now be able to find and install the Frida package which lets Frida inject JavaScript into apps running on your iOS device. This happens over USB, so you will need to have your USB cable handy, though there’s no need to plug it in just yet.

Non-jailbroken Device

Official documentation of frida.re (linked above) also introduces how to inject FridaGadget.dylib to the ipa, requires repack and resign.

Here are some articles about how to do so:

Development setup

Clone this project and install requirements:

git clone https://github.com/chaitin/passionfruit.git
npm install

For those who wants to contribute, you may probably need to restart the api server and reload webpage each time you make a change. The following steps enable livereload.

npm run dev

Browser will be open (http://localhost:8080)

LICENCE

MIT