harness-writing

Write fuzzing harnesses in C++, Rust, and Go with FuzzedDataProvider.

Updated Feb 13, 2026
One-click install
npx skills add https://github.com/fjor1025/InfoSec-Framework --skill harness-writing-fjor1025
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: harness-writing
Source: https://github.com/fjor1025/InfoSec-Framework/tree/main/ClaudeSkills/plugins/testing-handbook-skills/skills/harness-writing
Command: npx skills add https://github.com/fjor1025/InfoSec-Framework --skill harness-writing-fjor1025

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

This Skill provides techniques and patterns for writing robust fuzzing harnesses, ensuring that fuzzers can effectively exercise target code and uncover bugs.

Core Features & Use Cases

  • Harness Design: Learn best practices for creating entry points for fuzzers.
  • Input Handling: Understand how to parse raw fuzzer input into structured data for your application.
  • Language-Specific Guidance: Get examples for C++, Rust, and Go.
  • Use Case: You are developing a new fuzz target for a complex data parser. This Skill will guide you on how to structure the harness to feed various data formats to the parser and maximize code coverage.

Quick Start

Use the harness-writing skill to create a minimal C++ fuzzing harness for a target 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 C++ or Rust?

To write an effective fuzzing harness, structure your entry point to feed raw fuzzer input directly to target functions. This Skill provides language-specific patterns for C++, Rust, and Go to maximize code coverage and uncover bugs.

What is the best way to parse structured data in a libFuzzer harness?

The best way to parse structured data in a libFuzzer harness is using FuzzedDataProvider. This technique extracts structured data from raw fuzzer input, allowing your target code to process valid formats and increasing bug hunting effectiveness.

Why does my fuzzing harness have low code coverage?

Fuzzing harnesses experience low code coverage due to common anti-patterns like improper input validation or unstructured data feeding. This Skill addresses these issues and offers troubleshooting techniques to improve fuzzer exercise efficiency.

Does this fuzzing harness guidance work with AFL++ and cargo-fuzz?

Yes, this fuzzing harness guidance works with AFL++ and cargo-fuzz. It provides language-specific patterns for multiple fuzzing engines, including libFuzzer, AFL++, and cargo-fuzz across C++, Rust, and Go environments.

How do I fix non-reproducible crashes in my fuzz target?

To fix non-reproducible crashes in a fuzz target, review your harness for anti-patterns and ensure proper input handling. This Skill provides troubleshooting techniques to address non-reproducible crashes and stabilize bug hunting.