[−][src]Crate byte_mutator
Byte Mutator
byte-mutator
is a crate for defining a set of rules by which to mutate byte arrays. It
contains two main primitives: Stage
, and Mutator
. A Stage
defines how many iterations
to run via the Iterations
enum, and a Mutator
defines which MutatorType
to perform across
which range of bytes.
byte-mutator
internally uses an UndoBuffer
, which is a data structure that exposes mutable
&[u8]
slices, and can undo changes in order to reset and perform another mutation from the
clean starting state provided at initialization. This is important to avoid utterly mangling
the input; we want to identify small novel changes that produce a different output from the
target program, and then reuse that new state to perform further mutations.
Re-exports
pub use crate::fuzz_config::FuzzConfig; |
pub use crate::mutators::Mutation; |
pub use crate::mutators::MutationType; |
pub use crate::undo_buffer::UndoBuffer; |
Modules
fuzz_config | Deserializes a .toml config into a |
mutators | This module contains the available mutators. |
undo_buffer |
|
Structs
ByteMutator | A fixed size buffer with a defined set of stages of mutations that will be applied to the buffer |
Stage | Used to define groups of mutations, and how many mutations should be performed. |
Enums
Iterations | Used to limit the number of iterations in a |