/butterfly

LibAFL components for stateful fuzzing

Primary LanguageRustMIT LicenseMIT



butterfly

   

Description

This crate brings stateful fuzzing capabilities to LibAFL via

  1. Packet-based Inputs: Inputs that are vectors of packets and can be loaded from pcap files
  2. Packet-based Mutations: Mutators that can be applied to selected packets only (havoc and protocol-aware mutations like packet insertion, deletion and reordering)
  3. State-Graph Inference: Observe which states your target goes through as it processes the individual packets and identify when it enters a new state or makes a new state transition

Installation

butterfly uses rust 2021 edition, so execute

rustup toolchain install nightly

and in your Cargo.toml insert

[dependencies]
butterfly = { version = "0.2.2", package = "butterfly-fuzz" }

How to use

Start with the wiki and the docs. Also, some examples may be helpful.

For questions, feature requests or bug reports please create an issue.