afl-cmin.bash(8)
π afl-cmin.bash(8) β like, the group chat version
okay so real quick: this is a page from the System Manager's Manual, and it's about afl-cmin.bash β the corpus minimizer bestie. she takes your giant messy pile of seed files and slims it down to only the ones that actually do something. honestly iconic behavior. π
β¨ NAME β¨
afl-cmin.bash β bestie, that's literally the whole name, no extra lore π
π¦ SYNOPSIS π¦
Usage: ./afl-cmin.bash [ options ] -- /path/to/target_app [ ... ]
so you run the script, you throw your options at it, then --, then the path to the target app, then whatever extra args the target wants. the -- is the vibe check divider between "my settings" and "the app's settings". periodt. β¨
πΈ OPTIONS πΈ
π Required parameters (yes, these are non-negotiable, no cap)
-i dirβ the input directory holding your starting corpus. your big pile of seeds goes here. π-o dirβ the output directory where the minimized files get dropped. this is where the magic lands, bestie. β¨
π₯ Execution control settings (how she actually runs the thing)
-T tasksβ how many parallel processes to create (default=1,"all"=nproc). more tasks = more girlies working at once. π-f fileβ the location read by the fuzzed program (default:stdin). lowkey important if your target doesn't just eat stdin. π-m megsβ memory limit for child process (default=noneMB). be nice to your RAM, she's trying her best. π-t msecβ run time limit for child process (default:5000ms). five whole seconds by default, generous queen.-Oβ use binary-only instrumentation (FRIDA mode). no source? no problem. π§-Qβ use binary-only instrumentation (QEMU mode). the classic binary-only road. π-Uβ use unicorn-based instrumentation (Unicorn mode). sparkly. β-Xβ use Nyx mode. the fancy one. π
π Minimization settings (the actual "make it smaller" section)
-Aβ allow crashing and timeout inputs. yes, the messy ones get to stay. π-Cβ keep crashing inputs, reject everything else. very picky, very main character energy. π-eβ solve for edge coverage only, ignore hit counts. vibes only, no numbers. β¨
π«Ά the little notes at the bottom of that section π«Ά
- For additional tips, please consult
README.md. fr fr, it's right there. π - This script cannot read filenames that end with a space
' '. that's just how it is, ngl β rename the file or accept your fate. π
π Environment variables used (yes she reads the vibe of your shell) π
AFL_KEEP_TRACESβ leave the temporary<out_dir>.tracesdirectory. it's giving "i'm not throwing that away". πAFL_NO_FORKSRVβ run target viaexecveinstead of using the forkserver. old school. π¦AFL_PATHβ last resort location to find theafl-showmapbinary. she'll go looking, but only as a last resort. πAFL_SKIP_BIN_CHECKβ skip check for target binary. yeet the safety rail. π₯AFL_CUSTOM_MUTATOR_LIBRARYβ custom mutator library (post_processandsend). π§AFL_PYTHON_MODULEβ custom mutator library (post_processandsend). yes, same description, that's literally what the page says, don't come for me. π
π AUTHOR π
AFL++ was written by Michal "lcamtuf" Zalewski and is maintained by Marc "van Hauser" Heuse <mh@mh-sec.de>, Dominik Maier <domenukk@gmail.com>, Andrea Fioraldi <andreafioraldi@gmail.com> and Heiko "hexcoder-" Eissfeldt <heiko.eissfeldt@hexco.de> The homepage of AFL++ is: https://github.com/AFLplusplus/AFLplusplus
like, a whole squad of maintainers. respect. π«Ά
π LICENSE π
AFL++ is licensed under AGPL-3.0-or-later, with original components under Apache-2.0; an optional commercial license is available. See https://github.com/AFLplusplus/AFLplusplus/blob/stable/LICENSING.md
okay that's the whole page, you ate that. mwah. πβ¨
this masterpiece brought to you by AFL++, dated 2026-06-05 β afl-cmin.bash(8), signing off ππ¦π
π¦ where this page comes from
- arch rolling: afl++ 5.00c-1 Β· Apache-2.0
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms