
OGhidra — Updated!
يُدمج OGhidra نماذج اللغة الكبيرة (LLMs) عبر Ollama مع منصة Ghidra لهندسة عكسية، مما يتيح تحليل الثنائيات بمساعدة الذكاء الاصطناعي عبر اللغة الطبيعية. تفاعل مع Ghidra باستخدام استفسارات محادثة وأتمتة مهام سير العمل المعقدة في الهندسة العكسية.
OGhidra 3 - الهندسة العكسية المدعومة بالذكاء الاصطناعي باستخدام Ghidra
للإصدار الذي يستخدم Orchestrator مستوحى من Claude، راجع https://github.com/llnl/OGhidra/tree/orchestrator
OGhidra يربط نماذج اللغة الكبيرة بمنصة الهندسة العكسية Ghidra، مما يتيح تحليلًا ثنائيًا مدفوعًا بالذكاء الاصطناعي من خلال اللغة الطبيعية. حلل الملفات الثنائية بطريقة تفاعلية، وأتمتة سير العمل المعقدة، وحافظ على الخصوصية الكاملة مع نماذج الذكاء الاصطناعي المحلية.
برنامج تعليمي للإعداد على YouTube
ما هو OGhidra؟
OGhidra يعزز Ghidra بقدرات الذكاء الاصطناعي، مما يسمح لك بـ:
- تحليل باللغة الطبيعية - اطرح أسئلة حول الدوال، السلاسل النصية، الاستيرادات باللغة الإنجليزية المبسطة
- سير عمل آلي - إعادة تسمية الدوال، اكتشاف الأنماط، إنشاء تقارير شاملة
- نماذج ذكاء اصطناعي محلية - خصوصية كاملة مع نماذج تعمل على جهازك (Ollama)
- دعم ذكاء اصطناعي سحابي - الاتصال بواجهات برمجة تطبيقات خارجية (OpenAI, Google Gemini, Anthropic Claude)
- كشف البرامج الضارة - مطابقة أنماط تلقائية لأكثر من 12 تقنية تهرب وحقن
- تعداد ذكي - بناء رسوم معرفية قابلة للاستعلام من تحليل الملفات الثنائية
- تحليل متعدد المثيلات - تشغيل عدة مثيلات من Ghidra للتحليل المتوازي
كيف يعمل
graph TD
A[استعلام المستخدم] --> B[مرحلة التخطيط]
B --> C{مرحلة التنفيذ}
C -- استدعاءات الأدوات --> D[Ghidra/LLM]
D --> C
C --> E[مرحلة المراجعة]
E -- حلقة وكيلية --> B
E --> F[الرد النهائي]
style E fill:#f9f,stroke:#333,stroke-width:2px
style B fill:#bbf,stroke:#333,stroke-width:2px
الحلقة الوكيلية: يستخدم OGhidra نظام تخطيط تكيفي. بعد كل دورة تنفيذ، يتم مراجعة النتائج ويمكن للذكاء الاصطناعي اختيار جمع المزيد من المعلومات أو تحسين تحليله قبل تقديم الرد النهائي.
بداية سريعة
المتطلبات الأساسية
- Python 3.12+ - تحقق من الإصدار:
python --version - Ghidra 12.0.3 (مُوصى به) - تنزيل من إصدارات Ghidra
- مسار بناء/تثبيت الإضافة موثق لـ Ghidra 12.0.3
- تم اختباره مع: Ghidra 11.0.3, 11.3.2, 12.0.2, 12.0.3
- Java 21 - مطلوب لبناء إضافة Ghidra 12.0.3:
java -version - Ollama (اختياري، للنماذج المحلية) - تثبيت من ollama.com
التثبيت
# استنساخ المستودع
git clone https://github.com/LLNL/OGhidra.git
cd OGhidra
# تثبيت التبعيات (اختر أحد الخيارين)
uv sync # باستخدام UV (مُوصى به)
pip install -r requirements.txt # باستخدام pip
# تكوين البيئة
cp .env.example .env
# عدّل .env بإعداداتك
إعداد إضافة Ghidra
خطوات بناء إضافة OGhidraMCP أدناه تستهدف Ghidra 12.0.3 (مُوصى به). يوجد أيضًا فيديو تعليمي على YouTube: https://www.youtube.com/watch?v=hBD92FUgR0Y
بناء إضافة GhidraMCP
كمطور، ستحتاج إلى بناء إضافة GhidraMCP قبل تثبيتها في Ghidra:
-
المتطلبات الأساسية:
- Ghidra 12.0.3 مثبتة
- Java 21
-
الخيار 1: استخدام نصوص البناء الآلية:
-
ويندوز:
# تعيين مسار تثبيت Ghidra (سيحاول العثور على آخر نسخة مشغلة من Ghidra إذا لم يتم تعيينه) set GHIDRA_INSTALL_DIR=C:\path\to\ghidra_12.0.3_PUBLIC # تشغيل نص البناء build_ghidra_plugin.bat -
Unix/Linux/Mac:
# تعيين مسار تثبيت Ghidra (سيحاول العثور على آخر نسخة مشغلة من Ghidra إذا لم يتم تعيينه) export GHIDRA_INSTALL_DIR=/path/to/ghidra_12.0.3_PUBLIC # تشغيل نص البناء (اجعله قابلاً للتنفيذ أولاً إذا لزم الأمر) chmod +x build_ghidra_plugin.sh ./build_ghidra_plugin.sh
-
-
الخيار 2: عملية البناء اليدوية:
-
أنشئ/حدّث
OGhidraMCP/gradle.propertiesبمسار تثبيت Ghidra الخاص بك:GHIDRA_INSTALL_DIR=/absolute/path/to/ghidra_12.0.3_PUBLIC -
على Unix/Linux/macOS:
cd OGhidraMCP $GHIDRA_INSTALL_DIR/support/gradle/gradlew buildExtension --info -
على ويندوز:
cd OGhidraMCP "%GHIDRA_INSTALL_DIR%\support\gradle\gradlew.bat" buildExtension --info
-
-
تحديد موقع الإضافة المبنية:
- يتم إنشاء ملف zip للإضافة في
OGhidraMCP/dist/ - سيكون اسم الملف شيئًا مثل
ghidra_12.0.3_PUBLIC_YYYYMMDD_OGhidraMCP.zip
- يتم إنشاء ملف zip للإضافة في
تثبيت إضافة GhidraMCP
بمجرد بناء الإضافة بنجاح:
-
تثبيت في Ghidra:
- افتح Ghidra -> File -> Install Extensions
- انقر Add Extension (أيقونة زائد خضراء)
- تصفح إلى دليل
OGhidraMCP/dist/ - حدد ملف zip للإضافة المبنية حديثًا (مثل
ghidra_12.0.3_PUBLIC_YYYYMMDD_OGhidraMCP.zip) - أعد تشغيل Ghidra
-
تفعيل الإضافة:
- افتح مشروع Ghidra
- File → Configure → Enable Developer
- فعّل إضافة
OGhidraMCP - سيبدأ الخادم على
http://localhost:8080/methods
يجب أن يكون CODE BROWSER مفتوحًا لديك
سحب نماذج الذكاء الاصطناعي
# لـ Ollama (نماذج محلية)
ollama pull gemma3:27b # توازن جيد (20GB ذاكرة وصول عشوائي)
ollama pull nomic-embed-text # نموذج التضمين لـ RAG
# نماذج بديلة
ollama pull gpt-oss:120b # جودة عالية (80GB ذاكرة وصول عشوائي)
ollama pull devstral-2:123b # جودة عالية (80GB ذاكرة وصول عشوائي)
ollama pull devstral-2:123b-cloud # نموذج سحابي
تشغيل OGhidra
# وضع الواجهة الرسومية (مُوصى به)
uv run main.py --ui
# واجهة سطر الأوامر التفاعلية
uv run main.py --interactive
# في واجهة سطر الأوامر التفاعلية، اختبر الاتصال
health
إذا قمت بتشغيل وضع الواجهة الرسومية، استخدم:
curl http://localhost:8080/methods
التكوين
عدّل .env لتكوين مزود الذكاء الاصطناعي الخاص بك:
الخيار 1: نماذج محلية (Ollama)
LLM_PROVIDER=ollama
OLLAMA_BASE_URL=http://localhost:11434/
OLLAMA_MODEL=gemma3:27b
OLLAMA_EMBEDDING_MODEL=nomic-embed-text
الخيار 2: واجهات برمجة تطبيقات خارجية
LLM_PROVIDER=external
EXTERNAL_PROVIDER=google
EXTERNAL_API_KEY=your-api-key-here
EXTERNAL_MODEL=gemini-3.1-flash-lite-preview
EXTERNAL_EMBEDDING_MODEL=gemini-embedding-001
الخيار 3: واجهة برمجة تطبيقات مخصصة متوافقة مع OpenAI
LLM_PROVIDER=custom_api
CUSTOM_API_URL=https://api.example.com/v1/chat/completions
CUSTOM_API_KEY=your-api-key-here
CUSTOM_API_MODEL=your-model-name
CUSTOM_API_EMBEDDING_MODEL=your-embedding-model
إعدادات إدارة السياق
اضبط وفقًا لنافذة سياق النموذج الخاص بك:
# ميزانية السياق بالرموز (اضبط حسب حد النموذج الخاص بك)
CONTEXT_BUDGET=100000 # 100 ألف رمز للنماذج متوسطة الحجم
# 200 ألف+ للنماذج الرائدة
# إعدادات التنفيذ
MAX_EXECUTION_STEPS=5 # خطوات لكل دورة تخطيط
MAX_AGENTIC_CYCLES=3 # عدد حلقات التخطيط-التنفيذ-المراجعة
AGENTIC_LOOP_ENABLED=true # تفعيل إعادة التخطيط التكيفي
الميزات الرئيسية
1. أزرار الأدوات الذكية (الواجهة الرسومية)
وصول بنقرة واحدة إلى مهام الهندسة العكسية الشائعة:
| الأداة | الوصف |
|---|---|
| تحليل الدالة الحالية | غوص عميق في سلوك الدالة المحددة |
| إعادة تسمية الدالة الحالية | الذكاء الاصطناعي يقترح أسماء ذات معنى بناءً على التحليل |
| إعادة تسمية جميع الدوال | إعادة تسمية جماعية مع خيارات ذكية/كاملة/إعادة تسمية فقط |
| تحليل الاستيرادات | تحديد المكتبات والتبعيات الخارجية |
| تحليل السلاسل النصية | العثور على عناوين URL، بيانات الاعتماد، بيانات التكوين |
| إنشاء تقرير | تقييم أمني شامل |
2. أوضاع المهام
حدد أهداف تحليل متخصصة:
# في الواجهة الرسومية: استخدم القائمة المنسدلة "Task Mode"
# في سطر الأوامر: set task_mode <mode>
