
مجموعة اختبار أمان الأجهزة المحمولة مفتوحة المصدر لأنظمة iOS وAndroid. كانت تُعرف سابقًا باسم Passionfruit.
مجموعة أدوات لأدوات فحص تطبيقات الجوال أثناء التشغيل مدعومة بـ Frida. افحص واعترض وعدّل تطبيقات الجوال من خلال واجهة قائمة على الويب.
تدعم الآن كلاً من iOS وAndroid!
يتطلب تشغيل خادم Frida على جهازك. اتبع أدلة الإعداد الرسمية(Android) أولاً.
npm (موصى به، يتطلب Node.js 22.18+)
npm install -g igf
igf
أو التشغيل دون تثبيت (يتطلب Node.js 22.18+)
npx igf
ملفات ثنائية جاهزة لنظام macOS وLinux وWindows متوفرة على GitHub Releases. يستخدم كل من تطوير المصدر والملفات التنفيذية الجاهزة Node.js؛ راجع دليل التطوير لسير عمل npm.
igf [options] Start the server (default)
Options:
--frida <16 | 17> Frida version to use (default: 17)
--host <host> Host to bind (default: 127.0.0.1)
--port <port> Port to bind (default: 31337)
--project <path> Project directory for data/cache/logs (default: .igf in cwd)
--no-open Do not open browser on startup
--help, -h Show help message
| Variable | Description | Default |
|---|---|---|
HOST | Server bind address | 127.0.0.1 |
PORT | Server port | 31337 |
FRIDA_VERSION | Frida major version (16 or 17) | 17 |
FRIDA_TIMEOUT | Frida operation timeout (ms) | 1000 |
PROJECT_DIR | Project directory for data/cache/logs | .igf in cwd |
LLM_PROVIDER | AI provider (anthropic, openai, gemini, openrouter) | |
LLM_API_KEY | API key for the LLM provider | |
LLM_MODEL | Model name (e.g. claude-sonnet-4-20250514) | |
LLM_BASE_URL | Custom endpoint (overrides provider default) |
تأخذ معلمات سطر الأوامر الأولوية على متغيرات البيئة عند تعيين كليهما.
لا يتضمن هذا المشروع تجاوزات مدمجة لحمايات مقاومة العبث:
المبرر: تتطور حلول RASP (الحماية الذاتية للتطبيقات أثناء التشغيل) باستمرار لكشف أطر الفحص. يتطلب الحفاظ على تجاوزات فعّالة جهداً مستمراً لمواكبة أساليب الكشف الجديدة، مما يفرض عبئاً كبيراً على الصيانة واحتمالية حدوث مشكلات في الاستقرار. كما أن هذه التجاوزات خاصة جداً بكل تطبيق، مما يجعل الحلول العامة هشة.
بدلاً من تقديم تجاوزات مدمجة هشة، تركّز Grapefruit على قدرات الفحص والتدقيق التي تتكامل جيداً مع أدوات التجاوز المتخصصة.
الأساليب الموصى بها للتقييمات المصرّح بها حيث يكون تجاوز RASP مطلوباً:
Frida Syscall Tracer — استخدم frida-strace (Frida 17.8.0+) لتتبع استدعاءات النظام في العملية الهدف. يساعد ذلك في تحديد آثار الكشف وتحديد التصحيحات المطلوبة قبل إرفاق Grapefruit:
frida-strace -U -f com.example.app
راجع ملاحظات إصدار Frida 17.8.0 للتفاصيل.
معمارية الجلسات المتعددة — يدعم Frida جلسات متعددة مُرفقة بنفس العملية. ابدأ جلسة منفصلة بنصوص تجاوز RASP أولاً، ثم شغّل Grapefruit. عندما يكتشف Grapefruit أن التطبيق الهدف قيد التشغيل بالفعل، فإنه يُرفق بالعملية الموجودة بدلاً من إعادة تشغيلها، مما يحافظ على أي تجاوزات سارية بالفعل.
يرتبط Grapefruit بـ 127.0.0.1 افتراضياً ولا يحتوي على مصادقة مدمجة. واجهة الويب وواجهة برمجة التطبيقات متاحتان لأي عملية محلية. وبينما يتم حظر الطلبات عبر المصادر افتراضياً (لا توجد ترويسات CORS، ويرفض Socket.IO الاتصالات عبر المصادر)، فإن هذا وحده غير كافٍ لبيئة مشتركة أو بعيدة.
إذا كنت بحاجة إلى وصول عن بُعد أو أمان متعدد المستخدمين، ضع Grapefruit خلف وكيل عكسي مُصادَق عليه مثل Caddy لـ TLS والتحكم في الوصول والتسجيل. لا تعرّض Grapefruit مباشرة للشبكة دون مصادقة.