Module mutators

Module mutators 

Source

Macrosยง

impl_increment_decrement_mutator ๐Ÿ”’

Staticsยง

INTERESTING_8 ๐Ÿ”’
INTERESTING_16 ๐Ÿ”’
Interesting 16-bit values to inject.
INTERESTING_32 ๐Ÿ”’
Interesting 32-bit values to inject.
THREE_SIGMA_MULTIPLIERS ๐Ÿ”’
Multipliers used to define the 3 standard deviation range of a Gaussian-like curve. For example, a multiplier of 0.25 means the +/-3 standard deviation bounds are +/-25% of the original value.

Traitsยง

BitMutator ๐Ÿ”’
Mutator that changes the current value by flipping a random bit.
BoundMutator
Mutator that bounds the current value of an uint or int in the given range. The mutated value is always different from the current value.
GaussianNoiseMutator ๐Ÿ”’
Mutator that changes the current value of an uint or int by applying gaussian noise.
IncrementDecrementMutator ๐Ÿ”’
Mutator that randomly increments or decrements an uint or int.
InterestingWordMutator ๐Ÿ”’
Mutator that changes the current value by randomly injecting interesting words (for uint, int, address and fixed bytes) - see https://github.com/AFLplusplus/LibAFL/blob/90cb9a2919faf386e0678870e52784070cdac4b6/crates/libafl/src/mutators/mutations.rs#L88-L123.

Functionsยง

apply_scale_to_bytes ๐Ÿ”’
Applies a floating-point scale factor to a byte slice representing an unsigned or signed integer.
flip_random_bit_in_slice ๐Ÿ”’
Flips a random bit in the given mutable byte slice.
mutate_interesting_byte_slice ๐Ÿ”’
Mutates a random byte in the given byte slice by replacing it with a randomly chosen interesting 8-bit value.
mutate_interesting_dword_slice ๐Ÿ”’
Mutates a random 4-byte (32-bit) region in the byte slice with a randomly chosen interesting 32-bit value.
mutate_interesting_word_slice ๐Ÿ”’
Mutates a random 2-byte (16-bit) region in the byte slice with a randomly chosen interesting 16-bit value.
sample_gaussian_scale ๐Ÿ”’
Samples a scale factor from a pseudo-Gaussian distribution centered around 1.0.
validate_int_mutation ๐Ÿ”’
Returns mutated int value if different from the original value and if it fits in the given size, otherwise None.
validate_uint_mutation ๐Ÿ”’
Returns mutated uint value if different from the original value and if it fits in the given size, otherwise None.