
تحليل أمني موحد ديناميكي للحافة المحمولة
إطار عمل آلي معياري ومستودع سكريبتات لاختبار وتحليل تطبيقات Android و iOS في زمن التشغيل، مصمم لمختبرِي الاختراق ومحللي البرمجيات الخبيثة. يتيح لك إضافة وحدات نمطية لتجاوز الحمايات (مثل تثبيت SSL)، وفحص نشاط الشبكة/WebView، وتتبع استدعاءات API، وفحص الذاكرة/التشفير، ومراقبة سلوك البرمجيات الخبيثة — كل ذلك من سكريبت واحد منسق. يعمل بواسطة FRIDA في الخلفية ويأتي مزودًا بـ 90+ وحدة نمطية قابلة لإعادة الاستخدام لضمان قابلية التوسع والتكرار في الاختبارات.
متطلبات النظام:
التثبيت من GitHub:
# باستخدام python3/pip للنظام
pip3 install -r requirements.txt
# أو داخل بيئة افتراضية (موصى به)
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
أو حمّل أحدث إصدار مستقر من هنا
باستخدام Docker:
ملف Docker مهيأ مسبقًا متوفر في دليل medusa/.
بناء الصورة: docker build -t medusa:latest ./
تشغيل الحاوية: docker run --name medusa --net=host --rm -it medusa:latest
فعّل ADB عبر TCP/IP على جهازك الفعلي أو المحاكي: adb tcpip 5555
اتصل بالجهاز من داخل الحاوية: root@docker# adb connect <device_ip>:5555
أثناء التثبيت على macOS، قد تواجه المشكلة التالية:
تم تعطيل ميزات Readline بما في ذلك الإكمال التلقائي بسبب عدم العثور على إصدار مدعوم من readline. لحل هذه المشكلة، قم بتثبيت pyreadline3 على Windows أو gnureadline على Linux/Mac.
لحل المشكلة، قم بتثبيت حزمة gnureadline لـ Python:
pip install gnureadline
بالنسبة لـ Python 3.12، استخدم الأمر التالي لتثبيت gnureadline من commit معين:
pip install git+https://github.com/ludwigschwardt/python-gnureadline.git@8474e5583d4473f96b42745393c3492e2cb49224
إذا كنت تقوم بالترقية من إصدار قديم من Medusa وتواجه مشاكل في توافق قاعدة البيانات مع Mango، يُرجى الرجوع إلى DATABASE_MIGRATIONS.md للحصول على تعليمات الترحيل.
هام: إذا كان لديك قاعدة بيانات Mango موجودة وتتلقى أخطاءً بعد التحديث، تحقق من دليل الترحيل لتحديث مخطط قاعدة البيانات الخاصة بك.
شغّل سكريبت الدخول المناسب لكل منصة:
# Android
python3 medusa.py
# iOS
python3 medusa_ios.py
بعد البدء، سيقوم MEDUSA بتعداد الأجهزة المتاحة ويتيح لك اختيار واحد منها.
سير العمل التفاعلي الشائع
# عرض الأوامر المتاحة أو الحصول على مساعدة حول أمر معين
medusa> help # أو help <اسم-الأمر>
# عرض الوحدات النمطية المتاحة
medusa> show all
# الحصول على مساعدة/تفاصيل سريعة حول وحدة نمطية
medusa> info http_communications/ssl-pinning-bypass
# إضافة وحدة نمطية (الإكمال التلقائي بعلامة Tab لمسارات الوحدات)
medusa> use http_communications/ # اضغط [Tab] للإكمال التلقائي
# عرض الحزم المثبتة على الجهاز
medusa> list
# تجهيز حزمة (باسم الحزمة)
medusa> run -f com.my.app
# عرض الأجهزة المتاحة واختيار واحد
medusa> loaddevice
الواجهة الطرفية المساعدة الخفيفة لـ Medusa للتحضير الثابت والأتمتة — تحليل البيان (manifest)، تعداد سطح الهجوم، تتبع التطبيقات، وأتمتة بسيطة للجهاز/الوكيل.
شغّل python3 mango.py <اسم-قاعدة-البيانات> لإنشاء أو تحميل قاعدة بيانات لتخزين نتائج Mango.
# عرض الأجهزة المتاحة واختيار واحد
mango> loaddevice
# سحب تطبيق (باسم الحزمة)
mango> pull com.my.app
# استيراد تطبيق للتحليل
mango> import /path/to/apk
هذا اختياري وغير مطلوب لسير العمل القياسي لواجهة Medusa الطرفية.
إذا كنت ترغب في استخدام خادم MCP الخاص بـ Android (medusa_android_mcp.py)، قم بتثبيت متطلبات MCP:
pip install -r requirements-mcp.txt
# تشغيل
MEDUSA_MCP_TRANSPORT=streamable-http python medusa_android_mcp.py
"medusa-android": {
"type": "http",
"url": "http://127.0.0.1:8000/mcp"
}
للاستخدام المتقدم والأمثلة، راجع الويكي الخاص بنا. للحصول على نصائح سريعة وسير عمل تمهيدي، تحقق من العروض التوضيحية أدناه:
يمكنك المساهمة في هذا المشروع عن طريق:
Stheno هو مشروع فرعي من Medusa، مصمم خصيصًا لمراقبة النوايا (intent monitoring) داخل هذا الإطار. فيما يلي دليل سريع حول كيفية إعداد واستخدام Stheno بفعالية.
تضمين وحدة النوايا (Intent Module):
أضف الوحدة intents/start_activity إلى مشروع Medusa الخاص بك:
medusa> add intents/start_activity
تشغيل خادم المقبس (Socket Server): ابدأ تشغيل خادم مقبس Medusa لتسهيل الاتصال:
medusa> startserver
تشغيل Stheno: افتح Stheno وانتقل إلى قائمة مراقب النوايا (Intent Monitor)، ثم انقر على بدء لبدء مراقبة النوايا.




