
zafrida-ui v0.3.7
نافذة أداة Frida UI داخل PyCharm / JetBrains IDEs.
中文 | English
ZAFrida UI - إضافة Frida لـ PyCharm
الإصدار الحالي: 0.3.8
أبرز تحديثات 0.3.8
- في لوحة Session تم فصل «الجهاز» و«وضع الاتصال» إلى سطرين مستقلين للاختيار: سطر Device يعرض الأجهزة الحقيقية فقط، وسطر Mode لاختيار USB / Remote / Gadget ونقطة النهاية. عمليات إعادة توجيه منفذ adb عبر الاسترجاع (loopback) في وضعي Remote/Gadget، وForce Stop، وOpen App تعمل دائمًا على الهاتف المحدد حاليًا، ولم تعد تستخدم جهازًا سابقًا بالخطأ.
- عند فتح الأجهزة لأول مرة وتحديثها يتم تشغيل خادم adb تلقائيًا إن لم يكن قيد التشغيل، دون الحاجة لتنفيذ
adb devicesيدويًا. - عند عدم اتصال جهاز محفوظ بالإنترنت يظهر عنصر نائب «غير متصل» ويتم اعتراض العمليات المرتبطة به؛ وعند اتصال جهاز USB واحد فقط يتم التبديل إليه تلقائيًا مع تنبيه في Console.
- أسفل سطر Mode يظهر مسار adb/frida المنفَّذ فعليًا؛ وفي وضع Gadget يكون اسم حزمة Target للقراءة فقط لكنه قابل للتحديد والنسخ.
- أُضيف إلى
/stateفي HTTP API حقلconnectionبنتيجة التحليل؛ ولا يزالdevice-select --hostمتاحًا لكنه مهمَل، ويُرجى استخدامmode-set --host/--portلنقاط النهاية.
أبرز تحديثات 0.3.7
- يمكن لكل ZAFrida Project اختيار بيئة Python/Frida بشكل مستقل أو مشاركتها، ويُستخدم افتراضيًا مفسّر مشروع PyCharm الحالي، مع دعم البيئات المحلية venv وConda وuv وPoetry وPipenv وHatch وغيرها.
- أُعيد تصميم واجهة Session وProject Settings، مع عرض كامل لمعلومات إصدارات الإضافة وPython وFrida، وتحسين التكيّف ولوحة السجلات القابلة للسحب وحالة الجلسة.
- دعم كامل لـ
.js/.ts، وFrida 16/17، والتبديل بين بيئات مشاريع متعددة، وسير عمل الاتصال الثلاثة USB وRemote وGadget. - تعزيز HTTP API المحلي وCLI ومهارة (Skill) الصينية بقدرات استعادة الجهاز وانتظار الجلسة والسجلات التراكمية؛ وإزالة طبقة تكييف MCP المكررة وغير المستقرة.
مقدمة المشروع
أداة Frida برسومية مصممة خصيصًا لـ PyCharm/IntelliJ
ZAFrida UI هي إضافة تشغيل رسومية لـ Frida مدمجة في PyCharm وسلسلة JetBrains IDE. تهدف إلى حل مشكلات تعقيد عمليات Frida عبر سطر الأوامر وفوضى إدارة السكربتات، وتوفر مجموعة كاملة من واجهات التفاعل الرسومية لإدارة الأجهزة والعمليات والسكربتات والسجلات.
تكمن الميزة الجوهرية في نظام إدارة القوالب «بنمط مربعات الاختيار»: يمكن للمستخدم عبر التحديد/إلغاء التحديد إدراج مقاطع الكود ديناميكيًا في السكربت الرئيسي أو تحويلها إلى تعليقات، مما يحقق تجميع سكربتات Hook «بنمط المكعبات». كما تتضمن الإضافة نظام إدارة مشاريع كاملًا (zafrida-project.xml) يدعم التبديل السريع بين إعدادات أجهزة وبيئات متعددة.
لا تحل ZAFrida محل Frida، بل تعمل كواجهة رسومية قوية لـ frida-tools، وتتكامل بسلاسة مع بيئة Python وFrida الحالية لديك.
Wiki المبسّط: ZAFrida UI Wiki المبسّط (BBS) (هذا هو الـ Wiki الأبسط) دليل الاستخدام المفصّل: ZAFrida UI دليل الاستخدام المفصّل Wiki
عرض توضيحي

البدء السريع
- تثبيت الإضافة: ابحث عن "ZAFrida" في سوق إضافات IDE أو ثبّتها من القرص.
- تهيئة البيئة الافتراضية: يُستخدم افتراضيًا Python Interpreter لمشروع PyCharm الحالي؛ وفي
Settingsالعام ->Tools->ZAFridaتُحفظ فقط القيم الافتراضية لأسماء/مسارات الأدوات. - إنشاء مشروع: انقر بزر الفأرة الأيمن في عرض المشروع ->
New Frida Project.- إذا احتاج هذا المشروع إلى إصدار Frida مختلف، افتح ZAFrida
Project Settings، واختر مفسّر Python أو دليل البيئة ثم انقرTest.
- إذا احتاج هذا المشروع إلى إصدار Frida مختلف، افتح ZAFrida
- كتابة/اختيار السكربت: اختر
agent.jsأوagent.tsفي لوحة Run. - تصحيح Hook:
- الاتصال بالجهاز (USB أو Remote أو Gadget).
- اختيار العملية أو اسم الحزمة الهدف.
- النقر على Run.
- استخدام القوالب: انتقل إلى تبويب
Templates، وحدّد وظائف Hook التي تحتاجها (مثل "SSL Pinning Bypass")، وسيُدرج الكود تلقائيًا في سكربتك. - أتمتة Skills (اختياري): معطّلة افتراضيًا. انتقل إلى
Settings/Preferences -> ZAFrida -> Skills HTTP API، وبعد تحديدEnable Skillsيمكن تشغيل API المحلي تلقائيًا (أو يدويًا عبرStart/Stop)، ومواقع CLI والقوالب:- المهارة وCLI الرئيسي:
skills-template/zafrida-http-control/ - مشغّل متوافق مع المسار القديم:
skills-cli/zafrida_skill_cli.py
- المهارة وCLI الرئيسي:
رمز QR لمجموعة التواصل
الميزات الوظيفية
-
إدارة الأجهزة والعمليات
دمجfrida-ls-devicesوfrida-ps، مع دعم تحديث قائمة الأجهزة بنقرة واحدة، وعرض العمليات قيد التشغيل، أو التطبيقات العاملة، أو التطبيقات المثبّتة. -
اتصال متعدد الأوضاع
دعم كامل لأوضاع USB / Remote / Gadget، مع دعم Host وPort مخصصين للاتصال عن بُعد، دون الحاجة لتجميع معاملات سطر أوامر معقدة يدويًا. -
تشغيل السكربت التفاعلي (Run / Attach)
- دعم إجراءي التنفيذ Run (Spawn افتراضيًا) وAttach، بدلًا من مجرد «تبديل الوضع».
- دعم Force Stop لإيقاف التطبيق الهدف قسريًا.
- إخراج سجلات مدمج في وحدة التحكم، مع حفظ السجلات تلقائيًا في دليل المشروع
zafrida-logs/.
-
قائمة النقر بزر الفأرة الأيمن في محرر JS / TypeScript (مهم)
- بالنقر بزر الفأرة الأيمن داخل منطقة تحرير ملف Frida
.jsأو.ts، يمكن الاختيار مباشرة:- Run Frida Script: تنفيذ الملف الحالي كسكربت رئيسي (Spawn افتراضيًا).
- Attach Frida Script: حقن الملف الحالي كسكربت إضافي في العملية الهدف قيد التشغيل.
- قبل التنفيذ يتم حفظ الملف الحالي تلقائيًا، والتبديل تلقائيًا إلى ZAFrida Project الذي ينتمي إليه السكربت.
- مناسب لـ PoC السريع، والتحقق من Demo، ووضع Gadget، أو الحقن الفوري في عملية قيد التشغيل.
- اختصارات لوحة المفاتيح:
- Windows / Linux:
Ctrl + Alt + S - macOS:
⌘ + ⌥ + S
- Windows / Linux:
- بالنقر بزر الفأرة الأيمن داخل منطقة تحرير ملف Frida
-
إدراج Snippets من قائمة النقر بزر الفأرة الأيمن في المحرر
- توفير ZAFrida Frida Snippets في قائمة النقر بزر الفأرة الأيمن في محرر JS / TypeScript.
- إدراج مقاطع كود Frida الشائعة بنقرة واحدة، مثل:
- بنية تغليف
Java.perform - قالب Hook لطرق Java
Interceptor.attachلـ Native Hook
- بنية تغليف
- تتبع عملية الإدراج IDE WriteCommandAction، مع إمكانية التراجع/الإعادة بأمان.
-
نظام القوالب الديناميكي (الابتكار الجوهري)
- قوالب Hook مدمجة شائعة لأندرويد / iOS (مثل SSL Pinning Bypass، Method Hook، Native Hook).
- تحكم بمربعات الاختيار: التحديد يُدرج الكود، وإلغاء التحديد يحوّل الكود تلقائيًا إلى تعليق، دون حاجة للحذف أو التعديل اليدوي.
- دعم قوالب مخصصة، مع معاينة مباشرة لكود القالب داخل IDE.
-
تصميم منفصل لـ Run Script + Attach Script
- دعم وجود Run Script رئيسي وAttach Script مستقل معًا.
- مناسب لفصل «Hook في مرحلة الإقلاع» عن «منطق الحقن في مرحلة التشغيل»، مما يسهّل التصحيح المعقد والصيانة طويلة الأمد.
-
تهيئة بنمط المشروع (ZAFrida Project)
- إدخال مفهوم ZAFrida Project لحفظ الجهاز والهدف والسكربت وAttach Script ومعاملات الاتصال كسياق عمل كامل.
- دعم في Project View:
New Frida Projectلإنشاء مشروع جديدSelect Frida Projectللتبديل السريع للمشروع النشط حاليًاLoad Frida Projectلاستيراد دليل مشروع موجود
- بعد تبديل المشروع تُستعاد حالة الواجهة والإعدادات تلقائيًا.