Crate libafl[][src]

Welcome to LibAFL

Re-exports

pub use fuzzer::*;

Modules

bolts

Bolts are no conceptual fuzzing elements, but they keep libafl-based fuzzers together.

corpus

Corpuses contain the testcases, either in mem, on disk, or somewhere else.

events

Eventmanager manages all events that go to other instances of the fuzzer.

executors

Executors take input, and run it in the target.

feedbacks

The feedbacks reduce observer state after each run to a single is_interesting-value. If a testcase is interesting, it may be added to a Corpus.

fuzzer

The Fuzzer is the main struct for a fuzz campaign.

generators

Generators may generate bytes or, in general, data, for inputs.

inputs

Inputs are the actual contents sent to a target for each exeuction.

mutators

Mutators mutate input during fuzzing.

observers

Observers give insights about runs of a target, such as coverage, timing, stack depth, and more.

stages

A Stage is a technique used during fuzzing, working on one crate::corpus::Corpus entry, and potentially altering it or creating new entries. A well-known Stage, for example, is the mutational stage, running multiple crate::mutators::Mutators against a crate::corpus::Testcase, potentially storing new ones, according to crate::feedbacks::Feedback. Other stages may enrich crate::corpus::Testcases with metadata.

state

The fuzzer, and state are the core pieces of every good fuzzer

stats

Keep stats, and dispaly them to the user. Usually used in a broker, or main node, of some sort.

utils

Utility functions for AFL

Macros

create_serde_registry_for_trait

Creates the serde registry for serialization and deserialization of SerdeAny. Each element needs to be registered so that it can be deserialized.

feedback_and

Variadic macro to create a chain of AndFeedback

feedback_not

Variadic macro to create a NotFeedback

feedback_or

Variadic macro to create a chain of OrFeedback

impl_serdeany

Implement a SerdeAny, registering it in the RegistryBuilder

tuple_for_each

Iterate over a tuple, executing the given expr for each element.

tuple_for_each_mut

Iterate over a tuple, executing the given expr for each element, granting mut access.

Enums

Error

Main error struct for AFL

Attribute Macros

ctor

Marks a function or static variable as a library/executable constructor. This uses OS-specific linker sections to call a specific function at load time.