performing-fuzzing-with-aflplusplus

Runs coverage-guided AFL++ fuzzing campaigns on compiled binaries and triages discovered crashes.

4|Updated Apr 28, 2026
One-click install
npx skills add https://github.com/braydos-h/BreachPilot --skill performing-fuzzing-with-aflplusplus-braydos-h
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: performing-fuzzing-with-aflplusplus
Source: https://github.com/braydos-h/BreachPilot/tree/main/skills/performing-fuzzing-with-aflplusplus
Command: npx skills add https://github.com/braydos-h/BreachPilot --skill performing-fuzzing-with-aflplusplus-braydos-h

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes scripts (resource) and references (resource) components.

What problem does it solve? Finding memory corruption bugs and crashes in compiled binaries requires tedious manual setup of fuzzing infrastructure, corpus management, and crash analysis. This Skill automates the full AFL++ fuzzing lifecycle so testers can discover security vulnerabilities systematically. ## Core Features & Use Cases - Binary Instrumentation: Compile targets with afl-cc or afl-clang-fast, optionally with ASan or UBSan sanitizers for deeper bug detection. - Corpus Management: Minimize seed corpora with afl-cmin and shrink individual crash inputs with afl-tmin. - Campaign Monitoring & Crash Triage: Parse fuzzer_stats for execution speed, coverage, and path counts, then enumerate and classify crashes by signal for reporting. - Use Case: A security tester assessing a custom parser compiles it with AFL++ instrumentation, runs a parallel fuzzing campaign overnight, then uses this Skill to summarize unique crashes and minimize reproducing inputs for the vulnerability report. ## Quick Start Use the AFL++ fuzzing skill to analyze the fuzzing output directory and summarize crashes, coverage, and execution statistics from my campaign.

Frequently Asked Questions about performing-fuzzing-with-aflplusplus

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I fuzz a binary with AFL++?▼

Compile the target with afl-cc or afl-clang-fast to add instrumentation, prepare a seed corpus of valid inputs, then run afl-fuzz with -i for the input directory and -o for the output directory. Monitor progress with afl-whatsup and the fuzzer_stats file.

How to minimize AFL++ seed corpus and crash inputs?▼

Use afl-cmin to remove redundant seeds from the corpus while preserving coverage, and afl-tmin to shrink individual crash test cases to their minimal reproducing form. Both tools take -i input, -o output, and the target binary after a double dash.

Can AFL++ fuzz binaries without source code?▼

Yes, AFL++ supports binary-only fuzzing through QEMU mode (-Q flag) and Unicorn mode (-U flag), which instrument the target at runtime instead of compile time. Compile-time instrumentation is preferred when source is available because it runs faster.

Does AFL++ work with AddressSanitizer?▼

Yes, compile the target with -fsanitize=address during instrumentation to detect memory errors that do not crash outright. When using ASan, set the afl-fuzz memory limit to none with -m none because ASan allocates large amounts of virtual memory.

How do I triage crashes found by AFL++?▼

Crashes are stored in the crashes subdirectory of the output folder, with filenames encoding the signal number. Use casr-afl for automated severity analysis, afl-tmin to minimize inputs, or gdb --batch -ex run to reproduce crashes under a debugger.

What are the limitations of coverage-guided fuzzing?▼

Coverage-guided fuzzing requires an initial seed corpus of valid inputs and works best on Linux with proper core_pattern configuration. It may struggle with highly structured input formats unless you supply a dictionary or use CMPLOG instrumentation for comparison solving.