passionfruit v0.7.2
Important Announcement
A brand new, completly redesigned tool will be announced soon. Please join the Discord group for further updates. This project is going to be archived. The new project repo remains private until it's finished. Don't use other branches here, they are abandoned.
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.
Simple iOS app blackbox assessment tool. Powered by frida.re and vuejs.
TL;DR
npm install -g passionfruit
passionfruitFeatures
- Cross plarform web GUI!
- Also supports non-jailbroken device (see Non-jailbroken device).
- List all url schemes.
- Check signature entitlements.
- List human readable app meta info (Info.plist).
- Capture screenshot.
- Checksec: see if target app is encrypted, and has enabled PIE, ARC and stack canary.
- App sandbox file browser. Directly preview images, SQLite databases and plist files on device. You can always download the file for further investigation.
- Check the loaded frameworks. Hook exported native functions from these dylib to print the arguments and stack trace.
- Log SQLite operations.
- Log and try to bypass jailbreak detection.
- List Objective-C classes from app, hook the methods and inspect the arguments and stack trace.
- Dump KeyChain, BinaryCookies and UserDefaults.

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 passionfruitThen launch it:
passionfruitNote 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 passionfruitSecurity 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
Cydiaand add Frida’s repository by going toManage->Sources->Edit->Addand enterhttps://build.frida.re. You should now be able to find and install theFridapackage 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:
- MonkeyDev/wiki/非越狱App集成#集成frida(Chinese)
- https://github.com/tanprathan/Fridpa
- https://www.nccgroup.trust/uk/about-us/newsroom-and-events/blogs/2016/october/ios-instrumentation-without-jailbreak/
Development setup
Clone this project and install requirements:
git clone https://github.com/chaitin/passionfruit.git
npm installFor 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 devBrowser will be open (http://localhost:8080)
LICENCE
MIT
5 years ago
5 years ago
5 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago