Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

الخلاصاتاتصالالخصوصية© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
diaphora-mcp — خادم MCP للتباين الثنائي الآلي. | Kitploit
أدوات/GitHubGitHub/xteardx/diaphora-mcp
التحليل الثابتتحليل الثغرات الأمنيةالهندسة العكسيةمصممي الأخطاءالاختبار العشوائيتحليل الملفات الثنائيةاستغلال الملفات الثنائية
GitHubxteardx/diaphora-mcp

diaphora-mcp

خادم MCP للتباين الثنائي الآلي.

عرض المستودع
17385منذ 2 أشهرلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

Читать на русском языке

Diaphora MCP

Diaphora MCP هو خادم MCP (بروتوكول سياق النموذج) للمقارنة الثنائية الآلية. يربط بين Diaphora (محرك المقارنة) و IDA Pro (مفكك التجميع) عبر بروتوكول MCP، مما يسمح للوكلاء الذكيين (مثل Claude Code) بإجراء مقارنة الملفات الثنائية، والعثور على التصحيحات الأمنية، وتحليل التغييرات.

الميزات

  • التصدير: يحول قواعد بيانات .i64 / .idb التي تم تحليلها إلى تنسيق Diaphora SQLite (عبر وضع idat.exe بدون واجهة)
  • المقارنة: يقارن بين قاعدتي بيانات تم تصديرهما، ويصفّي النتائج حسب نوع المطابقة والنسبة
  • تحليل الثغرات: يبحث عن التغييرات ذات الصلة بالأمان باستخدام مطابقة الكلمات الرئيسية والإرشادات الاستدلالية
  • كشف التصحيحات: يكتشف تلقائياً عمليات التحقق الجديدة من الحدود، والتحقق من القيم الفارغة، ومعالجة الأخطاء، والتغييرات في التشفير
  • الترتيب: يرتب الدوال المتغيرة حسب الأهمية بناءً على CFG، والقفزات المعقدة، والمؤشرات الأمنية
  • رسم بياني للاستدعاءات: يقارن مسارات الاستدعاء (BFS، حتى N مستويات)، ويكشف تغييرات السبب الجذري في تسلسلات الاستدعاء
  • نقل البيانات الوصفية: يهيئ الأسماء والتعليقات والنماذج الأولية للنقل بين قواعد البيانات
  • التكامل مع IDA Pro MCP: جميع الأدوات تُرجع العناوين ومسارات قواعد البيانات الجاهزة للإرسال مباشرة إلى أدوات IDA Pro MCP

التثبيت

1. المتطلبات

  • Python 3.10+
  • IDA Pro 8.x / 9.x (للتصدير بدون واجهة عبر idat.exe)
  • إضافة Diaphora المثبتة في IDA
  • Claude Code (أو أي عميل متوافق مع MCP)

2. تثبيت الحزمة

git clone https://github.com/xTeardx/diaphora-mcp.git
cd diaphora-mcp
pip install -e .

3. إعداد المسارات

يحاول الحزمة العثور تلقائياً على IDA Pro و Diaphora في مواقع التثبيت القياسية. إذا لم يتم العثور عليهما، يمكنك تعيين متغيرات البيئة التالية:

المتغيرالوصفمثال
IDAT_PATHالمسار الكامل لـ idat.exeC:\Program Files\IDA Pro 9.3\idat.exe
DIAPHORA_DIRالمجلد الذي يحتوي على diaphora.pyC:\Program Files\IDA Pro 9.3\plugins\diaphora-3.4.1
DIAPHORA_OUTPUT_ROOTالدليل الجذر المسموح به لملفات التصدير الجديدةD:\\diaphora-outputs
DIAPHORA_PYTHONمترجم Python لعملية المقارنة/usr/bin/python3 (الافتراضي هو sys.executable)

بالنسبة لـ Claude Code، يمكنك تحديدها في ~/.claude.json (أو ملف التكوين المطابق لعميل MCP الخاص بك):

{
  "mcpServers": {
    "diaphora": {
      "command": "python",
      "args": ["path/to/repo/diaphora_mcp_server.py"],
      "env": {
        "IDAT_PATH": "C:\\Program Files\\IDA Pro 9.3\\idat.exe",
        "DIAPHORA_DIR": "C:\\Program Files\\IDA Pro 9.3\\plugins\\diaphora-3.4.1"
      },
      "timeout": 7200
    }
  }
}

ملاحظة: بالنسبة للملفات الثنائية الكبيرة جداً (>100 MB)، تأكد من أن timeout لا يقل عن 7200 (ساعتين).

3.1. Codex و IDA MCP بدون واجهة

يستخدم Codex عادةً خادمي MCP متكاملين:

  • diaphora-mcp — هذا المشروع: التصدير، مقارنة Diaphora، وتحليل النتائج؛
  • ida-pro-mcp — خادم فحص IDA الأساسي لـ idb_open، وإعادة التجميع، والتحليل على مستوى العنوان.

idalib-mcp هو الجزء الخلفي بدون واجهة لـ ida-pro-mcp، وليس خادماً منفصلاً لـ Diaphora. بعد تثبيته، أعد تشغيل Codex:

uv run ida-pro-mcp --install codex --transport streamable-http --scope global --ida-rpc http://127.0.0.1:8745/mcp

بالنسبة لهذا المشروع، يكفي تكوين stdio:

[mcp_servers.diaphora-mcp]
command = "python"
args = ["D:\\path\\to\\diaphora-mcp\\diaphora_mcp_server.py"]
startup_timeout_sec = 120

4. تحضير قواعد البيانات للمقارنة

يجب على IDA Pro تحليل الملفات الثنائية أولاً (إنشاء ملفات .i64 أو .idb). بعد ذلك:

┃ export_idb_to_diaphora(idb_path="old_version.i64")
┃ export_idb_to_diaphora(idb_path="new_version.i64")

أو تشغيل المسار الكامل في أمر واحد:

┃ batch_export_and_diff(idb1="old.i64", idb2="new.i64")

لا تمرر .i64 مباشرة إلى أدوات النتائج: إنها قاعدة بيانات IDA، وليست SQLite. قم بتصديرها أولاً.

بدء سريع

┃ # 1. مسار كامل: تصدير ملفين .i64 → مقارنة → تقرير ملخص
┃ batch_export_and_diff(idb1="v1.0.i64", idb2="v1.1.i64")
 
┃ # 2. إذا كانت قواعد البيانات مصدرة بالفعل
┃ diff_diaphora_dbs(db1="v1.0.sqlite", db2="v1.1.sqlite")
 
┃ # 3. تحليل أمني لنتائج المقارنة
┃ analyze_diff_results(results_path="v1.0_vs_v1.1.diaphora")
 
┃ # 4. ترتيب التغييرات حسب الأهمية
┃ rank_changes(results_path="v1.0_vs_v1.1.diaphora", top_n=20)
 
┃ # 5. العثور على تغييرات السبب الجذري
┃ find_patch_root(results_path="v1.0_vs_v1.1.diaphora")
 
┃ # 6. كشف التصحيحات الأمنية المحتملة
┃ detect_security_patches(results_path="v1.0_vs_v1.1.diaphora")
 
┃ # 7. إنشاء تقرير كامل
┃ summarize_patch(results_path="v1.0_vs_v1.1.diaphora")

مثال (نص جلسة حية)

انظر examples/basic-session.md للحصول على نص كامل خطوة بخطوة لجلسة حقيقية مع Diaphora MCP — من تصدير قاعدتي بيانات IDB إلى مقارنة الدوال الفردية. متوفر أيضاً باللغة الروسية.

إليك لمحة سريعة عما يعيده الخادم:

الإدخال — مقارنة ملفي SQLite3 DLL (2015 مقابل 2023):

{"idb1_path": "old.i64", "idb2_path": "new.i64", "use_decompiler": false}

الإخراج — ملخص بعد التصدير + المقارنة:

{
  "best_matches": 60,
  "partial_matches": 993,
  "multimatches": 52,
  "unmatched_primary": 2647
}

تستعرض الجلسة 6 استدعاءات لأدوات MCP، مع إظهار JSON الدقيق لكل خطوة، إلى جانب منطق الوكيل.

التحقيق في قاعدة بيانات واحدة

┃ # الحصول على معلومات تصدير قاعدة البيانات
┃ get_export_info(db_path="app.sqlite")
 
┃ # البحث عن الدوال
┃ search_export_db(db_path="app.sqlite", name_pattern="%crypt%", min_instructions=50)
 
┃ # استرجاع الكود الزائف
┃ get_function_pseudocode(db_path="app.sqlite", address="401000")

هيكل المشروع

diaphora-mcp/
├── diaphora_mcp_server.py          # نقطة الدخول الرئيسية
├── diaphora_mcp/
│   ├── diaphora_mcp_server.py      # تسجيل أداة MCP
│   ├── config.py                   # تكوين المسار والكشف التلقائي
│   ├── models.py                   # الثوابت والنماذج
│   ├── core/
│   │   ├── export.py               # التصدير بدون واجهة، المسار الدفعي
│   │   ├── diff.py                 # المقارنة وقارئ نتائج .diaphora
│   │   ├── analysis.py             # البحث عن الدوال، المقارنة، التفسير
│   │   ├── security.py             # مطابقة الكلمات الرئيسية، كشف التصحيحات
│   │   ├── ranking.py              # ترتيب الأهمية
│   │   ├── graph.py                # رسم الاستدعاءات، أشجار BFS، السبب الجذري
│   │   ├── metadata.py             # إعداد البيانات الوصفية (الأسماء، التعليقات)
│   │   └── report.py               # إنشاء تقرير التصحيح الكامل
│   └── utils/
│       ├── sqlite.py               # مساعدات SQLite
│       ├── format.py               # مقارنة الكود الزائف، استخراج متجه الميزات
│       └── log.py                  # أدوات تسجيل التصدير
├── _diaphora_headless.py           # idat.exe -S غلاف رقيق
└── logs/                           # سجلات التصدير الآلية (تُنشأ ديناميكياً)

مرجع أدوات MCP (21 أداة)

التصدير

الأداةالوصف
export_idb_to_diaphoraيصدر قاعدة بيانات .i64/.idb إلى تنسيق SQLite باستخدام IDA بدون واجهة
batch_export_and_diffمسار كامل: تصدير أساسي → تصدير ثانوي → مقارنة → ملخص

المقارنة

الأداةالوصف
diff_diaphora_dbsيقارن بين قاعدتي بيانات Diaphora SQLite تم تصديرهما
get_diff_resultsيقرأ ملف المقارنة .diaphora مع إمكانية التصفية
get_diff_summaryيعيد إحصائيات المطابقة
تنزيل الأداة