We moved the old
libafl::bolts module to its own crate called
For this, imports for types in LibAFL bolts have changed in version 0.11, everything else should remain the same.
With the change we can now use a lot of low-level features of LibAFL for projects that are unrelated to fuzzing, or just completely different to LibAFL. Some cross-platform things in bolts include
- SerdeAnyMap: a map that stores and retrieves elements by type and is serializable and deserializable
- ShMem: A cross-platform (Windows, Linux, Android, MacOS) shared memory implementation
- LLMP: A fast, lock-free IPC mechanism via SharedMap
- Core_affinity: A maintained version of
core_affinitythat can be used to get core information and bind processes to cores
- Rands: Fast random number generators for fuzzing (like RomuRand)
- MiniBSOD: get and print information about the current process state including important registers.
- Tuples: Haskel-like compile-time tuple lists
- Os: OS specific stuff like signal handling, windows exception handling, pipes, and helpers for
You will need to move all
libafl::bolts:: imports to
libafl_bolts::: and add the crate dependency in your Cargo.toml (and specify feature flags there).
As only exception, the
libafl::bolts::launcher::Launcher has moved to
libafl::events::launcher::Launcher since it has fuzzer and
EventManager specific code.
If you are using
prelude, you may need to also ad
libafl_bolts in other projects.