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.