
Используйте декомпилятор IDA PRO HexRays с OpenAI(ChatGPT) для поиска возможных уязвимостей в бинарных файлах.
Плагин для IDA PRO, помогающий находить уязвимости в бинарных файлах.
Используйте декомпилятор HexRays из IDA PRO вместе с OpenAI (ChatGPT) для поиска возможных уязвимостей в бинарных файлах
Отказ от ответственности: ответы, полученные при попытке найти уязвимости в бинарных файлах с помощью ИИ, могут приводить к ложным срабатываниям, однако этот подход сработал во многих CTF-заданиях, над которыми я работал (простых/средних ... некоторых сложных)
Поместите Python-скрипт в каталог плагинов 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.
⚠️ Отказ от ответственности: этот инструмент предназначен только для образовательных целей и легитимных исследований в области безопасности. Всегда убедитесь, что у вас есть надлежащее разрешение перед анализом любого программного обеспечения. Результаты анализа, полученные с помощью ИИ, необходимо проверять вручную; они не заменяют экспертную проверку специалистом.
| Variable | Description | Default | Required |
|---|
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 | Пользовательский endpoint 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 | Каталог для кэша декомпиляции | Нет |
| Категория | ID CWE | Примеры |
|---|
| Ошибки буфера памяти | CWE-1218 | Переполнения буфера, use-after-free |
| Числовые ошибки | 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 | ⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ |