
zafrida-ui v0.3.7
نافذة أداة Frida UI داخل PyCharm / JetBrains IDEs.
中文 | English
ZAFrida UI - PyCharm Frida Plugin
الإصدار الحالي: 0.3.7
التحديثات الرئيسية في 0.3.7
- يمكن لكل مشروع ZAFrida اختيار بيئة Python/Frida بشكل مستقل أو مشاركتها، ويتم استخدام مترجم مشروع PyCharm الحالي افتراضيًا، مع دعم البيئات المحلية مثل venv و Conda و uv و Poetry و Pipenv و Hatch.
- إعادة تصميم واجهة الجلسة (Session UI) وإعدادات المشروع (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 IDEs. يهدف إلى حل مشاكل تعقيد أوامر Frida في سطر الأوامر وسوء إدارة السكربتات، ويوفر واجهة تفاعلية كاملة لإدارة الأجهزة والعمليات والسكربتات والسجلات.
أبرز ما يميزه هو نظام إدارة القوالب "بنمط مربعات الاختيار": يمكن للمستخدمين إدراج مقاطع برمجية ديناميكيًا في السكربت الرئيسي أو تعليقها عبر تحديد/إلغاء تحديد المربعات، مما يتيح تجميع سكربتات Hook "بطريقة البناء المكعبات". كما يتضمن البرنامج المساعد إدارة مشاريع كاملة (zafrida-project.xml) تدعم التبديل السريع بين الأجهزة والبيئات المتعددة.
ZAFrida لا يستبدل Frida، بل يعمل كواجهة UI قوية لـ frida-tools، متكاملًا بسلاسة مع بيئة Python و Frida الحالية لديك.
ويكي مبسط: ZAFrida UI Wiki مبسط (BBS) (هذا هو الويكي الأبسط) دليل استخدام مفصل: ZAFrida UI دليل الاستخدام المفصل Wiki
عرض توضيحي

بدء سريع
- تثبيت البرنامج المساعد: ابحث عن "ZAFrida" في سوق إضافات IDE أو ثبّته من القرص.
- تكوين البيئة الافتراضية: يتم استخدام مترجم Python لمشروع PyCharm الحالي افتراضيًا؛ في الإعدادات العامة
Settings->Tools->ZAFridaيتم الاحتفاظ فقط بالقيم الافتراضية لاسم/مسار الأدوات. - إنشاء مشروع: انقر بزر الماوس الأيمن في عرض المشروع ->
New Frida Project.- إذا كان المشروع يتطلب إصدار Frida مختلفًا، افتح ZAFrida
Project Settings، واختر مترجم Python أو دليل البيئة ثم انقرTest.
- إذا كان المشروع يتطلب إصدار Frida مختلفًا، افتح ZAFrida
- كتابة/اختيار سكربت: في لوحة Run اختر ملف
agent.jsأوagent.tsالخاص بك. - تصحيح Hook:
- الاتصال بالجهاز (USB أو Remote أو Gadget).
- اختيار العملية المستهدفة أو اسم الحزمة.
- انقر Run.
- استخدام القوالب: انتقل إلى تبويب
Templates، وحدد وظائف Hook التي تحتاجها (مثل "SSL Pinning Bypass")، وسيتم حقن الكود تلقائيًا في سكربتك. - أتمتة Skills (اختياري): معطلة افتراضيًا. انتقل إلى
Settings/Preferences -> ZAFrida -> Skills HTTP API، وحددEnable Skillsلبدء تشغيل API المحلي تلقائيًا (أو يمكنك تشغيله/إيقافه يدويًاStart/Stop)، ومواقع CLI والقوالب:- Skill و CLI الرئيسي:
skills-template/zafrida-http-control/ - مشغل التوافق للمسار القديم:
skills-cli/zafrida_skill_cli.py
- Skill و CLI الرئيسي:
رمز مجموعة التواصل
الميزات
-
إدارة الأجهزة والعمليات
يدمج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 الذي ينتمي إليه السكربت.
- مناسب لـ PoC سريع، والتحقق من العروض التوضيحية، ووضع Gadget، أو الحقن الفوري في العمليات قيد التشغيل.
- اختصارات لوحة المفاتيح:
- Windows / Linux:
Ctrl + Alt + S - macOS:
⌘ + ⌥ + S
- Windows / Linux:
- في منطقة تحرير ملفات Frida
-
إدراج Snippets من محرر النقر بزر الماوس الأيمن
- توفير ZAFrida Frida Snippets في قائمة النقر بزر الماوس الأيمن في محرر JS / TypeScript.
- إدراج مقاطع كود Frida الشائعة بنقرة واحدة، مثل:
- بنية تغليف
Java.perform - قالب Hook لطريقة Java
- Native Hook عبر
Interceptor.attach
- بنية تغليف
- تتبع عملية الإدراج WriteCommandAction الخاصة بـ IDE، ويمكن التراجع/الإعادة بأمان.
-
نظام القوالب الديناميكية (الابتكار الأساسي)
- قوالب Hook شائعة مدمجة لنظامي Android / iOS (مثل SSL Pinning Bypass و Method Hook و Native Hook).
- التحكم عبر مربعات الاختيار: التحديد يُدرج الكود، وإلغاء التحديد يُعلّق الكود تلقائيًا، دون الحاجة إلى حذف أو تعديل يدوي.
- دعم القوالب المخصصة، مع معاينة فورية لكود القالب داخل IDE.
-
تصميم منفصل لـ Run Script + Attach Script
- دعم وجود Run Script رئيسي و Attach Script مستقل في نفس الوقت.
- مناسب لفصل "Hook مرحلة الإطلاق" عن "منطق الحقن أثناء التشغيل"، مما يسهل التصحيح المعقد والصيانة طويلة الأمد.
-
التكوين القائم على المشاريع (ZAFrida Project)
- تقديم مفهوم ZAFrida Project، لحفظ الجهاز والهدف والسكربت و Attach Script ومعاملات الاتصال كسياق عمل كامل.
- دعم في عرض المشروع:
New Frida Projectلإنشاء مشروع جديدSelect Frida Projectللتبديل السريع بين المشاريع النشطة حاليًاLoad Frida Projectلاستيراد دليل مشروع موجود
- بعد التبديل بين المشاريع، يتم استعادة حالة UI والتكوين تلقائيًا.
-
تحليل ذكي لبيئة Python / Frida
- تحليل Python SDK لمشروع PyCharm الحالي افتراضيًا؛ يمكن لكل مشروع ZAFrida تجاوز المترجم أو دليل البيئة بشكل منفصل.
- دعم البيئات المحلية system/pyenv و venv/virtualenv و Conda و uv و Poetry و Pipenv و Hatch.
- يمكن لمشاريع ZAFrida المتعددة اختيار نفس المسار لمشاركة البيئة دون نسخ venv؛ مناسب لصيانة بيئات Frida 16/17 بشكل منفصل.
- عند نقص
frida-toolsفي بيئة IDE الحالية أو بيئة المشروع الصريحة، يتم عرض خطأ مباشرة دون استخدام إصدار آخر من PATH النظام بصمت؛ يمكن لـTestعرض إصدار Frida الفعلي. - لا يمكن حاليًا استخدام مترجمات Python عن بُعد مثل SSH و Docker و Docker Compose و WSL لعمليات Frida الفرعية المحلية.
-
Frida 17 / TypeScript
- دعم ملفات
.js/.tsفي اختيار الملفات والنقر بزر الماوس الأيمن Run/Attach و Snippets؛ يقوم REPL الخاص بـ Frida 17 بتجميع-l agent.tsتلقائيًا. - تم ترحيل القوالب المدمجة إلى واجهات Module/NativePointer الحديثة في Frida 17، مع الحفاظ على توافق البيئات الشائعة لـ Frida 16.
- يحمل REPL الخاص بـ frida-tools جسور Java/ObjC القياسية بشكل متوافق؛ عند استخدام
importمن npm/وحدات الطرف الثالث، يجب إدارة التبعيات عبرfrida-create -t agentأو مشروع مكافئ.
- دعم ملفات
-
واجهة أتمتة Skills المحلية
- دعم HTTP API المحلي لـ Skills (معطل افتراضيًا) لاكتشاف القدرات والمشاريع/بيئات Python والأجهزة والعمليات و Run/Attach وقوائم السجلات التاريخية وقراءة السجلات التزايدية القائمة على مؤشر البايت.
- يتضمن Skill عمليات استرداد محدودة
wait-device/wait-session، ويميز بين القراءات القابلة لإعادة المحاولة بأمان والعمليات الجانبية غير القابلة لإعادة التشغيل تلقائيًا. - طريقة التفعيل:
Settings/Preferences -> ZAFrida -> Skills HTTP API، حددEnable Skills. - CLI والقوالب المصاحبة:
skills-template/zafrida-http-control/(Skill الرئيسي و CLI)skills-cli/zafrida_skill_cli.py(مشغل التوافق للمسار القديم)
حالات الاستخدام
ZAFrida UI مناسب لجميع السيناريوهات التي تستخدم Frida في الهندسة العكسية، خاصة:
- اختبار الاختراق والتحليل العكسي لتطبيقات Android / iOS.
- عمليات التصحيح التي تتطلب التبديل المتكرر بين سكربتات Hook المختلفة.
- المهندسون الذين اعتادوا استخدام IDE (PyCharm/IDEA) للتطوير المختلط بين Python و JavaScript و TypeScript.
التوثيق الفني
-
متطلبات البيئة:
- IntelliJ IDEA أو PyCharm (يُوصى بـ 2024.3+)
- تثبيت Python3 و
frida-toolsمحليًا (pip install frida-tools) - تأكد من وجود
fridaوfrida-psوfrida-ls-devicesفي PATH النظام أو حدد مساراتها في إعدادات البرنامج المساعد.
-
الإبلاغ عن المشكلات: Github Issues
تشغيل المشروع
- استنساخ الكود المصدري:
git clone https://github.com/yilongmd/zafrida-ui.git - افتح المشروع باستخدام IntelliJ IDEA.
- شغّل مهمة Gradle
runIdeلبدء بيئة التصحيح.
لقطات النظام
الواجهة الرئيسية ولوحة التشغيل (Run Panel)
توفر اختيار الجهاز واختيار السكربت وتكوين وضع التشغيل وإخراج وحدة التحكم.

إدارة القوالب الديناميكية (Template Panel)
اختيار الفئة على اليسار، وتحديد القوالب في المنتصف، ومعاينة الكود في الوقت الفعلي على اليمين. تتحكم مربعات الاختيار مباشرة في تفعيل محتوى السكربت.

واجهة الإعدادات (Settings)
دعم تخصيص مسارات أدوات Frida وعنوان الاتصال عن بُعد وتكوين السجلات.

معالج إنشاء المشروع
إنشاء هيكل مشروع Frida موحد بسرعة.

البنية التقنية
بيئة التطوير
- اللغة: Java 21, Java, نصوص البناء تستخدم Gradle Kotlin DSL
- الإطار: IntelliJ Platform SDK
- أداة البناء: Gradle
- التبعيات:
fridafrida-tools(بيئة Python)
شكر وتقدير
شكر خاص للخبراء التاليين على دعمهم بقوالب سكربتات Frida JS لهذا المشروع:
- 小佳
- Lane
- 迷人
لمزيد من المساهمين ورسائل الشكر، يرجى الاطلاع على: CONTRIBUTORS.md