TheDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/AFLplusplus/AFLplusplus/llms.txt
Use this file to discover all available pages before exploring further.
afl-fuzz command is the core fuzzing engine of AFL++. It performs coverage-guided fuzzing to automatically discover crashes and hangs in target programs.
Synopsis
Description
afl-fuzz uses genetic algorithms and coverage feedback to evolve test cases that explore different execution paths in the target program. It monitors program behavior to detect crashes, hangs, and interesting code paths.
Required Parameters
Input directory containing seed test cases. Use
-i - to resume a previous fuzzing session.Output directory where fuzzer will store findings, crashes, and stats.
Execution Control
Timeout for each run in milliseconds (default: auto-scaled, usually 1000ms). Add ’+’ suffix to auto-calculate with this value as maximum.
Memory limit for child process in megabytes (default: none).
Location where target reads input from (default: stdin). Use
@@ in target arguments as placeholder.Use QEMU mode for fuzzing binary-only targets (Linux only).
Use FRIDA mode for fuzzing binary-only targets.
Use Unicorn mode for fuzzing (Linux only).
Mutation Settings
Set fix mutation strategy:
explore (focus on coverage) or exploit (focus on crashes). Can also be a number of seconds without finds before switching to exploit mode.Power schedule for seed selection. Options:
explore (default), fast, exploit, seek, rare, mmopt, coe, lin, quad.Set minimum length of generated fuzz input (default: 1).
Set maximum length of generated fuzz input (default: 1048576 = 1MB).
Use MOpt(imize) mode with time limit in minutes. 0 = immediately, -1 = immediately with normal mutation.
Enable CmpLog by specifying a binary compiled with CmpLog instrumentation. Use
-c 0 if target has built-in CmpLog. Use -c - to disable.CmpLog configuration:
1=small files, 2=larger files (default), 3=all files, A=arithmetic solving, T=transformational solving, X=extreme transform, R=random colorization.Fuzzer dictionary file (can be specified up to 4 times).
Enable testcase splicing mutation.
Fuzzing Behavior
Fuzz without instrumentation (dumb mode).
Sequential queue selection instead of weighted random.
Do not unlink the fuzzing input file (useful for devices).
Parallel Fuzzing
Distributed mode - main fuzzer instance. Sets deterministic mode and disables trimming.
Distributed mode - secondary fuzzer instance.
Sync to a foreign fuzzer queue directory (requires -M, can be specified up to 32 times).
Test Settings
Use a fixed seed for the RNG (for reproducibility).
Fuzz for a specified time in seconds then terminate.
Fuzz for an approximate number of total executions then terminate.
Other Options
Text banner to show on the screen.
Execute this command/script when a new crash is found.
Crash exploration mode (Peruvian Rabbit mode).
Bind fuzzing process to specific CPU core.
File extension for the fuzz test input file.
Skip the enhanced deterministic fuzzing stage.
Examples
Basic Fuzzing
CmpLog Mode
Parallel Fuzzing
Binary-Only Fuzzing (QEMU)
With Dictionary
Resume Fuzzing
Environment Variables
See the Environment Variables page for comprehensive list. Key variables:AFL_AUTORESUME- Resume fuzzing automaticallyAFL_FAST_CAL- Speed up calibration stageAFL_IGNORE_PROBLEMS- Continue despite setup issuesAFL_NO_UI- Disable status screenAFL_TMPDIR- Use ramdisk for temporary filesAFL_CUSTOM_MUTATOR_LIBRARY- Custom mutation library
Output Directory Structure
Status Screen
The AFL++ status screen shows:- Overall results - Paths found, crashes, hangs
- Cycle progress - Current fuzzing stage
- Map coverage - Edge coverage statistics
- Stage progress - Current mutation strategy
- Findings in depth - New paths, crashes per time
- Fuzzing strategy - Current power schedule
- Path geometry - Corpus characteristics
- CPU load - System resource usage
Tips
Seed Selection
Provide small, diverse seed files:Performance Tuning
Crash Triage
See Also
- afl-cc - Compiler wrapper
- afl-cmin - Corpus minimizer
- afl-tmin - Test case minimizer
- afl-showmap - Coverage analysis
- afl-whatsup - Multi-fuzzer status

