Overview
RAPTOR integrates AFL++ for intelligent binary fuzzing with automatic crash collection, ranking by exploitability, and autonomous crash analysis powered by LLMs.Architecture
AFL++ Runner
Basic Fuzzing Campaign
Launch a fuzzing campaign:Input Modes
Stdin mode (default):@@ placeholder):
Instrumentation Detection
AFL++ works best with instrumented binaries:Recompilation Guide
For optimal results, recompile with AFL instrumentation:Sanitizer Detection
Check if binary has sanitizers enabled:Parallel Fuzzing
Worker Configuration
AFL++ supports parallel fuzzing with multiple instances:Main + Secondary Architecture
RAPTOR automatically configures the AFL hierarchy:Performance Monitoring
AFL++ statistics are logged during fuzzing:Crash Collection
Automatic Collection
Crashes are automatically collected and deduplicated:Crash Data Structure
Exploitability Ranking
Crashes are ranked by likely exploitability:Signal Names
Corpus Management
Default Corpus
If no corpus provided, RAPTOR creates basic seeds:Custom Corpus
Provide domain-specific seeds:AFL Dictionary
Provide syntax hints for structured inputs:CLI Usage
Basic Fuzzing
Parallel Fuzzing
With Custom Corpus
With Dictionary
File Input Mode
Check Instrumentation
Coverage Analysis
Crash Analysis
Autonomous Analysis Pipeline
RAPTOR automatically analyzes crashes with GDB + LLM:Crash Context
GDB extracts detailed crash information:Crash Type Classification
Heuristic classification:Autonomous Mode
Intelligent Fuzzing
Enable autonomous decision-making:Memory & Learning
Autonomous mode persists knowledge:Goal-Directed Fuzzing
Set high-level objectives:- Generates intelligent seeds targeting goal areas
- Prioritizes crashes matching goal patterns
- Adjusts fuzzing strategy based on progress
Corpus Generation
Autonomous corpus generation:Workflow Output
Crash Deduplication
Multiple deduplication strategies:- Input hash: Same input file → duplicate
- Stack hash: Same stack trace → duplicate
- Signal: Different signals → unique
Best Practices
Recompile with instrumentation: Non-instrumented binaries use QEMU mode which is 2-5x slower. Recompile with
afl-clang for best results.Troubleshooting
AFL Shared Memory Error
On macOS:No Crashes Found
If fuzzing finds no crashes:- Increase duration:
--duration 7200(2 hours) - Improve corpus: Add valid inputs as seeds
- Check timeout: Increase
--timeout 5000(5 seconds) - Verify binary works:
echo "test" | ./binary
Low Execution Speed
If execs/sec is low:- Reduce timeout:
--timeout 100(100ms) - Use instrumented binary (not QEMU mode)
- Simplify binary (disable unnecessary checks)
- Check for blocking I/O
See Also
- Static Analysis - Pre-fuzzing code scanning
- Exploitability Validation - Validate crashes
- Web Scanning - Web application fuzzing