
IDA PRO HexRaysデコンパイラをOpenAI(ChatGPT)と組み合わせて、バイナリ内の潜在的な脆弱性を発見します。
バイナリ内の脆弱性の発見を支援するIDA PROプラグインです。
IDA PRO HexRays逆コンパイラとOpenAI(ChatGPT)を使用して、バイナリ内の潜在的な脆弱性を発見します。
免責事項: AIを使用してバイナリの脆弱性を探す際に得られる応答には誤検知が含まれる可能性があります。ただし、私がこれまで取り組んできた多くのCTF(簡単/中級...一部の上級)では機能してきました。
PythonスクリプトをIDA Proプラグインの場所にドロップします。
逆コンパイルされたコードを右クリックし、「Find possible vulnerability in function」を選択します。




BinAIVulHunterは、複数のAIプロバイダー(OpenAI GPT、Google Gemini、Ollama)を活用して、逆コンパイルされた関数のインテリジェントな脆弱性解析、コード説明、セキュリティ評価を実行する高度なIDA Proプラグインです。
プラグインをダウンロード:
# Save BinAIVulHunter.py to your IDA Pro plugins directory
# Typically: C:\Program Files\IDA Pro X.X\plugins\
基本依存関係をインストール:
pip install psutil
AIプロバイダーライブラリをインストール(1つ以上選択):
# 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
AIモデルを取得:
# 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
| 変数 | 説明 | デフォルト | 必須 |
|---|---|---|---|
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 | いいえ |
お好みの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でアクセス:
| ホットキー | 操作 |
|---|---|
Ctrl+Alt+V | 脆弱性を検索 |
Ctrl+Alt+G | 関数を説明 |
Ctrl+Alt+R | 変数をリネーム |
Ctrl+Alt+X | テスト入力を生成 |
Ctrl+Alt+S | 全関数をスキャン |
Ctrl+Alt+W | CWEリファレンスを検索 |
Ctrl+Alt+P | コントロールパネル |
Ctrl+F5 | 全関数を逆コンパイル |
自動解析と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
| パラメータ | 説明 | デフォルト |
|---|---|---|
--scan-all | 脆弱性について全関数をスキャン | - |
--decompile-all | 全関数を逆コンパイル | - |
--batch-size | バッチあたりの関数数 | 3 |
--function-pause | 関数間の一時停止(秒) | 5 |
--batch-pause | バッチ間の一時停止(秒) | 10 |
--output | 結果用のJSON出力ファイル | なし |
--cache-dir | 逆コンパイルキャッシュ用ディレクトリ | なし |
BinAIVulHunterは、CWE-699ソフトウェア開発分類法に基づいてコードを解析します:
| カテゴリ | CWE ID | 例 |
|---|---|---|
| メモリバッファエラー | CWE-1218 | バッファオーバーフロー、use-after-free |
| 数値エラー | CWE-189 | 整数オーバーフロー、ゼロ除算 |
| リソース管理 | CWE-399 | メモリリーク、ファイルハンドルリーク |
| データ検証 | CWE-1215 | 入力検証、インジェクション欠陥 |
| 認証 | CWE-1211 | 弱い認証、認証バイパス |
| 認可 | CWE-1212 | 権限昇格、アクセス制御 |
| 暗号化の問題 | CWE-310 | 弱い暗号、鍵管理 |
| 情報漏えい | CWE-199 | データ露出、サイドチャネル |
| エラー処理 | CWE-389 | 未キャッチの例外、エラー状態 |
| 初期化 | CWE-452 | 未初期化変数、クリーンアップ |
# 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
"""