
OpenAI(ChatGPT) के साथ IDA PRO HexRays डीकंपाइलर का उपयोग करके बाइनरी में संभावित कमजोरियों का पता लगाएं
बाइनरी में भेद्यताएँ खोजने में मदद करने के लिए एक IDA PRO प्लगइन।
बाइनरी में संभावित भेद्यताएँ खोजने के लिए OpenAI(ChatGPT) के साथ IDA PRO HexRays डीकंपाइलर का उपयोग करें।
अस्वीकरण: AI का उपयोग करके बाइनरी भेद्यताएँ खोजने का प्रयास करते समय प्राप्त उत्तर गलत-सकारात्मक (false positive) हो सकते हैं, हालाँकि यह कई CTF में काम कर चुका है जिन पर मैंने काम किया है (सरल/मध्यम ... कुछ कठिन)।
Python स्क्रिप्ट को IDA Pro प्लगइन स्थान पर रखें।
डीकंपाइल किए गए कोड पर राइट-क्लिक करें, "Find possible vulnerability in function" चुनें।




BinAIVulHunter एक उन्नत IDA Pro प्लगइन है जो डीकंपाइल किए गए फ़ंक्शंस का बुद्धिमान भेद्यता विश्लेषण, कोड व्याख्या और सुरक्षा मूल्यांकन करने के लिए कई AI प्रदाताओं (OpenAI GPT, Google Gemini, और Ollama) का उपयोग करता है।
प्लगइन डाउनलोड करें:
# Save BinAIVulHunter.py to your IDA Pro plugins directory
# Typically: C:\Program Files\IDA Pro X.X\plugins\
मूल निर्भरताएँ स्थापित करें:
pip install psutil
AI प्रदाता लाइब्रेरी स्थापित करें (एक या अधिक चुनें):
# For OpenAI
pip install openai
# For Google Gemini
pip install google-generativeai
# For Ollama (local AI)
pip install requests
प्लगइन लोड करने के लिए IDA Pro को पुनः आरंभ करें
API कुंजी प्राप्त करें:
पर्यावरण चर (Environment Variable) सेट करें:
# Windows Command Prompt
set OPENAI_API_KEY=sk-your-openai-key-here
# PowerShell
$env:OPENAI_API_KEY="sk-your-openai-key-here"
# Linux/Mac
export OPENAI_API_KEY="sk-your-openai-key-here"
IDA Pro को पुनः आरंभ करें
API कुंजी प्राप्त करें:
पर्यावरण चर सेट करें:
# Windows Command Prompt
set GEMINI_API_KEY=your-gemini-key-here
# PowerShell
$env:GEMINI_API_KEY="your-gemini-key-here"
# Linux/Mac
export GEMINI_API_KEY="your-gemini-key-here"
IDA Pro को पुनः आरंभ करें
Ollama स्थापित करें:
# Linux
curl -fsSL https://ollama.ai/install.sh | sh
# macOS
brew install ollama
Ollama सेवा प्रारंभ करें:
ollama serve
AI मॉडल प्राप्त करें (Pull):
# For general code analysis
ollama pull llama2
# For coding tasks (recommended)
ollama pull codellama
# Other specialized models
ollama pull mistral
ollama pull deepseek-coder
वैकल्पिक पर्यावरण चर:
# Custom Ollama server (if not localhost:11434)
set OLLAMA_BASE_URL=http://your-server:11434
# Set default model
set OLLAMA_MODEL=codellama
अपना पसंदीदा AI प्रदाता सेट करें:
# Use OpenAI (default)
set VULCHAT_PROVIDER=openai
# Use Google Gemini
set VULCHAT_PROVIDER=gemini
# Use Ollama (local)
set VULCHAT_PROVIDER=ollama
Edit → VulChatएक्सेस करने के लिए डीकंपाइलर दृश्य में राइट-क्लिक करें:
इसके माध्यम से एक्सेस करें: Edit → VulChat → Control Panel या Ctrl+Alt+P:
स्वचालित विश्लेषण और CI/CD एकीकरण के लिए:
# Scan all functions for vulnerabilities
ida64.exe -A -S"BinAIVulHunter.py --scan-all --output results.json" binary.exe
# Decompile all functions with caching
ida64.exe -A -S"BinAIVulHunter.py --decompile-all --cache-dir ./cache" binary.exe
# Custom batch settings
ida64.exe -A -S"BinAIVulHunter.py --scan-all --batch-size 5 --function-pause 3 --batch-pause 15" binary.exe
BinAIVulHunter CWE-699 सॉफ़्टवेयर विकास वर्गीकरण के आधार पर कोड का विश्लेषण करता है:
# Navigate to a function in IDA Pro
# Press Ctrl+Alt+V or right-click → "Find Possible Vulnerability"
# Example output:
"""
POTENTIAL VULNERABILITIES:
1. Buffer overflow in strcpy operation
CWE: CWE-120 | Severity: High
Mitigation: Replace strcpy with strncpy and validate buffer sizes
2. Integer overflow in arithmetic operation
CWE: CWE-190 | Severity: Medium
Mitigation: Add overflow checks before arithmetic operations
"""
# Command line batch scan
ida64.exe -A -S"BinAIVulHunter.py --scan-all --output vuln_report.json" malware.exe
# Results in vuln_report.json:
{
"scan_results": {
"total_functions": 245,
"vulnerable_functions": 12,
"functions": [
{
"name": "sub_401000",
"address": "0x401000",
"vulnerabilities": [
{
"description": "Unsafe string function used",
"cwe_id": "CWE-120",
"severity": "High",
"mitigation": "Use safe string functions"
}
]
}
]
}
}
# Set environment variables
os.environ['VULCHAT_PROVIDER'] = 'ollama'
os.environ['OLLAMA_MODEL'] = 'codellama'
# Or use Control Panel in IDA Pro:
# Edit → VulChat → Control Panel → Provider Menu → Ollama
"Provider not available" त्रुटि:
# Check environment variables
echo %OPENAI_API_KEY%
echo %GEMINI_API_KEY%
# Verify API keys are valid
# Restart IDA Pro after setting variables
Ollama कनेक्शन विफल:
# Check if Ollama is running
curl http://localhost:11434/api/tags
# Start Ollama if needed
ollama serve
# Verify models are installed
ollama list
बैच प्रोसेसिंग के दौरान मेमोरी संबंधी समस्याएँ:
# Reduce batch size in Control Panel or headless mode
--batch-size 1 --function-pause 10
API दर सीमाएँ (rate limits):
# Increase pause times
--function-pause 10 --batch-pause 30
# Or switch to Ollama for unlimited local processing
विस्तृत लॉग के लिए IDA Pro की आउटपुट विंडो देखें:
हम योगदान का स्वागत करते हैं! विवरण के लिए कृपया हमारी Contributing Guidelines देखें।
git clone https://github.com/yourusername/BinAIVulHunter.git
pip install -e .[dev]
यह प्रोजेक्ट MIT लाइसेंस के अंतर्गत लाइसेंस प्राप्त है - विवरण के लिए LICENSE फ़ाइल देखें।
⚠️ अस्वीकरण: यह टूल केवल शैक्षिक और वैध सुरक्षा अनुसंधान उद्देश्यों के लिए है। किसी भी सॉफ़्टवेयर का विश्लेषण करने से पहले हमेशा सुनिश्चित करें कि आपके पास उचित अधिकार है। AI-जनित विश्लेषण को मैन्युअल रूप से सत्यापित किया जाना चाहिए और यह विशेषज्ञ मानव समीक्षा का विकल्प नहीं है।
| Variable | Description | Default | Required |
|---|
OPENAI_API_KEY | OpenAI API कुंजी | कोई नहीं | OpenAI के लिए |
GEMINI_API_KEY | Google Gemini API कुंजी | कोई नहीं | Gemini के लिए |
OLLAMA_BASE_URL | Ollama सर्वर URL | http://localhost:11434 | नहीं |
OLLAMA_MODEL | डिफ़ॉल्ट Ollama मॉडल | llama2 | नहीं |
VULCHAT_PROVIDER | उपयोग करने हेतु AI प्रदाता | openai | नहीं |
VULCHAT_MODEL | विशिष्ट मॉडल नाम | प्रदाता डिफ़ॉल्ट | नहीं |
OPENAI_BASE_URL | कस्टम OpenAI एंडपॉइंट | आधिकारिक API | नहीं |
| Hotkey | Action |
|---|
Ctrl+Alt+V | भेद्यताएँ खोजें |
Ctrl+Alt+G | फ़ंक्शन की व्याख्या करें |
Ctrl+Alt+R | वेरिएबल्स का नाम बदलें |
Ctrl+Alt+X | परीक्षण इनपुट उत्पन्न करें |
Ctrl+Alt+S | सभी फ़ंक्शंस स्कैन करें |
Ctrl+Alt+W | CWE संदर्भ खोजें |
Ctrl+Alt+P | कंट्रोल पैनल |
Ctrl+F5 | सभी फ़ंक्शंस डीकंपाइल करें |
| Parameter | Description | Default |
|---|
--scan-all | भेद्यताओं के लिए सभी फ़ंक्शंस स्कैन करें | - |
--decompile-all | सभी फ़ंक्शंस डीकंपाइल करें | - |
--batch-size | प्रति बैच फ़ंक्शंस | 3 |
--function-pause | फ़ंक्शंस के बीच रुकावट (सेकंड) | 5 |
--batch-pause | बैचों के बीच रुकावट (सेकंड) | 10 |
--output | परिणामों के लिए JSON आउटपुट फ़ाइल | कोई नहीं |
--cache-dir | डीकंपाइलेशन कैश के लिए निर्देशिका | कोई नहीं |
| Category | CWE ID | Examples |
|---|
| मेमोरी बफर त्रुटियाँ | CWE-1218 | बफर ओवरफ़्लो, उपयोग-के-बाद-मुक्त (use-after-free) |
| संख्यात्मक त्रुटियाँ | CWE-189 | पूर्णांक ओवरफ़्लो, शून्य से भाग |
| संसाधन प्रबंधन | CWE-399 | मेमोरी लीक, फ़ाइल हैंडल लीक |
| डेटा सत्यापन | CWE-1215 | इनपुट सत्यापन, इंजेक्शन दोष |
| प्रमाणीकरण | CWE-1211 | कमज़ोर प्रमाणीकरण, बाईपास |
| अधिकृतता (Authorization) | CWE-1212 | विशेषाधिकार वृद्धि, अभिगम नियंत्रण |
| क्रिप्टोग्राफ़िक समस्याएँ | CWE-310 | कमज़ोर क्रिप्टो, कुंजी प्रबंधन |
| सूचना लीक | CWE-199 | डेटा एक्सपोज़र, साइड चैनल |
| त्रुटि प्रबंधन | CWE-389 | अनकैच्ड अपवाद, त्रुटि स्थितियाँ |
| आरंभीकरण (Initialization) | CWE-452 | अप्रारंभित वेरिएबल्स, क्लीनअप |
| Provider | Model | Best For | Cost |
|---|
| OpenAI | gpt-4 | व्यापक विश्लेषण | $$$ |
| OpenAI | gpt-3.5-turbo | तेज़ सामान्य विश्लेषण | $$ |
| Gemini | gemini-pro | संतुलित प्रदर्शन | $$ |
| Ollama | codellama | कोड-केंद्रित विश्लेषण | मुफ़्त |
| Ollama | deepseek-coder | भेद्यता पहचान | मुफ़्त |
| Ollama | llama2 | सामान्य उद्देश्य | मुफ़्त |
| Provider | Speed | Accuracy | Privacy | Cost |
|---|
| OpenAI GPT-4 | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐ | ⭐ |
| Gemini Pro | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐ | ⭐⭐ |
| Ollama | ⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ |