
استخدم مفكك الشيفرة IDA PRO HexRays مع OpenAI (ChatGPT) للعثور على الثغرات المحتملة في الملفات الثنائية.
مكوّن إضافي لبرنامج IDA Pro للمساعدة في اكتشاف الثغرات الأمنية في الملفات الثنائية.
استخدم مفكك أكواد IDA Pro HexRays مع OpenAI (ChatGPT) للعثور على الثغرات الأمنية المحتملة في الملفات الثنائية
إخلاء مسؤولية: قد تؤدي الردود المحتملة أثناء محاولة العثور على ثغرات أمنية في الملفات الثنائية باستخدام الذكاء الاصطناعي إلى نتائج إيجابية كاذبة، ومع ذلك فقد نجح الأمر في العديد من مسابقات CTF التي عملت عليها (سهلة/متوسطة ... وبعضها صعبة)
ضع ملف البايثون النصي في مجلد إضافات (Plugins) الخاص بـ IDA Pro.
انقر بزر الماوس الأيمن على الكود المُفكَّك، ثم اختر "Find possible vulnerability in function"




BinAIVulHunter هو مكوّن إضافي متقدم لبرنامج IDA Pro يستفيد من عدة مزودي ذكاء اصطناعي (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
ثبّت مكتبات مزودي الذكاء الاصطناعي (اختر واحدة أو أكثر):
# For OpenAI
pip install openai
# For Google Gemini
pip install google-generativeai
# For Ollama (local AI)
pip install requests
أعد تشغيل IDA Pro لتحميل المكوّن الإضافي
احصل على مفتاح API:
عيّن متغير البيئة:
# 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
اسحب نماذج الذكاء الاصطناعي:
# 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
عيّن مزود الذكاء الاصطناعي المفضل لديك:
# 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:
# Increase pause times
--function-pause 10 --batch-pause 30
# Or switch to Ollama for unlimited local processing
افحص نافذة المخرجات في IDA Pro للحصول على سجلات تفصيلية:
نرحب بمساهماتكم! يرجى الاطلاع على إرشادات المساهمة للحصول على التفاصيل.
git clone https://github.com/yourusername/BinAIVulHunter.git
pip install -e .[dev]
هذا المشروع مرخص بموجب رخصة MIT - راجع ملف LICENSE للحصول على التفاصيل.
⚠️ إخلاء مسؤولية: هذه الأداة مخصصة للأغراض التعليمية وأبحاث الأمن المشروعة فقط. تأكد دائماً من حصولك على التفويض المناسب قبل تحليل أي برنامج. يجب التحقق يدوياً من التحليل الناتج عن الذكاء الاصطناعي، ولا يُعتبر بديلاً عن المراجعة البشرية المتخصصة.
| المتغير | الوصف | الافتراضي | مطلوب |
|---|
OPENAI_API_KEY | مفتاح API الخاص بـ OpenAI | لا يوجد | لـ OpenAI |
GEMINI_API_KEY | مفتاح API الخاص بـ Google Gemini | لا يوجد | لـ Gemini |
OLLAMA_BASE_URL | عنوان URL لخادم Ollama | http://localhost:11434 | لا |
OLLAMA_MODEL | نموذج Ollama الافتراضي | llama2 | لا |
VULCHAT_PROVIDER | مزود الذكاء الاصطناعي المستخدم | openai | لا |
VULCHAT_MODEL | اسم نموذج محدد | الافتراضي للمزود | لا |
OPENAI_BASE_URL | نقطة نهاية مخصصة لـ OpenAI | واجهة API الرسمية | لا |
| الاختصار | الإجراء |
|---|
Ctrl+Alt+V | العثور على الثغرات |
Ctrl+Alt+G | شرح الدالة |
Ctrl+Alt+R | إعادة تسمية المتغيرات |
Ctrl+Alt+X | إنشاء مدخلات اختبار |
Ctrl+Alt+S | فحص جميع الدوال |
Ctrl+Alt+W | البحث في مرجع CWE |
Ctrl+Alt+P | لوحة التحكم |
Ctrl+F5 | تفكيك جميع الدوال |
| المعامل | الوصف | الافتراضي |
|---|
--scan-all | فحص جميع الدوال بحثاً عن الثغرات الأمنية | - |
--decompile-all | تفكيك جميع الدوال | - |
--batch-size | عدد الدوال في كل دفعة | 3 |
--function-pause | توقف مؤقت بين الدوال (بالثواني) | 5 |
--batch-pause | توقف مؤقت بين الدفعات (بالثواني) | 10 |
--output | ملف إخراج JSON للنتائج | لا يوجد |
--cache-dir | مجلد لذاكرة التخزين المؤقت للتفكيك | لا يوجد |
| الفئة | معرّف CWE | أمثلة |
|---|
| أخطاء المخزن المؤقت في الذاكرة | CWE-1218 | تجاوز سعة المخزن المؤقت، الاستخدام بعد التحرير |
| أخطاء رقمية | CWE-189 | تجاوز العدد الصحيح، القسمة على صفر |
| إدارة الموارد | CWE-399 | تسرب الذاكرة، تسرب مقابض الملفات |
| التحقق من البيانات | CWE-1215 | التحقق من المدخلات، عيوب الحقن |
| المصادقة | CWE-1211 | مصادقة ضعيفة، تجاوز |
| التفويض | CWE-1212 | تصعيد الامتيازات، التحكم في الوصول |
| المشاكل التشفيرية | CWE-310 | تشفير ضعيف، إدارة المفاتيح |
| تسرب المعلومات | CWE-199 | كشف البيانات، القنوات الجانبية |
| معالجة الأخطاء | CWE-389 | استثناءات غير ملتقطة، حالات خطأ |
| التهيئة | CWE-452 | متغيرات غير مهيأة، التنظيف |
| المزود | النموذج | الأفضل لـ | التكلفة |
|---|
| OpenAI | gpt-4 | تحليل شامل | $$$ |
| OpenAI | gpt-3.5-turbo | تحليل عام سريع | $$ |
| Gemini | gemini-pro | أداء متوازن | $$ |
| Ollama | codellama | تحليل موجه للكود | مجاني |
| Ollama | deepseek-coder | اكتشاف الثغرات الأمنية | مجاني |
| Ollama | llama2 | للأغراض العامة | مجاني |
| المزود | السرعة | الدقة | الخصوصية | التكلفة |
|---|
| OpenAI GPT-4 | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐ | ⭐ |
| Gemini Pro | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐ | ⭐⭐ |
| Ollama | ⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ |