---
stable_id: skills/skills-sh-trailofbits-skills-harness-writing
type: skills
title: skills-sh-trailofbits-skills-harness-writing
summary: >-
  # Structure-Aware Fuzzing with libFuzzer

  Generation-based fuzzers usually target a single input type, generating inputs

  according to a pre-defined grammar. Good examples of such fuzzers are

  [csmith](https://github.com/csmith-project/csmith/) (generates valid C
  programs)

  and

  [Peach](https://peachtech.gitlab.io/peach-fuzzer-community/WhatIsPeach.html)

  (generates inputs of any type, but requires such a

  type to be expressed as a grammar definition).

  Coverage-guided mutation-based fuzzers, such as

  [libFuzzer](http://libfuzzer.info) or
tags:
  - skills-sh
  - skills-sh-all-time
source_url: https://raw.githubusercontent.com/google/fuzzing/master/docs/structure-aware-fuzzing.md
license: ""
upstream_ref: https://skills.sh/trailofbits/skills/harness-writing
github_stars: null
github_forks: null
github_is_organization: null
retrieved_at: 2026-06-11T08:32:55.402Z
content_sha256: 8d02acadc413ae8aca770761382c32a0d468a4616ecca91bcabe171c0c89587a
---
