IDA Security Scanner
January 19, 2026 · View on GitHub
Automated vulnerability detection in IDA Pro using SAST rules on decompiled code
What is IDA Security Scanner?
IDA Security Scanner bridges the gap between binary reverse engineering and static code analysis. Instead of manually hunting for vulnerabilities in decompiled code, this plugin:
- Extracts pseudocode from IDA's Hex-Rays decompiler
- Runs SAST rules via opengrep on the C-like output
- Displays results in an interactive UI directly inside IDA
- Provides AI explanations (optional) for each finding
Perfect for vulnerability research, CTF challenges, and security audits.
Installation
1. Copy the plugin folder
# macOS
cp -r symbiotic /Applications/IDA*/Contents/MacOS/plugins/
# Windows
xcopy symbiotic %IDADIR%\plugins\symbiotic\ /E /I
# Linux
cp -r symbiotic ~/.idapro/plugins/
2. Install opengrep
Download the opengrep binary from the official releases:
https://github.com/opengrep/opengrep/releases
Rename the binary to opengrep-core and place it in the IDA plugins folder (same location as the plugin):
# macOS
mv opengrep /Applications/IDA*/Contents/MacOS/plugins/opengrep-core
# Windows
move opengrep.exe %IDADIR%\plugins\opengrep-core.exe
# Linux
mv opengrep ~/.idapro/plugins/opengrep-core
Note: The plugin expects the binary at
plugins/opengrep-coreby default. You can change this path in the plugin settings.
3. Configure AI (Optional)
See the AI Integration section below.
Usage
| Shortcut | Action |
|---|---|
Ctrl+Shift+S | Scan current function |
Ctrl+Shift+L | Scan ALL functions |
Ctrl+Shift+A | Ask AI about selected finding |
Detection Rules
IDA Security Scanner uses YAML-based rules powered by opengrep (a semgrep fork). Rules are defined in code-rules.yaml.
Adding Custom Rules
Why add custom rules?
- Target specific vulnerability patterns for your audit
- Detect proprietary API misuse in embedded systems
- Create rules for CTF-specific patterns
- Hunt for known CVE patterns in binaries
How to add a rule:
Edit code-rules.yaml and add your pattern:
rules:
# Example: Detect dangerous gets() usage
- id: BUFFER_OVERFLOW_GETS
languages: [c]
message: "Buffer overflow: gets() has no bounds checking"
pattern: gets($BUF)
severity: CRITICAL
# Example: Detect potential integer overflow
- id: INTEGER_OVERFLOW
languages: [c]
message: "Potential integer overflow in malloc size calculation"
pattern: malloc($X * $Y)
severity: WARNING
# Example: Detect hardcoded credentials
- id: HARDCODED_PASSWORD
languages: [c]
message: "Hardcoded password detected"
pattern-regex: '(password|passwd|pwd)\s*=\s*"[^"]+"'
severity: HIGH
Pattern syntax reference: See opengrep/semgrep documentation
See the full rules file: code-rules.yaml
AI Integration
IDA Security Scanner can use LLM APIs to provide detailed explanations of detected vulnerabilities and suggest exploitation paths.
Quick Setup
-
Copy the example configuration:
cp .env.example .env -
Edit
.envwith your API credentials (see below) -
Use
Ctrl+Shift+Aon any finding to get AI analysis
Supported Providers
| Provider | Documentation | How to get API Key |
|---|---|---|
| OpenAI | platform.openai.com | Get API Key |
| Anthropic (Claude) | docs.anthropic.com | Get API Key |
| Google Gemini | ai.google.dev | Requires OpenAI-compatible proxy |
| Local Models | Via Ollama, LM Studio | Use OpenAI-compatible endpoint |
Configuration Example
# .env file
AI_PROVIDER=openai
AI_API_KEY=sk-your-api-key-here
AI_MODEL=gpt-5.2
AI_BASE_URL=https://api.openai.com/v1 # Optional, for custom endpoints
AI Response Example
Features
- Automatic Vulnerability Detection — Scans decompiled functions for dangerous patterns
- YAML-based Rules — Easy to customize and extend with your own patterns
- Interactive UI — Filter by severity, function name, add custom tags
- AI Analysis — Get detailed explanations via LLM integration
- Persistent State — Tags and notes survive between IDA sessions
- Fast Scanning — Leverages opengrep's optimized pattern matching
Credits
License
MIT License — See LICENSE for details.