Agent skill

fuzzing-dictionary

Fuzzing dictionaries guide fuzzers with domain-specific tokens. Use when fuzzing parsers, protocols, or format-specific code.

trailofbitsgithub.com/trailofbitsGitHub ↗
claude-codeCC-BY-SA-4.0
Install
npx skills add trailofbits/skills --skill fuzzing-dictionary --agent claude-code

Same command for any agent — swap --agent for codex, cursor, copilot.

Facts
Files in the skill folder: 3
SKILL.md size: 9 KB
Bundled scripts: none
Path: plugins/testing-handbook-skills/skills/fuzzing-dictionary/SKILL.md
Open the folder on GitHub →
Where it comes from
Stars: 6,426
Language: Python
Read our review of the source →

Weekly change comes from our own snapshots, not the repository page — it measures attention, not adoption.

From the SKILL.md

# Fuzzing Dictionary A fuzzing dictionary provides domain-specific tokens to guide the fuzzer toward interesting inputs. Instead of purely random mutations, the fuzzer incorporates known keywords, magic numbers, protocol commands, and format-specific strings that are more likely to reach deeper code paths in parsers, protocol handlers, and file format processors. ## Overview Dictionaries are text files containing quoted strings that represent meaningful tokens for your target. They help fuzzers bypass early validation checks and explore code paths that would be difficult to reach through blind mutation alone. ### Key Concepts | Concept | Description | |---------|-------------| | **Dictionary Entry** | A quoted string (e.g., `"keyword"`) or key-value pair (e.g., `kw="value"`) | | **Hex Escapes** | Byte sequences like `"\xF7\xF8"` for non-printable characters | | **Token Injection** | Fuzzer inserts dictionary entries into generated inputs | | **Cross-Fuzzer Format** | Dictionary files work with libFuzzer, AFL++, and cargo-fuzz | ## When to Apply **Apply this technique when:** - Fuzzing parsers (JSON, XML, config files) - Fuzzing protocol implementations (HTTP, DNS, custom protocols)

What's inside
Steps it walks through
  1. Overview
  2. Key Concepts
  3. When to Apply
  4. Quick Reference
  5. Step-by-Step
  6. Step 1: Create Dictionary File
  7. Step 2: Generate Dictionary Content
  8. Step 3: Pass Dictionary to Fuzzer
  9. Common Patterns
  10. Pattern: Protocol Keywords
  11. Pattern: Magic Bytes and File Format Headers
  12. Pattern: Configuration File Keywords
  13. Advanced Usage
  14. Tips and Tricks
Ships with 2 files
  • agents/openai.yaml
  • assets/trail-of-bits-mark.svg
Commands it runs
grep -o '".*"' header.h > header.dict
man curl | grep -oP '^\s*(--|-)\K\S+' | sed 's/[,.]$//' | sed 's/^/"&/; s/$/&"/' | sort -u > man.dict
strings ./binary | sed 's/^/"&/; s/$/&"/' > strings.dict
export AFL_LLVM_DICT2FILE=auto.dict
Dictionary saved to auto.dict
afl-fuzz -x auto.dict -i in -o out -- ./target
afl-fuzz -x keywords.dict -x formats.dict -i in -o out -- ./target
afl-fuzz -x ./dictionary.dict -i input/ -o output/ -- ./target @@
cargo fuzz run fuzz_target -- -dict=./dictionary.dict
Convert dictionary to corpus files
More from skills
All skills →
About this skill
What does the fuzzing-dictionary skill do?

Fuzzing dictionaries guide fuzzers with domain-specific tokens. Use when fuzzing parsers, protocols, or format-specific code.

How do I install it?

Run `npx skills add trailofbits/skills --skill fuzzing-dictionary --agent claude-code` — it drops the skill into your project so the agent can pick it up. Swap the --agent value for codex, cursor or copilot if you use one of those.

Where does this skill come from?

From trailofbits/skills, a repository with 6,426 stars. We read it straight from the repository tree rather than a submitted listing, so what you see here is what is actually published.

Is a popular skill a good skill?

Not necessarily. Stars measure attention, not adoption — a repository can trend for a week and be abandoned. That is why we show the weekly change from our own snapshots next to the total, instead of a single flattering number.

Keep going