Module libafl::utils[][src]

Utility functions for AFL

Structs

ChildHandle

Child Process Handle

Lehmer64Rand

XXH3 Based, hopefully speedy, rnd implementation

RomuDuoJrRand

see https://arxiv.org/pdf/2002.11331.pdf

RomuTrioRand

Extremely quick rand implementation see https://arxiv.org/pdf/2002.11331.pdf

XorShift64Rand

XXH3 Based, hopefully speedy, rnd implementation

Xoshiro256StarRand

XXH3 Based, hopefully speedy, rnd implementation

Enums

ForkResult

The ForkResult (result of a fork)

Traits

AsSlice

Can be converted to a slice

HasRand

Has a Rand field, that can be used to get random values

Rand

Ways to get random around here Please note that these are not cryptographically secure Or, even if some might be by accident, at least they are not seeded in a cryptographically secure fashion.

RandomSeed

Initialize Rand types from a source of randomness.

Functions

current_milliseconds

Gets current milliseconds since UNIX_EPOCH

current_nanos

Gets current nanoseconds since UNIX_EPOCH

current_time

Current time

find_mapping_for_address

Get the start and end address, permissions and path of the mapping containing a particular address

find_mapping_for_path

Get the start and end address of the mapping containing with a particular path

fork

Unix has forks.

startable_self

Executes the current process from the beginning, as subprocess. use start_self.status()? to wait for the child

walk_self_maps

Allows one to walk the mappings in /proc/self/maps, caling a callback function for each mapping. If the callback returns true, we stop the walk.

Type Definitions

StdRand

The standard rand implementation for LibAFL. It is usually the right choice, with very good speed and a reasonable randomness. Not cryptographically secure (which is not what you want during fuzzing ;) )