
Ghidra के लिए MCP Server

ghidraMCP एक Model Context Protocol सर्वर है जो LLMs को स्वायत्त रूप से अनुप्रयोगों का रिवर्स इंजीनियरिंग करने की अनुमति देता है। यह MCP क्लाइंट्स के लिए Ghidra की मुख्य कार्यक्षमता से कई टूल्स को उजागर करता है।
https://github.com/user-attachments/assets/36080514-f227-44bd-af84-78e29ee1d7f9
MCP सर्वर + Ghidra प्लगइन
pip install git+https://github.com/LaurieWired/GhidraMCP, फिर नीचे दिए गए कमांड के रूप में ghidra-mcp का उपयोग करें)सबसे पहले, इस रिपॉजिटरी से नवीनतम रिलीज़ डाउनलोड करें। इसमें Ghidra प्लगइन और Python MCP क्लाइंट शामिल है। फिर, आप सीधे प्लगइन को Ghidra में इम्पोर्ट कर सकते हैं।
File -> Install Extensions चुनें+ बटन पर क्लिक करेंghidra_12.1.4_PUBLIC_<date>_GhidraMCP.zip चुनेंFile -> Configure -> Developer में सक्षम हैEdit -> Tool Options -> GhidraMCP HTTP Server के साथ पोर्ट कॉन्फ़िगर करेंवीडियो इंस्टॉलेशन गाइड:
https://github.com/user-attachments/assets/75f0c176-6da1-48dc-ad96-c182eb4648c3
सैद्धांतिक रूप से, कोई भी MCP क्लाइंट ghidraMCP के साथ काम करना चाहिए। अधिकांश क्लाइंट्स निम्नलिखित जैसा JSON कॉन्फ़िग स्वीकार करते हैं:
{
"mcpServers": {
"ghidra": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/LaurieWired/GhidraMCP",
"ghidra-mcp",
"--ghidra-server",
"http://127.0.0.1:8080/"
]
}
}
}
सर्वर IP और पोर्ट कॉन्फ़िगर करने योग्य हैं और इन्हें लक्ष्य Ghidra इंस्टेंस की ओर इंगित करने के लिए सेट किया जाना चाहिए। यदि सेट नहीं किया गया है, तो दोनों डिफ़ॉल्ट रूप से localhost:8080 पर सेट होंगे।
उन क्लाइंट्स के लिए जो कमांड लॉन्च करने के बजाय URL से कनेक्ट होते हैं, पहले स्वयं MCP सर्वर चलाएँ:
uvx --from git+https://github.com/LaurieWired/GhidraMCP ghidra-mcp --transport streamable-http --mcp-host 127.0.0.1 --mcp-port 8081 --ghidra-server http://127.0.0.1:8080/
फिर अपने क्लाइंट में http://127.0.0.1:8081/mcp को रिमोट सर्वर के रूप में जोड़ें।
Command Palette से MCP: Add Server चलाएँ, या अपने वर्कस्पेस में .vscode/mcp.json में निम्नलिखित जोड़ें:
{
"servers": {
"ghidra": {
"type": "stdio",
"command": "uvx",
"args": [
"--from",
"git+https://github.com/LaurieWired/GhidraMCP",
"ghidra-mcp",
"--ghidra-server",
"http://127.0.0.1:8080/"
]
}
}
}
निम्नलिखित कमांड चलाएँ:
claude mcp add ghidra -- uvx --from git+https://github.com/LaurieWired/GhidraMCP ghidra-mcp --ghidra-server http://127.0.0.1:8080/
ghidra-mcp PyGhidra का उपयोग करके स्वयं एक बाइनरी को इम्पोर्ट और विश्लेषण भी कर सकता है, बिना कोई Ghidra GUI चलाए। इसके लिए Python 3.10–3.13, Ghidra में इंस्टॉल किया गया GhidraMCP एक्सटेंशन (या --extension-jar /path/to/GhidraMCP.jar), और आपकी Ghidra 12.1.4 डायरेक्टरी पर सेट किया गया GHIDRA_INSTALL_DIR आवश्यक है:
uvx --python 3.13 --from "ghidra-mcp[headless] @ git+https://github.com/LaurieWired/GhidraMCP" ghidra-mcp --headless --binary /path/to/target
ऊपर दिए गए किसी भी क्लाइंट कॉन्फ़िग में समान कमांड और आर्गुमेंट्स का उपयोग करें। रन्स के बीच Ghidra प्रोजेक्ट (और परिवर्तनों को सहेजने) को बनाए रखने के लिए --project DIR जोड़ें। macOS पर, Ghidra डायरेक्टरी से support/gradle/gradlew buildNatives के साथ Ghidra के डीकंपाइलर को एक बार बिल्ड करें।
GHIDRA_INSTALL_DIR सेट करेंcd extension && $GHIDRA_INSTALL_DIR/support/gradle/gradlew buildExtension
extension/dist/ में उत्पन्न zip फ़ाइल में बिल्ट Ghidra प्लगइन और उसके संसाधन शामिल हैं। Ghidra को नए एक्सटेंशन को पहचानने के लिए ये फ़ाइलें आवश्यक हैं।
Python MCP सर्वर को चेकआउट से uv run ghidra-mcp के साथ चलाया जा सकता है, और uv run pytest के साथ परीक्षण किया जा सकता है।