
خادم MCP يربط بين الهندسة العكسية لـ Ghidra وأدوات الذكاء الاصطناعي: 256 أداة لفك التجميع، ومحاكاة P-code، والتصحيح المباشر، وتحليل تدفق البيانات، والعمليات الدفعية، وفرض الاتفاقيات عبر الوضع بدون واجهة رسومية ووضع واجهة المستخدم الرسومية.
إذا وجدت هذا مفيدًا، فيرجى ⭐ إضافة نجمة إلى المستودع — فهذا يساعد الآخرين على اكتشافه!
إذا وفّر عليك Ghidra MCP وقتًا، ففكّر في رعاية المشروع. الدعم لمرة واحدة والدعم المتكرر يساعدان في تمويل تحديثات التوافق، وتقوية الإنتاج، والتوثيق، والأدوات الجديدة.
خادم Model Context Protocol (MCP) جاهز للإنتاج يربط قدرات الهندسة العكسية القوية في Ghidra بأدوات الذكاء الاصطناعي الحديثة وأطر الأتمتة. 253 أداة MCP، وسير عمل ذكاء اصطناعي مُجرَّب ميدانيًا، وأكثر تكامل Ghidra-MCP شمولًا متاح — بما في ذلك الآن محاكاة P-code، وتكامل المُنقِّح المباشر، وتحليل تدفق البيانات عبر PCode-graph.
معظم تطبيقات Ghidra MCP تمنحك حفنة من الأدوات للقراءة فقط وتكتفي بذلك. هذا المشروع مختلف — فقد بناه مهندس عكسي يستخدمه يوميًا على ملفات ثنائية حقيقية، وليس كعرض توضيحي.
لقد مررت بذلك من قبل: بعد ستة أشهر من بدء مشروع، تجد ProcessItem وprocess_items وhandleItem وItemProc في نفس قاعدة الكود — أربع دوال تفعل الشيء نفسه، سمّاها أربع جلسات أو مهندسون مختلفون دون عقد مشترك. إصلاح ذلك يستغرق وقتًا أطول مما ينبغي، وستتكرر المشكلة مرة أخرى.
ينقل الإصدار v5.0 الاصطلاحات من "أشياء يجب تذكّرها" إلى طبقة الأدوات، حيث يمكن فرضها فعليًا.
| المستوى | السلوك | مثال |
|---|---|---|
| إصلاح تلقائي | يُطبَّق بصمت | حقل count على uint32 → تُضاف له البادئة dwCount تلقائيًا عند الحفظ |
| تحذير | يمر التغيير، ويُعاد تحذير | processData → "يجب أن يكون الاسم PascalCase مع فعل: ProcessData" |
| رفض | يُحظر التغيير مع توضيح | تغيير النوع undefined → undefined → "رُفض التغيير عديم الأثر، النوع لم يتغير" |
بالنسبة لوكلاء الذكاء الاصطناعي، يعني هذا مخرجات متسقة في كل جلسة، وكل نموذج، وكل تشغيل — دون لصق دليل أنماط في كل مطالبة. الأداة تعرف القواعد؛ وعلى النموذج فقط اتخاذ القرار.
بالنسبة للفرق، يلغي هذا الفئة بأكملها من تعليقات المراجعة التي تقول "هذا ليس اصطلاح التسمية لدينا." يبقى تحكيم الاصطلاحات في الأداة، لا في مراجعة الكود.
بالنسبة للعمل الفردي على نطاق واسع، يمنحك analyze_function_completeness درجة من 0 إلى 100% تقيس بصدق: تُغتفَر الخصومات البنيوية (آثار المُصرِّف غير القابلة للإصلاح) في درجتك الفعلية، ويمنع القياس اللوغاريتمي فئة سيئة واحدة من طمس كل شيء آخر، ويعني توثيق اللوحة متعدد المستويات أنك تعرف بالضبط ما المفقود ولماذا.
ملاحظة التوافق: أسماء أدوات MCP مُوحَّدة لـ GitHub Copilot CLI والتحقق من CAPI. تستخدم أسماء الأدوات المكشوفة أحرفًا صغيرة وأرقامًا وشرطات سفلية وشرطات فقط؛ وتُعلَن مسارات HTTP المتداخلة مثل
/debugger/statusبأسماء مثلdebugger_status_2عند الحاجة لتجنّب التعارض مع أدوات الجسر الثابتة.
EmulatorHelper في Ghidra؛ حل بصمات API بالقوة الغاشمة في أجزاء من الثانية