#libafl #stateful #fuzzing #security #state-transition

nightly butterfly-fuzz

LibAFL components for stateful fuzzing

5 releases

0.2.2 Aug 6, 2022
0.2.1 Aug 4, 2022
0.2.0 Jul 16, 2022
0.1.1 Jul 13, 2022
0.1.0 Jul 13, 2022

#6 in #libafl

MIT license

79KB
1.5K SLoC



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.

Dependencies

~7–37MB
~520K SLoC