afl-tmin(8)
π afl-tmin β the glow-up your test case deserves π
okay so picture this: afl-tmin is a page from the AFL++ manual (section 8, System Manager's Manual β very official, very demure), and it's basically the makeover episode of your fuzzing journey. bestie, it takes your chonky lil input file and shrinks it down while keeping the same behavior. slay.
β¨ NAME β¨
afl-tmin β no cap, that's the whole name. icon behavior honestly.
π¦ SYNOPSIS π¦
afl-tmin [ options ] -- /path/to/target_app [ ... ]
so it's afl-tmin, then whatever options you want, then a --, then the path to your target app, then any extra args the target needs. the -- is the vibe check that says "everything after this is the program, not my flags" π«Ά
π OPTIONS π
π Required parameters π (yes, these two are non-negotiables)
-ifile β the input test case that's about to be shrunk by the tool. this is your before pic π-ofile β where the minimized data goes when it's all done. your after pic β¨
π₯ Execution control settings π₯
-ffile β the input file that the tested program reads (stdin). yep, this is the file-instead-of-stdin situation, iykyk.-tmsec β timeout for each run. default is1000ms. patience is a virtue but like, a bounded one.-mmegs β memory limit for the child process. default is0MB. keep your kid on a budget π-Oβ use binary-only instrumentation, aka FRIDA mode.-Qβ use binary-only instrumentation, aka QEMU mode.-Uβ use unicorn-based instrumentation, aka Unicorn mode π¦-Wβ use qemu-based instrumentation with Wine, aka Wine mode π· (not necessary β it's literally here for consistency with the otherafl-*tools, so it's giving tag-along little sibling energy)-Xβ use Nyx mode.-Kdir β use a python script to interact with the GUI, aka GUI mode.
πΈ Minimization settings πΈ (the actual glow-up dials)
-eβ solve for edge coverage only, ignore hit counts. less is more, bestie.-lbytes β set the minimum block deletion length, which speeds up the minimization. going fast is a flex π₯-xβ treat non-zero exit codes as crashes. dramatic? yes. accurate? also yes.-Hβ minimize a hang, aka hang mode. the "why is it just sitting there" scenario, but make it productive π
for additional tips, please consult docs/README.md β genuinely, go read it, it's giving lore π
π§ Environment variables used π§
AFL_CRASH_EXITCODEβ optional child exit code to be interpreted as a crash.AFL_FORKSRV_INIT_TMOUTβ time spent waiting for the forkserver during startup, in ms.AFL_KILL_SIGNALβ the Signal ID delivered to child processes on timeout, etc. (default:SIGKILL).AFL_FORK_SERVER_KILL_SIGNALβ the kill signal for the fork server on termination (default:SIGTERM). if it's unset andAFL_KILL_SIGNALis set, that value will be used.AFL_MAP_SIZEβ the shared memory size for that target. must be >= the size the target was compiled for.AFL_PRELOADβLD_PRELOAD/DYLD_INSERT_LIBRARIESsettings for the target.AFL_INPUT_PLACEHOLDERβ custom placeholder for the input file (default:@@).AFL_TMIN_EXACTβ require execution paths to match for crashing inputs.AFL_NO_FORKSRVβ run the target viaexecveinstead of using the forkserver.ASAN_OPTIONSβ custom settings for ASAN. it must containabort_on_error=1andsymbolize=0, no exceptions πMSAN_OPTIONSβ custom settings for MSAN. it must containexitcode=86andsymbolize=0, same deal.TMPDIRβ the directory to use for temporary input files.
π 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 literally right here: https://github.com/AFLplusplus/AFLplusplus β go follow the main characters β
π LICENSE π
AFL++ is licensed under AGPL-3.0-or-later, with original components under Apache-2.0; an optional commercial license is available. full deets: https://github.com/AFLplusplus/AFLplusplus/blob/stable/LICENSING.md π
π and that's the whole page, bestie. this lil manual moment was brought to you by AFL++, dated 2026-06-05, living in section 8 of the System Manager's Manual β signing off, mwah π«Άβ¨
π¦ 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