Module libafl::mutators::mutations

source ·
Expand description

A wide variety of mutations used during fuzzing.

Structs

Bitflip mutation for inputs with a bytes vector
Adds or subtracts a random value up to ARITH_MAX to a [<$size>] at a random place in the Vec, in random byte order.
Byte decrement mutation for inputs with a bytes vector
Byteflip mutation for inputs with a bytes vector
Byte increment mutation for inputs with a bytes vector
Inserts an interesting value at a random place in the input vector
Byte negate mutation for inputs with a bytes vector
Byte random mutation for inputs with a bytes vector
Bytes copy mutation for inputs with a bytes vector
Bytes delete mutation for inputs with a bytes vector
Bytes expand mutation for inputs with a bytes vector
Bytes insert and self copy mutation for inputs with a bytes vector
Bytes insert mutation for inputs with a bytes vector
Bytes random insert mutation for inputs with a bytes vector
Bytes random set mutation for inputs with a bytes vector
Bytes set mutation for inputs with a bytes vector
Bytes swap mutation for inputs with a bytes vector
Crossover insert mutation for inputs with a bytes vector
Crossover replace mutation for inputs with a bytes vector
Adds or subtracts a random value up to ARITH_MAX to a [<$size>] at a random place in the Vec, in random byte order.
Inserts an interesting value at a random place in the input vector
Adds or subtracts a random value up to ARITH_MAX to a [<$size>] at a random place in the Vec, in random byte order.
Splice mutation for inputs with a bytes vector
Adds or subtracts a random value up to ARITH_MAX to a [<$size>] at a random place in the Vec, in random byte order.
Inserts an interesting value at a random place in the input vector

Constants

The max value that will be added or subtracted during add mutations
Interesting 8-bit values from AFL
Interesting 16-bit values from AFL
Interesting 32-bit values from AFL

Functions

Mem move between vecs
Mem move in the own vec
A simple way to set buffer contents. The compiler does the heavy lifting. see https://stackoverflow.com/a/51732799/1345238/
Decodes a dictionary token: ‘foo\x41\and"bar’ -> ‘fooA\and“bar’