fuzzing-dictionary

Guides fuzzing mutations with domain-specific tokens for deeper parser exploration.

Updated May 2, 2026
One-click install
npx skills add https://github.com/ayehiaa/my-travel-assistant --skill fuzzing-dictionary-ayehiaa
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: fuzzing-dictionary
Source: https://github.com/ayehiaa/my-travel-assistant/tree/main/.agents/skills/fuzzing-dictionary
Command: npx skills add https://github.com/ayehiaa/my-travel-assistant --skill fuzzing-dictionary-ayehiaa

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Fuzzing often wastes time generating inputs that fail early validation, preventing exploration of deeper parser logic and error-handling paths.

Core Features & Use Cases

  • Domain-specific token injection: Supplies meaningful keywords, magic values, protocol commands, and format strings so mutations produce more semantically valid inputs.
  • Binary-aware dictionary entries: Uses hex escapes for non-printable bytes to reach file-format or protocol framing code paths.
  • Multi-fuzzer compatibility: Works across common fuzzers (e.g., libFuzzer via -dict and AFL++ via -x) to improve coverage consistently.

Use case example: When fuzzing a custom protocol parser, include protocol markers and expected header names in a dictionary so the fuzzer generates packets that pass initial parsing and reach deeper state-machine handlers.

Quick Start

Generate a dictionary file of quoted tokens (including hex escapes when needed) and run your fuzzer with its dictionary flag pointing to that file.

Frequently Asked Questions about fuzzing-dictionary

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

FAQPage Schema
Why does my fuzzer fail early validation and miss deeper parser logic?▼

Fuzzing fails early validation because random mutations lack the domain-specific tokens needed to pass initial checks, preventing exploration of deeper logic. Supplying a dictionary with magic values and protocol commands guides mutations past these blocks to reach deeper program states.

How do I create a fuzzing dictionary for protocol parsing?▼

To create a fuzzing dictionary for protocol parsing, generate a file of quoted tokens containing protocol markers, expected header names, and format strings. Include hex escapes for non-printable bytes to ensure mutations produce semantically valid packets that reach deeper state-machine handlers.

Does this fuzzing dictionary approach work with both libFuzzer and AFL++?▼

Yes, this fuzzing dictionary approach works with both libFuzzer and AFL++. It applies consistently across common fuzzers by utilizing their respective dictionary integration mechanisms, specifically the libFuzzer -dict flag and the AFL++ -x flag, to improve coverage.

How do I handle non-printable bytes when fuzzing file-format processors?▼

To handle non-printable bytes when fuzzing file-format processors, use hex escapes within your quoted token dictionary. This binary-aware entry format allows the fuzzer to generate inputs that successfully reach file-format or protocol framing code paths.

What is the best way to improve fuzz testing coverage for custom formats?▼

The best way to improve fuzz testing coverage for custom formats is injecting domain-specific tokens via a dictionary. This supplies meaningful keywords and magic values so mutations produce semantically valid inputs, bypassing early validation to explore deeper error-handling paths.

When do I need a fuzzing dictionary instead of pure mutation?▼

You need a fuzzing dictionary instead of pure mutation when fuzzing parsers, protocol handlers, or file-format processors where early keyword checks and magic values block coverage. Domain-specific token injection guides mutations to generate inputs that pass initial parsing and reach deeper logic.