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’