harness-writing

Create fuzzing harnesses with structured input extraction for libFuzzer and AFL++.

1|Updated Dec 30, 2025
One-click install
npx skills add https://github.com/statick88/dotfiles --skill harness-writing-statick88
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: harness-writing
Source: https://github.com/statick88/dotfiles/tree/main/amp/.agents/skills/harness-writing
Command: npx skills add https://github.com/statick88/dotfiles --skill harness-writing-statick88

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

This Skill provides techniques and best practices for writing robust fuzzing harnesses, ensuring that fuzzers can effectively test your code and uncover bugs.

Core Features & Use Cases

  • Harness Design: Learn how to create entry points for fuzzers that correctly feed data to your System Under Test (SUT).
  • Input Structuring: Understand how to parse raw fuzzer input into meaningful data types for your application.
  • Use Case: When developing a new fuzz target for a complex file parser, use this Skill to guide the creation of a harness that correctly structures the input data and exercises all relevant parsing logic.

Quick Start

Use the harness-writing skill to create a minimal C++ fuzzing harness for a given function.

Frequently Asked Questions about harness-writing

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

FAQPage Schema
How do I write an effective fuzzing harness for a complex file parser?

To write an effective fuzzing harness, design entry points that correctly feed raw data to your System Under Test and parse the input into structured data types. This ensures the fuzzer exercises all relevant parsing logic to uncover bugs.

What is the best way to structure raw fuzzer input for my application?

The best way to structure raw fuzzer input is to parse the unstructured data from the fuzzer into meaningful, application-specific data types before feeding it to your System Under Test, ensuring the target logic is exercised properly.

How do I create a minimal fuzz target in C++ for libFuzzer or AFL++?

You can create a minimal C++ fuzz target by defining an entry point that accepts raw input and passes it to your target function, satisfying requirements for structured input extraction and determinism within fuzzing frameworks like libFuzzer and AFL++.

Does this fuzzing harness guidance support multiple programming languages?

Yes, the fuzzing harness guidance provides techniques for writing effective harnesses across multiple programming languages, detailing key concepts, application timing, and step-by-step implementation for diverse development environments.

Why does my fuzzing harness fail to find bugs in my target code?

A fuzzing harness may fail to find bugs if the entry point does not correctly feed data to the System Under Test or if raw input is not parsed into meaningful data types, preventing the fuzzer from exercising all relevant parsing logic.