
MCP Server لـ Ghidra

ghidraMCP هو خادم بروتوكول سياق النموذج (MCP) يسمح لنماذج اللغة الكبيرة (LLMs) بإجراء هندسة عكسية للتطبيقات بشكل مستقل. يعرض العديد من الأدوات من وظائف Ghidra الأساسية لعملاء MCP.
https://github.com/user-attachments/assets/36080514-f227-44bd-af84-78e29ee1d7f9
خادم MCP + إضافة Ghidra
أولاً، قم بتنزيل أحدث إصدار من هذا المستودع. يحتوي على إضافة Ghidra وعميل MCP بلغة Python. ثم يمكنك استيراد الإضافة مباشرة إلى Ghidra.
File -> Install Extensions+GhidraMCP-1-2.zip (أو الإصدار الذي اخترته) من الإصدار الذي تم تنزيلهFile -> Configure -> DeveloperEdit -> Tool Options -> GhidraMCP HTTP Serverدليل التثبيت بالفيديو:
https://github.com/user-attachments/assets/75f0c176-6da1-48dc-ad96-c182eb4648c3
نظرياً، يجب أن يعمل أي عميل MCP مع ghidraMCP. فيما يلي ثلاثة أمثلة.
لإعداد Claude Desktop كعميل MCP لـ Ghidra، اذهب إلى Claude -> Settings -> Developer -> Edit Config -> claude_desktop_config.json وأضف ما يلي:
{
"mcpServers": {
"ghidra": {
"command": "python",
"args": [
"/ABSOLUTE_PATH_TO/bridge_mcp_ghidra.py",
"--ghidra-server",
"http://127.0.0.1:8080/"
]
}
}
}
بدلاً من ذلك، قم بتعديل هذا الملف مباشرة:
/Users/YOUR_USER/Library/Application Support/Claude/claude_desktop_config.json
عنوان IP والمنفذ الخاص بالخادم قابلان للتكوين ويجب ضبطهما للإشارة إلى مثيل Ghidra المستهدف. إذا لم يتم ضبطهما، فسيتم تعيينهما افتراضياً إلى localhost:8080.
لاستخدام GhidraMCP مع Cline، يتطلب هذا تشغيل خادم MCP يدوياً أيضاً. قم أولاً بتشغيل الأمر التالي:
python bridge_mcp_ghidra.py --transport sse --mcp-host 127.0.0.1 --mcp-port 8081 --ghidra-server http://127.0.0.1:8080/
الوسيطة الوحيدة الإجبارية هي النقل. إذا لم يتم تحديد جميع الوسائط الأخرى، فسيتم تعيينها افتراضياً إلى ما سبق. بمجرد تشغيل خادم MCP، افتح Cline واختر MCP Servers في الأعلى.

ثم اختر Remote Servers وأضف ما يلي، مع التأكد من أن الرابط يطابق مضيف MCP والمنفذ:
http://127.0.0.1:8081/sseعميل MCP آخر يدعم نماذج متعددة في الخلفية هو 5ire. لإعداد GhidraMCP، افتح 5ire واذهب إلى Tools -> New وضبط الإعدادات التالية:
python /ABSOLUTE_PATH_TO/bridge_mcp_ghidra.pylib/ في هذا المشروع:Ghidra/Features/Base/lib/Base.jarGhidra/Features/Decompiler/lib/Decompiler.jarGhidra/Framework/Docking/lib/Docking.jarGhidra/Framework/Generic/lib/Generic.jarGhidra/Framework/Project/lib/Project.jarGhidra/Framework/SoftwareModeling/lib/SoftwareModeling.jarGhidra/Framework/Utility/lib/Utility.jarGhidra/Framework/Gui/lib/Gui.jarmvn clean package assembly:single
الملف المضغوط الناتج يتضمن إضافة Ghidra المبنية ومواردها. هذه الملفات مطلوبة لكي يتعرف Ghidra على الإضافة الجديدة.