Module mutators

Source
Expand description

Mutators mutate input during fuzzing.

These can be used standalone or in combination with other mutators to explore the input space more effectively. You can read more about mutators in the libAFL book

Re-exports§

pub use numeric::int_mutators;
pub use numeric::mapped_int_mutators;
pub use scheduled::*;
pub use mutations::*;
pub use token_mutations::*;
pub use havoc_mutations::*;
pub use encoded_mutations::*;
pub use mopt_mutator::*;
pub use gramatron::*;
pub use grimoire::*;
pub use mapping::*;
pub use tuneable::*;
pub use hash::*;
pub use unicode::*;
pub use nautilus::*;

Modules§

encoded_mutations
Mutations for EncodedInputs
gramatron
GramatronRandomMutator is a random mutator using grammar automatons to perform grammar-aware fuzzing.
grimoire
Grimoire is the rewritten grimoire mutator in rust. See the original repo Grimoire for more details.
hash
A wrapper around a Mutator that ensures an input really changed MutationResult::Mutated by hashing pre- and post-mutation
havoc_mutations
crate::mutators::Mutator collection equivalent to AFL++’s havoc mutations
list
Mutator definitions for ListInputs. See crate::inputs::list for details.
lua
This module implements the LuaMutator, where each mutation drops into a Lua VM to mutate bytes in a target-specific way.
mapping
Allowing mixing and matching between Mutator and crate::inputs::Input types.
mopt_mutator
The MOpt mutation scheduler used in AFL++.
multi
Mutator definitions for MultipartInputs. See crate::inputs::multi for details.
mutations
A wide variety of mutations used during fuzzing.
nautilus
Mutators for the Nautilus grammmar fuzzer See https://www.ndss-symposium.org/ndss-paper/nautilus-fishing-for-deep-bugs-with-grammars/
numeric
Mutators for integer-style inputs
scheduled
The ScheduledMutator schedules multiple mutations internally.
token_mutations
Tokens are what AFL calls extras or dictionaries. They may be inserted as part of mutations during fuzzing.
tuneable
An extension to the ScheduledMutator which schedules multiple mutations internally.
unicode
Mutators for preserving unicode string categories, which may be useful for certain targets which are primarily string-oriented.

Structs§

BoolInvertMutator
Mutator that inverts a boolean value.
MutationId
The index of a mutation in the mutations tuple
NopMutator
Mutator that does nothing, used for testing.

Enums§

MutationResult
Result of the mutation.

Traits§

MultiMutator
A mutator that takes input, and returns a vector of mutated inputs. Simple as that.
Mutator
A Mutator takes an input, and mutates it. Simple as that.
MutatorsTuple
A Tuple of Mutators that can execute multiple Mutators in a row.