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
Fuzzer
is 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
Stage
is a technique used during fuzzing, working on onecrate::corpus::Corpus
entry, and potentially altering it or creating new entries. A well-knownStage
, for example, is the mutational stage, running multiplecrate::mutators::Mutator
s against acrate::corpus::Testcase
, potentially storing new ones, according tocrate::feedbacks::Feedback
. Other stages may enrichcrate::corpus::Testcase
s with metadata. - The fuzzer, and state are the core pieces of every good fuzzer
Macros
- Create
AnyMap
andNamedAnyMap
for 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
OR
operation, not executing feedbacks after the first positive result - Implement
AsAny
for a type - Implement a
SerdeAny
, registering it in theRegistryBuilder
when on std - Mark the elapsed time for the given feature
- Mark the elapsed time for the given feature
None
type to satisfy the type infearence in anOption
- Utility macro to call
Corpus::random_id
- Register a
SerdeAny
type in theRegistryBuilder
- Start the timer
- Iterate over a tuple, executing the given
expr
for each element. - Iterate over a tuple, executing the given
expr
for each element, granting mut access.
Structs
- Empty struct to use when
errors_backtrace
is 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.