harness-writing

Write effective fuzzing harnesses for libFuzzer, AFL++, cargo-fuzz, and go-fuzz.

Updated Jan 24, 2026
One-click install
npx skills add https://github.com/amano--/call-center --skill harness-writing-amano
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: harness-writing
Source: https://github.com/amano--/call-center/tree/main/.gemini/antigravity/skills/trailofbits-security/harness-writing
Command: npx skills add https://github.com/amano--/call-center --skill harness-writing-amano

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

This Skill provides comprehensive guidance and patterns for writing effective fuzzing harnesses, which are crucial for discovering bugs in software.

Core Features & Use Cases

  • Harness Design Patterns: Learn various techniques like casting to integers, using FuzzedDataProvider, and interleaved fuzzing.
  • Tool-Specific Guidance: Get instructions for libFuzzer, AFL++, cargo-fuzz, and go-fuzz.
  • Troubleshooting & Anti-Patterns: Understand common issues and how to avoid them.
  • Use Case: A security engineer needs to set up fuzzing for a new C++ library. They use this Skill to understand how to write the LLVMFuzzerTestOneInput function, structure complex inputs, and integrate with sanitizers.

Quick Start

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

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 C++ library?

To write a fuzzing harness for a C++ library, implement the `LLVMFuzzerTestOneInput` function, structure complex inputs with `FuzzedDataProvider`, and integrate sanitizers to discover bugs.

What are common anti-patterns when writing fuzzing harnesses?

Common fuzzing harness anti-patterns include improper input structuring, non-deterministic behavior, and inadequate error handling, which can prevent successful fuzzing campaigns and hide real bugs.

Does this fuzzing guidance cover specific tools like AFL++ and cargo-fuzz?

Yes, this fuzzing guidance provides specific tool instructions for libFuzzer, AFL++, cargo-fuzz, and go-fuzz, covering essential concepts and best practices across multiple programming languages.

How do I structure complex inputs for a fuzzing campaign?

Structure complex inputs for a fuzzing campaign by using techniques like casting to integers, leveraging `FuzzedDataProvider`, and applying interleaved fuzzing patterns to generate valid test cases.

Why does my fuzzing harness fail to find bugs?

Your fuzzing harness may fail to find bugs due to common anti-patterns like non-deterministic execution, improper input structuring, or missing sanitizer integration, requiring specific troubleshooting steps.