
OGhidra, Ollama के माध्यम से Large Language Models (LLMs) को Ghidra रिवर्स इंजीनियरिंग प्लेटफ़ॉर्म से जोड़ता है, जो प्राकृतिक भाषा के माध्यम से AI-संचालित बाइनरी विश्लेषण को सक्षम बनाता है। वार्तालापीय प्रश्नों का उपयोग करके Ghidra के साथ बातचीत करें और जटिल रिवर्स इंजीनियरिंग वर्कफ़्लो को स्वचालित करें।
क्लॉड-प्रेरित ऑर्केस्ट्रेटर का उपयोग करने वाले संस्करण के लिए, देखें https://github.com/llnl/OGhidra/tree/orchestrator
OGhidra बड़े भाषा मॉडलों को Ghidra के रिवर्स इंजीनियरिंग प्लेटफॉर्म से जोड़ता है, जिससे प्राकृतिक भाषा के माध्यम से AI-संचालित बाइनरी विश्लेषण संभव होता है। बातचीत के माध्यम से बाइनरी का विश्लेषण करें, जटिल वर्कफ़्लो को स्वचालित करें, और स्थानीय AI मॉडलों के साथ पूर्ण गोपनीयता बनाए रखें।
YouTube सेटअप ट्यूटोरियल
OGhidra Ghidra को AI क्षमताओं के साथ बढ़ाता है, जिससे आप यह कर सकते हैं:
graph TD
A[User Query] --> B[Planning Phase]
B --> C{Execution Phase}
C -- Tool Calls --> D[Ghidra/LLM]
D --> C
C --> E[Review Phase]
E -- Agentic Loop --> B
E --> F[Final Response]
style E fill:#f9f,stroke:#333,stroke-width:2px
style B fill:#bbf,stroke:#333,stroke-width:2pxएजेंटिक लूप: OGhidra एक अनुकूली योजना प्रणाली का उपयोग करता है। प्रत्येक निष्पादन चक्र के बाद, परिणामों की समीक्षा की जाती है और AI अंतिम प्रतिक्रिया देने से पहले अधिक जानकारी एकत्र करने या अपने विश्लेषण को परिष्कृत करने का निर्णय ले सकता है।
python --versionjava -version# रिपॉजिटरी क्लोन करें
git clone https://github.com/LLNL/OGhidra.git
cd OGhidra
# निर्भरताएँ स्थापित करें (एक चुनें)
uv sync # UV का उपयोग करके (अनुशंसित)
pip install -r requirements.txt # pip का उपयोग करके
# वातावरण कॉन्फ़िगर करें
cp .env.example .env
# अपनी सेटिंग्स के साथ .env संपादित करें
नीचे दिए गए OGhidraMCP प्लगइन बिल्ड चरण Ghidra 12.0.3 (अनुशंसित) को लक्षित करते हैं। YouTube वीडियो ट्यूटोरियल भी है: https://www.youtube.com/watch?v=hBD92FUgR0Y
एक डेवलपर के रूप में, आपको इसे Ghidra में स्थापित करने से पहले GhidraMCP एक्सटेंशन बनाना होगा:
पूर्वापेक्षाएँ:
विकल्प 1: स्वचालित बिल्ड स्क्रिप्ट का उपयोग करके:
विंडोज़:
# अपने Ghidra इंस्टॉलेशन का पथ सेट करें (यदि सेट नहीं किया गया है तो Ghidra की अंतिम चलाई गई प्रतिलिपि खोजने का प्रयास करेगा)
set GHIDRA_INSTALL_DIR=C:\path\to\ghidra_12.0.3_PUBLIC
# बिल्ड स्क्रिप्ट चलाएं
build_ghidra_plugin.bat
Unix/Linux/Mac:
# अपने Ghidra इंस्टॉलेशन का पथ सेट करें (यदि सेट नहीं किया गया है तो Ghidra की अंतिम चलाई गई प्रतिलिपि खोजने का प्रयास करेगा)
export GHIDRA_INSTALL_DIR=/path/to/ghidra_12.0.3_PUBLIC
# बिल्ड स्क्रिप्ट चलाएं (यदि आवश्यक हो तो पहले इसे निष्पादन योग्य बनाएं)
chmod +x build_ghidra_plugin.sh
./build_ghidra_plugin.sh
विकल्प 2: मैन्युअल बिल्ड प्रक्रिया:
अपने Ghidra इंस्टॉल पथ के साथ OGhidraMCP/gradle.properties बनाएं/अपडेट करें:
GHIDRA_INSTALL_DIR=/absolute/path/to/ghidra_12.0.3_PUBLIC
Unix/Linux/macOS पर:
cd OGhidraMCP
$GHIDRA_INSTALL_DIR/support/gradle/gradlew buildExtension --info
विंडोज़ पर:
cd OGhidraMCP
"%GHIDRA_INSTALL_DIR%\support\gradle\gradlew.bat" buildExtension --info
बनाए गए एक्सटेंशन का पता लगाएं:
OGhidraMCP/dist/ में बनाई गई हैghidra_12.0.3_PUBLIC_YYYYMMDD_OGhidraMCP.zipएक बार जब आप सफलतापूर्वक एक्सटेंशन बना लें:
Ghidra में स्थापित करें:
OGhidraMCP/dist/ निर्देशिका पर ब्राउज़ करेंghidra_12.0.3_PUBLIC_YYYYMMDD_OGhidraMCP.zip)प्लगइन सक्षम करें:
OGhidraMCP प्लगइन सक्षम करेंhttp://localhost:8080/methods पर प्रारंभ होगाआपके पास कोड ब्राउज़र खुला होना चाहिए
# Ollama के लिए (स्थानीय मॉडल)
ollama pull gemma3:27b # अच्छा संतुलन (20GB RAM)
ollama pull nomic-embed-text # RAG के लिए एम्बेडिंग मॉडल
# वैकल्पिक मॉडल
ollama pull gpt-oss:120b # उच्च गुणवत्ता (80GB RAM)
ollama pull devstral-2:123b # उच्च गुणवत्ता (80GB RAM)
ollama pull devstral-2:123b-cloud # क्लाउड मॉडल
# GUI मोड (अनुशंसित)
uv run main.py --ui
# इंटरैक्टिव CLI
uv run main.py --interactive
# इंटरैक्टिव CLI में, कनेक्शन का परीक्षण करें
health
यदि आपने GUI मोड लॉन्च किया है, तो इसका उपयोग करें:
curl http://localhost:8080/methods
अपने AI प्रदाता को कॉन्फ़िगर करने के लिए .env संपादित करें:
LLM_PROVIDER=ollama
OLLAMA_BASE_URL=http://localhost:11434/
OLLAMA_MODEL=gemma3:27b
OLLAMA_EMBEDDING_MODEL=nomic-embed-text
LLM_PROVIDER=external
EXTERNAL_PROVIDER=google
EXTERNAL_API_KEY=your-api-key-here
EXTERNAL_MODEL=gemini-3.1-flash-lite-preview
EXTERNAL_EMBEDDING_MODEL=gemini-embedding-001
LLM_PROVIDER=custom_api
CUSTOM_API_URL=https://api.example.com/v1/chat/completions
CUSTOM_API_KEY=your-api-key-here
CUSTOM_API_MODEL=your-model-name
CUSTOM_API_EMBEDDING_MODEL=your-embedding-model
अपने मॉडल के संदर्भ विंडो के अनुसार समायोजित करें:
# टोकन में संदर्भ बजट (अपने मॉडल की सीमा के अनुसार समायोजित करें)
CONTEXT_BUDGET=100000 # मध्यम आकार के मॉडलों के लिए 100K टोकन
# फ्रंटियर मॉडलों के लिए 200K+
# निष्पादन सेटिंग्स
MAX_EXECUTION_STEPS=5 # प्रति योजना चक्र कदम
MAX_AGENTIC_CYCLES=3 # कितने योजना-निष्पादन-समीक्षा लूप
AGENTIC_LOOP_ENABLED=true # अनुकूली पुनर्नियोजन सक्षम करें
एक क्लिक से सामान्य रिवर्स इंजीनियरिंग कार्यों तक पहुंच:
| उपकरण | विवरण |
|---|---|
| वर्तमान फ़ंक्शन का विश्लेषण करें | चयनित फ़ंक्शन के व्यवहार में गहराई से जाएं |
| वर्तमान फ़ंक्शन का नाम बदलें | AI विश्लेषण के आधार पर सार्थक नाम सुझाता है |
| सभी फ़ंक्शनों का नाम बदलें | स्मार्ट/पूर्ण/केवल-नाम-बदलें विकल्पों के साथ बल्क नाम बदलें |
| आयातों का विश्लेषण करें | लाइब्रेरी और बाहरी निर्भरताओं की पहचान करें |
| स्ट्रिंग्स का विश्लेषण करें | URL, क्रेडेंशियल, कॉन्फ़िगरेशन डेटा खोजें |
| रिपोर्ट तैयार करें | व्यापक सुरक्षा मूल्यांकन |
विशेष विश्लेषण लक्ष्य सेट करें:
# GUI में: "Task Mode" ड्रॉपडाउन का उपयोग करें
# CLI में: set task_mode <mode>
task_mode malware # पैटर्न पहचान के साथ मैलवेयर विश्लेषण
task_mode vuln # कमज़ोरी अनुसंधान फोकस
task_mode general # सामान्य रिवर्स इंजीनियरिंग
12+ मैलवेयर पैटर्न का स्वचालित पता लगाना:
पैटर्न MITRE ATT&CK मैपिंग के साथ AI के संदर्भ में स्वचालित अलर्ट ट्रिगर करते हैं।
बाइनरी विश्लेषण से समृद्ध, पूछताछ योग्य ज्ञान बनाएं:
# AI सारांश के साथ सभी फ़ंक्शनों को गिनें
# इनमें से चुनें:
- केवल नाम बदलें: केवल सामान्य फ़ंक्शन नामों को संसाधित करें
- स्मार्ट गणना: सुरक्षा-प्रासंगिक फ़ंक्शनों पर ध्यान दें
- पूर्ण गणना: बाइनरी में प्रत्येक फ़ंक्शन का विश्लेषण करें
विशेषताएं:
विश्लेषण सत्रों को सहेजें और पुनर्स्थापित करें:
# प्रगति सहेजें
File → Save Session
# पिछला कार्य लोड करें
File → Load Session
# बल्क संचालन के बाद ऑटो-सेव
# सत्र में शामिल हैं:
- सारांश के साथ विश्लेषित फ़ंक्शन
- सिमैंटिक खोज के लिए RAG वेक्टर
- प्रदर्शन आँकड़े
- UI स्थिति
OGhidra दो बैकएंड प्रकारों का समर्थन करता है:
बैकएंड चुनने के लिए निम्नलिखित कमांड-लाइन विकल्प का उपयोग करें:
--ghidra-backend={http,pyghidra}
| बैकएंड विकल्प | विवरण |
|---|---|
http | GhidraMCP बैकएंड का उपयोग करता है |
pyghidra | PyGhidra बैकएंड का उपयोग करता है |
OGhidra लॉन्च करते समय एक Ghidra प्रोजेक्ट फ़ाइल (.gpr) निर्दिष्ट करें:
--pyghidra-project=/path/to/project.gpr
OGhidra लॉन्च करने के लिए PyGhidra को एक मान्य Ghidra प्रोजेक्ट की आवश्यकता होती है।
निर्दिष्ट करें कि Ghidra प्रोजेक्ट के अंदर किस बाइनरी का विश्लेषण किया जाना चाहिए:
--pyghidra-program=<program_name>
Ghidra प्रोजेक्ट में प्रोग्राम चुनने के लिए उदाहरण कॉल:
uv run main.py --ui --ghidra-backend=pyghidra --pyghidra-project=/path/to/project.gpr --pyghidra-program=<program_name>
आवश्यकताएँ:
आप सीधे बाइनरी पथ भी प्रदान कर सकते हैं:
--pyghidra-binary=/path/to/binary
जब इस विकल्प का उपयोग किया जाता है, तो PyGhidra स्वचालित रूप से:
.gpr) बनाता हैसीधे बाइनरी लॉन्च करने के लिए उदाहरण कॉल:
uv run main.py --ui --ghidra-backend=pyghidra --pyghidra-binary=/path/to/binary
uv run main.py --ui# GUI में: "Generate Report" बटन पर क्लिक करें
# रिपोर्ट में शामिल हैं:
- कार्यकारी सारांश
- फ़ंक्शन इन्वेंटरी (व्यवहार के साथ नामित फ़ंक्शन)
- सुरक्षा विश्लेषण (उच्च-जोखिम फ़ंक्शन, पैटर्न)
- आयात विश्लेषण
- स्ट्रिंग विश्लेषण
- अनुशंसाएँ
OGhidra विश्लेषित फ़ंक्शनों पर सिमैंटिक खोज के लिए वेक्टर एम्बेडिंग का उपयोग करता है:
# .env में सक्षम करें
RESULT_CACHE_ENABLED=true
TIERED_CONTEXT_ENABLED=true
लाभ:
स्तरीय संदर्भ संपीड़न प्रासंगिक जानकारी रखता है:
CURRENT_LOOP_MAX_CHARS=2000 # हालिया: पूर्ण विवरण
PREV_LOOP_MAX_CHARS=400 # पिछला: सारांश
OLDER_LOOP_MAX_CHARS=100 # पुराना: केवल संदर्भ
डिबगिंग के लिए सभी AI इंटरैक्शन को ट्रैक करें:
LLM_LOGGING_ENABLED=true
LLM_LOG_FILE=logs/llm_interactions.log
LLM_LOG_FORMAT=json
# सत्यापित करें कि प्लगइन लोड है
# codebrowser खोलें!
# जांचें कि सर्वर चल रहा है
curl http://localhost:8080/methods
# सत्यापित करें कि Ollama चल रहा है
ollama list
# कनेक्टिविटी जांचें
curl http://localhost:11434/api/tags
# Ollama सेवा पुनरारंभ करें
ollama serve
# संदर्भ बजट कम करें
CONTEXT_BUDGET=50000
# संघनन सक्षम करें
COMPACTION_ENABLED=true
COMPACTION_THRESHOLD=0.75
gemma3:9b पर स्विच करेंmax_workers=2 सेट करेंRESULT_CACHE_ENABLED=falseCUSTOM_API_REQUEST_DELAY=2.0┌─────────────────────────────────────────────────────────────┐
│ OGhidra UI │
│ (GUI / Interactive CLI) │
└────────────────────────┬────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ Bridge (src/bridge.py) │
│ ┌────────────────────────────────────────────────────────┐ │
│ │ • Agentic Loop: Plan → Execute → Review → Replan │ │
│ │ • Tool Router: Ghidra client, LLM client, CAG manager │ │
│ │ • Context Manager: Budget allocation, compression │ │
│ └────────────────────────────────────────────────────────┘ │
└───────────┬────────────────────────┬────────────────────────┘
│ │
▼ ▼
┌───────────────────────┐ ┌─────────────────────────┐
│ Ghidra Client │ │ LLM Clients │
│ • GhidraMCP Plugin │ │ • Ollama (local) │
│ • Binary operations │ │ • External APIs │
│ • Decompilation │ │ • Custom endpoints │
└───────────────────────┘ └─────────────────────────┘
│ │
└────────────┬───────────┘
▼
┌─────────────────────────────────────────────────────────────┐
│ CAG Manager (Knowledge System) │
│ ┌────────────────────────────────────────────────────────┐ │
│ │ • Vector Store: Semantic search over functions │ │
│ │ • Pattern Detector: 12+ malware techniques │ │
│ │ • Metadata Extractor: Structured function analysis │ │
│ │ • Session Store: Persistent analysis state │ │
│ └────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
हम योगदान का स्वागत करते हैं! रुचि के क्षेत्र:
सामुदायिक दिशानिर्देशों के लिए CODE_OF_CONDUCT.md देखें।
यदि आप अपने शोध में OGhidra का उपयोग करते हैं, तो कृपया उद्धृत करें:
@software{oghidra2025,
title = {OGhidra: AI-Powered Reverse Engineering with Ghidra},
author = {Enoch Wang},
year = {2025},
url = {https://github.com/LLNL/OGhidra}
}
OGhidra उत्कृष्ट ओपन-सोर्स परियोजनाओं पर आधारित है:
OGhidra वाणिज्यिक लाइसेंस विकल्प के साथ BSD 3-क्लॉज़ लाइसेंस की शर्तों के तहत वितरित किया जाता है।
LLNL-CODE-2013290