Expand description
Welcome to LibAFL
Re-exports
Modules
- Bolts are no conceptual fuzzing elements, but they keep libafl-based fuzzers together.
- Corpuses contain the testcases, either in memory, on disk, or somewhere else.
- Eventmanager manages all events that go to other instances of the fuzzer.
- Executors take input, and run it in the target.
- 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. - The
Fuzzeris the main struct for a fuzz campaign. - Generators may generate bytes or, in general, data, for inputs.
- Inputs are the actual contents sent to a target for each exeuction.
- Keep stats, and display them to the user. Usually used in a broker, or main node, of some sort.
- Mutators mutate input during fuzzing.
- Observers give insights about runs of a target, such as coverage, timing, stack depth, and more.
- The purpose of this module is to alleviate imports of many components by adding a glob import.
- Schedule the access to the Corpus.
- A
Stageis a technique used during fuzzing, working on onecrate::corpus::Corpusentry, and potentially altering it or creating new entries. A well-knownStage, for example, is the mutational stage, running multiplecrate::mutators::Mutators against acrate::corpus::Testcase, potentially storing new ones, according tocrate::feedbacks::Feedback. Other stages may enrichcrate::corpus::Testcases with metadata. - The fuzzer, and state are the core pieces of every good fuzzer
Macros
- Create
AnyMapandNamedAnyMapfor a given trait - Variadic macro to create a chain of
AndFeedback - Variadic macro to create a chain of (fast)
AndFeedback - Variadic macro to create a
NotFeedback - Variadic macro to create a chain of
OrFeedback - Combines multiple feedbacks with an
ORoperation, not executing feedbacks after the first positive result - Implement
AsAnyfor a type - Implement a
SerdeAny, registering it in theRegistryBuilderwhen on std - Mark the elapsed time for the given feature
- Mark the elapsed time for the given feature
Nonetype to satisfy the type infearence in anOption- Utility macro to call
Corpus::random_id - Register a
SerdeAnytype in theRegistryBuilder - Start the timer
- Iterate over a tuple, executing the given
exprfor each element. - Iterate over a tuple, executing the given
exprfor each element, granting mut access.
Structs
- Empty struct to use when
errors_backtraceis disabled
Enums
- Main error struct for
LibAFL
Attribute Macros
- 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.