Agentic-AFL is an asynchronous, neuro-symbolic fuzzing orchestration framework that runs alongside AFL++ as an intelligent co-process. When AFL++ stalls on a cryptographic or arithmetic check — such as a CRC validation or protocol checksum — the agent extracts a Ghidra P-Code slice from the stall site, uses an LLM to translate it into a Z3 SMT script, solves the constraint, and injects the resulting payload back into AFL++ without ever pausing fuzzer execution.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/AdithyaaSivamal/Agentic-AFL/llms.txt
Use this file to discover all available pages before exploring further.
Quickstart
Run your first Agentic-AFL campaign in minutes with a pre-compiled harness
How It Works
Understand the Extract → Translate → Solve → Inject pipeline
CLI Reference
Full flag reference for the
agentic-afl fuzz and plot commandsPython API
Embed Agentic-AFL in your own tooling with the
CampaignRunner APIWhat Agentic-AFL Does
Standard AFL++ is highly effective at discovering shallow bugs but stalls when a code path is gated by a mathematical invariant — a CRC-16 check, a protocol sequence number, a HMAC digest. Agentic-AFL detects these stalls and solves them automatically.P-Code Extraction
Ghidra headless analysis extracts a taint-bounded backward P-Code slice from the binary at the stall address
Z3 Synthesis
An LLM translates the P-Code into a Z3Py SMT script. K-way voting and a ReAct self-repair loop maximize solve rate
Payload Injection
Solved payloads are written atomically to AFL++‘s sync directory — zero impact on fuzzer throughput
Key Features
- K-way voting — generates K Z3 scripts in parallel, picks the first SAT result; mitigates LLM syntax error rates
- ReAct self-repair — feeds Z3 error messages back to the LLM for up to N iterative repair attempts
- CARM retrieval — Jaccard similarity search over PostgreSQL retrieves past successful Z3 templates for similar stalls
- Harvest mode — autonomously builds a CARM corpus by verifying solves with AFL++ edge-coverage deltas
- Multi-architecture — ARM32, ARM64, x86, x86_64, MIPS32, PPC32
- Rich TUI — live braille-dot coverage sparkline, pipeline stage tracker, and event log
Get Started
Install dependencies
Install AFL++, Ghidra, Z3, and the Python package. Set your LLM API key in
.env.Agentic-AFL requires AFL++ 4.x, Ghidra 11.x, Python 3.11+, and a PostgreSQL instance for the CARM spec store. See the Quickstart for full prerequisites.