[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-8873":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":16,"stars7d":16,"stars30d":16,"stars90d":16,"forks30d":16,"starsTrendScore":16,"compositeScore":17,"rankGlobal":10,"rankLanguage":10,"license":18,"archived":19,"fork":20,"defaultBranch":21,"hasWiki":19,"hasPages":20,"topics":22,"createdAt":10,"pushedAt":10,"updatedAt":23,"readmeContent":24,"aiSummary":25,"trendingCount":16,"starSnapshotCount":16,"syncStatus":26,"lastSyncTime":27,"discoverSource":28},8873,"passionfruit","chaitin\u002Fpassionfruit","chaitin","[WIP] Crappy iOS app analyzer","",null,"Vue",1668,226,1669,5,0,55.07,"MIT License",true,false,"master",[],"2026-06-12 04:00:41","**Discontinued Project**\n\nThis project has been discontinued. Please use the new [Grapefruit](https:\u002F\u002Fgithub.com\u002Fchichou\u002Fgrapefruit)\n\nhttps:\u002F\u002Fgithub.com\u002Fchaitin\u002Fpassionfruit\u002Fissues\u002F74\n\n## frida@14 compatibility issues\n\nfrida@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.\n\n----\n\n\u003Cimg src=\"images\u002Flogo.png\" alt=\"Passionfruit\" width=\"400\" align=\"center\">\n\n[![npm version](https:\u002F\u002Fbadge.fury.io\u002Fjs\u002Fpassionfruit.svg)](https:\u002F\u002Fbadge.fury.io\u002Fjs\u002Fpassionfruit)\n[![License: MIT](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-MIT-yellow.svg)](https:\u002F\u002Fopensource.org\u002Flicenses\u002FMIT)\n\nSimple iOS app blackbox assessment tool. Powered by [frida.re](https:\u002F\u002Fwww.frida.re) and [vuejs](https:\u002F\u002Fwww.vuejs.org).\n\n## TL;DR\n\n```shell\nnpm install -g passionfruit\npassionfruit\n```\n\n## Features\n\n* **Cross plarform web GUI!**\n* Also supports non-jailbroken device (see [Non-jailbroken device](#non-jailbroken-device)).\n* List all url schemes.\n* Check signature entitlements.\n* List human readable app meta info (Info.plist).\n* Capture screenshot.\n* Checksec: see if target app is encrypted, and has enabled PIE, ARC and stack canary.\n* App sandbox file browser. Directly preview images, SQLite databases and plist files on device. You can always download the file for further investigation.\n* Check the loaded frameworks. Hook exported native functions from these dylib to print the arguments and stack trace.\n* Log SQLite operations.\n* Log and try to bypass jailbreak detection.\n* List Objective-C classes from app, hook the methods and inspect the arguments and stack trace.\n* Dump KeyChain, BinaryCookies and UserDefaults.\n\n![General](images\u002Fmetainfo.png)\n\nPlease check out Wiki for more information.\n\n* [Screenshots](https:\u002F\u002Fgithub.com\u002Fchaitin\u002Fpassionfruit\u002Fwiki\u002FScreenshots)\n* [FAQ](https:\u002F\u002Fgithub.com\u002Fchaitin\u002Fpassionfruit\u002Fwiki\u002FFAQ)\n\n## Setup\n\n### Desktop requirements:\n\n* [node.js](https:\u002F\u002Fnodejs.org\u002F) **LTS** and [npm](https:\u002F\u002Fwww.npmjs.com) to run the api server and web gui\n* Any modern desktop browser you like\n\nPassionfruit is now avaliable on npm, so just type following command to install:\n\n```shell\nnpm install -g passionfruit\n```\n\nThen launch it:\n\n```shell\npassionfruit\n```\n\nNote 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:\n\n```\nHOST=192.168.1.100 PORT=12345 passionfruit\n```\n\n**Security Warning**\n\nPassionfruit does not support authentication now, so any one that have access to the web page may control your connected devices!\n\n### Device setup:\n\n#### Jailbroken Device\n\nSee https:\u002F\u002Fwww.frida.re\u002Fdocs\u002Fios\u002F\n\n> Start `Cydia` and add Frida’s repository by going to `Manage` -> `Sources` -> `Edit` -> `Add` and enter `https:\u002F\u002Fbuild.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.\n\n#### Non-jailbroken Device\n\nOfficial documentation of frida.re (linked above) also introduces how to inject [FridaGadget.dylib](https:\u002F\u002Fbuild.frida.re\u002Ffrida\u002Fios\u002Flib\u002FFridaGadget.dylib) to the ipa, requires repack and resign.\n\nHere are some articles about how to do so:\n\n* [MonkeyDev\u002Fwiki\u002F非越狱App集成#集成frida](https:\u002F\u002Fgithub.com\u002FAloneMonkey\u002FMonkeyDev\u002Fwiki\u002F%E9%9D%9E%E8%B6%8A%E7%8B%B1App%E9%9B%86%E6%88%90#集成frida)（Chinese)\n* https:\u002F\u002Fgithub.com\u002Ftanprathan\u002FFridpa\n* https:\u002F\u002Fwww.nccgroup.trust\u002Fuk\u002Fabout-us\u002Fnewsroom-and-events\u002Fblogs\u002F2016\u002Foctober\u002Fios-instrumentation-without-jailbreak\u002F\n\n## Development setup\n\nClone this project and install requirements:\n\n```shell\ngit clone https:\u002F\u002Fgithub.com\u002Fchaitin\u002Fpassionfruit.git\nnpm install\n```\n\nFor 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.\n\n```shell\nnpm run dev\n```\n\nBrowser will be open (http:\u002F\u002Flocalhost:8080)\n\n## LICENCE\n\nMIT\n","Passionfruit 是一个用于iOS应用程序黑盒评估的简单工具。它基于Frida和Vue.js构建，提供了跨平台的Web GUI界面，并支持非越狱设备。核心功能包括列出所有URL Scheme、检查签名权限、展示应用元信息（Info.plist）、截屏、安全检测（如加密状态、PIE、ARC及栈金丝雀等）、沙箱文件浏览器、加载框架分析与钩子、SQLite操作日志记录、尝试绕过越狱检测、Objective-C类方法钩子以及数据转储（KeyChain, BinaryCookies, UserDefaults）。适用于需要对iOS应用进行安全性测试或逆向工程分析的场景。请注意，该项目已停止维护，建议转向其替代项目Grapefruit。",2,"2026-06-11 03:20:06","top_language"]