re-fuzzing

Runs coverage-guided fuzzing with AFL++, libFuzzer, and honggfuzz to find crashes in parsers.

64|9|Updated Aug 17, 2026
One-click install
npx skills add https://github.com/dslsdzc/rev-skills --skill re-fuzzing-dslsdzc
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: re-fuzzing
Source: https://github.com/dslsdzc/rev-skills/tree/main/.claude/skills/re-fuzzing
Command: npx skills add https://github.com/dslsdzc/rev-skills --skill re-fuzzing-dslsdzc

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Finding memory-safety bugs and crashes in parsers, libraries, and binary targets requires automated input generation; manual test cases rarely reach deep code paths. This Skill guides coverage-guided fuzzing campaigns from instrumentation through crash collection. ## Core Features & Use Cases - Multi-Fuzzer Setup: Cross-platform installation and verification for AFL++, libFuzzer (via clang), and honggfuzz, including source builds and WSL2 guidance for Windows. - Instrumentation & Harness Authoring: Compile targets with afl-clang-fast and ASAN, write LLVMFuzzerTestOneInput harnesses for library APIs, and use QEMU mode for closed-source binaries. - Corpus & Coverage Management: Seed minimization with afl-cmin, dictionary-based mutation with -x, multi-instance runs, and coverage measurement via afl-cov and afl-showmap. - Use Case: Given a C file-parsing library, build an ASAN-instrumented fuzz target, minimize a seed corpus, run afl-fuzz for 24+ hours, and hand the resulting crashes in out/crashes/ to triage. ## Quick Start Set up an AFL++ fuzzing campaign with ASAN instrumentation and a minimized seed corpus against my parser binary to find crashes.

Frequently Asked Questions about re-fuzzing

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

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

Write a harness implementing LLVMFuzzerTestOneInput that feeds fuzz data to the target parse function, then compile it with afl-clang-fast using -fsanitize=fuzzer,address. Run afl-fuzz with -i in -o out and the @@ placeholder for the input file.

AFL++ vs libFuzzer vs honggfuzz: which fuzzer should I use?▼

AFL++ is the main coverage-guided fuzzer for file-based targets and supports QEMU mode for closed-source binaries. libFuzzer ships with clang and suits single-function library fuzzing, while honggfuzz offers hardware-counter and multi-threaded fuzzing as an alternative.

Can I fuzz a binary without source code?▼

Yes, AFL++ supports QEMU mode via the -Q flag, which fuzzes uninstrumented binaries without recompilation. It runs roughly 2-5 times slower than compile-time instrumentation but requires no source access.

Why does afl-fuzz show high execs but no new paths?▼

This usually means the target was not instrumented, so no coverage feedback reaches the fuzzer. Verify instrumentation with afl-showmap before starting, check that you compiled with an afl-* compiler wrapper, and confirm the @@ placeholder reaches the real parsing code.

Why does ASAN kill my fuzzing process or miss real crashes?▼

ASAN-instrumented targets are killed by default memory limits unless you pass -m none to afl-fuzz. Always combine AFL_USE_ASAN=1 with -m none and a generous -t timeout, and confirm ASAN reports correctly by running a known-crashing input manually first.

How do I fuzz a network service that reads from sockets?▼

Do not fuzz the whole service process; write a harness that reads input from a file and calls the protocol parsing function directly. Use captured real traffic as seed corpus so the fuzzer targets the parser rather than the network stack.