
ghidra-mcp v6.0.0
خادم MCP يربط بين الهندسة العكسية لـ Ghidra وأدوات الذكاء الاصطناعي: 256 أداة لفك التجميع، ومحاكاة P-code، والتصحيح المباشر، وتحليل تدفق البيانات، والعمليات الدفعية، وفرض الاتفاقيات عبر الوضع بدون واجهة رسومية ووضع واجهة المستخدم الرسومية.
خادم Ghidra MCP
إذا وجدت هذا مفيدًا، فيرجى ⭐ إضافة نجمة إلى المستودع — فهذا يساعد الآخرين على اكتشافه!
إذا وفّر عليك Ghidra MCP وقتًا، ففكّر في رعاية المشروع. الدعم لمرة واحدة والدعم المتكرر يساعدان في تمويل تحديثات التوافق، وتقوية الإنتاج، والتوثيق، والأدوات الجديدة.
خادم Model Context Protocol (MCP) جاهز للإنتاج يربط قدرات الهندسة العكسية القوية في Ghidra بأدوات الذكاء الاصطناعي الحديثة وأطر الأتمتة. 253 أداة MCP، وسير عمل ذكاء اصطناعي مُجرَّب ميدانيًا، وأكثر تكامل Ghidra-MCP شمولًا متاح — بما في ذلك الآن محاكاة P-code، وتكامل المُنقِّح المباشر، وتحليل تدفق البيانات عبر PCode-graph.
لماذا Ghidra MCP؟
معظم تطبيقات Ghidra MCP تمنحك حفنة من الأدوات للقراءة فقط وتكتفي بذلك. هذا المشروع مختلف — فقد بناه مهندس عكسي يستخدمه يوميًا على ملفات ثنائية حقيقية، وليس كعرض توضيحي.
- 253 أداة MCP — أكثر بثلاثة أضعاف من أي تطبيق منافس. ليست عمليات قراءة فقط — بل وصول كامل للكتابة لإعادة التسمية، والكتابة النوعية، والتعليق، وإنشاء البُنى، وتنفيذ السكربتات، ومحاكاة P-code، والتنقيح المباشر.
- سير عمل ذكاء اصطناعي مُجرَّب ميدانيًا — سير عمل توثيق مُثبَت (V5) مُحسَّن عبر مئات الدوال. يتضمن مطالبات خطوة بخطوة، ومرجع الترميز الهنغاري، وأدلة المعالجة الدفعية، واكتشاف الكود اليتيم.
- موثوقية بمستوى الإنتاج — معاملات ذرّية، وعمليات دفعية (تقليل استدعاءات API بنسبة 93%)، ومهلات زمنية قابلة للتهيئة، ومعالجة أخطاء سلسة. لا إخفاقات صامتة.
- نقل التوثيق عبر الملفات الثنائية — مطابقة بصمة الدوال عبر SHA-256 تنشر التوثيق تلقائيًا عبر إصدارات الملف الثنائي. وثّق مرة واحدة، وطبّق في كل مكان.
- تكامل كامل مع Ghidra Server — الاتصال بخوادم Ghidra المشتركة، وإدارة المستودعات، والتحكم في الإصدارات، وسير عمل السحب/الإيداع، والتعاون متعدد المستخدمين.
- أوضاع Headless و GUI — شغّله مع واجهة Ghidra الرسومية أو بدونها. جاهز لـ Docker لخطوط CI/CD والتحليل الآلي على نطاق واسع.
- رأي مُصمَّم بعناية — ينقل الإصدار v5.0 اصطلاحات التسمية، وأمان الأنواع، ومعايير التوثيق إلى طبقة الأدوات. ينتج وكلاء الذكاء الاصطناعي والمهندسون البشريون مخرجات متسقة دون أدلة أنماط في كل مطالبة.
فرض الاصطلاحات
لقد مررت بذلك من قبل: بعد ستة أشهر من بدء مشروع، تجد ProcessItem وprocess_items وhandleItem وItemProc في نفس قاعدة الكود — أربع دوال تفعل الشيء نفسه، سمّاها أربع جلسات أو مهندسون مختلفون دون عقد مشترك. إصلاح ذلك يستغرق وقتًا أطول مما ينبغي، وستتكرر المشكلة مرة أخرى.
ينقل الإصدار v5.0 الاصطلاحات من "أشياء يجب تذكّرها" إلى طبقة الأدوات، حيث يمكن فرضها فعليًا.
| المستوى | السلوك | مثال |
|---|---|---|
| إصلاح تلقائي | يُطبَّق بصمت | حقل count على uint32 → تُضاف له البادئة dwCount تلقائيًا عند الحفظ |
| تحذير | يمر التغيير، ويُعاد تحذير | processData → "يجب أن يكون الاسم PascalCase مع فعل: ProcessData" |
| رفض | يُحظر التغيير مع توضيح | تغيير النوع undefined → undefined → "رُفض التغيير عديم الأثر، النوع لم يتغير" |
بالنسبة لوكلاء الذكاء الاصطناعي، يعني هذا مخرجات متسقة في كل جلسة، وكل نموذج، وكل تشغيل — دون لصق دليل أنماط في كل مطالبة. الأداة تعرف القواعد؛ وعلى النموذج فقط اتخاذ القرار.
بالنسبة للفرق، يلغي هذا الفئة بأكملها من تعليقات المراجعة التي تقول "هذا ليس اصطلاح التسمية لدينا." يبقى تحكيم الاصطلاحات في الأداة، لا في مراجعة الكود.
بالنسبة للعمل الفردي على نطاق واسع، يمنحك analyze_function_completeness درجة من 0 إلى 100% تقيس بصدق: تُغتفَر الخصومات البنيوية (آثار المُصرِّف غير القابلة للإصلاح) في درجتك الفعلية، ويمنع القياس اللوغاريتمي فئة سيئة واحدة من طمس كل شيء آخر، ويعني توثيق اللوحة متعدد المستويات أنك تعرف بالضبط ما المفقود ولماذا.
🌟 الميزات
تكامل MCP الأساسي
- توافق كامل مع MCP — تنفيذ كامل لـ Model Context Protocol
- 253 أداة MCP — واجهة API شاملة تغطي كل جانب من جوانب تحليل الملفات الثنائية
- موثوقية بمستوى الإنتاج — معاملات ذرّية، وعمليات دفعية، ومهلات زمنية قابلة للتهيئة
- تحليل في الوقت الفعلي — تكامل مباشر مع محرك تحليل Ghidra
ملاحظة التوافق: أسماء أدوات MCP مُوحَّدة لـ GitHub Copilot CLI والتحقق من CAPI. تستخدم أسماء الأدوات المكشوفة أحرفًا صغيرة وأرقامًا وشرطات سفلية وشرطات فقط؛ وتُعلَن مسارات HTTP المتداخلة مثل
/debugger/statusبأسماء مثلdebugger_status_2عند الحاجة لتجنّب التعارض مع أدوات الجسر الثابتة.
قدرات تحليل الملفات الثنائية
- تحليل الدوال — فك التصريف، ومخططات الاستدعاء، والإحالات المتبادلة، وتقييم الاكتمال
- تحليل تدفق البيانات — نشر القيم عبر PCode-graph (أمامي / خلفي) من أي متغير أو سجل
- اكتشاف بُنى البيانات — إنشاء struct/union/enum مع تحليل الحقول واقتراحات التسمية
- استخراج النصوص — بحث بتعبير نمطي، وتصفية الجودة، واكتشاف الدوال المرتبطة بالنصوص
- تحليل الاستيراد/التصدير — جداول الرموز، والمواقع الخارجية، وحل الاستيراد الترتيبي
- فحص الذاكرة والبيانات — قراءات ذاكرة خام، وبحث عن أنماط البايتات، واكتشاف حدود المصفوفات
- التوثيق عبر الملفات الثنائية — مطابقة بصمة الدوال ونشر التوثيق عبر الإصدارات
التحليل الديناميكي (v5.4.0)
- محاكاة P-code — شغّل أي دالة بمعزل عبر
EmulatorHelperفي Ghidra؛ حل بصمات API بالقوة الغاشمة في أجزاء من الثانية - تكامل المُنقِّح المباشر — 17 نقطة نهاية Java + 22 أداة جسر Python عبر إطار TraceRmi في Ghidra (dbgeng على Windows PE، وgdb/lldb فيما عدا ذلك): الإرفاق، والتنقل خطوة بخطوة، ونقاط التوقف، والسجلات، وقراءات الذاكرة، وتتبع الدوال دون كسر التنفيذ، وترجمة العناوين بين الساكن والديناميكي مع مراعاة ASLR