2.2 KiB
LibAFL, the fuzzer library.
Advanced Fuzzing Library - Slot your own fuzzers together and extend their features using Rust.
LibAFL is written and maintained by Andrea Fioraldi andreafioraldi@gmail.com and Dominik Maier mail@dmnk.co.
What
LibAFL is a collection of reusable pieces of fuzzers, written in Rust.
It offers a main crate that provide building blocks for custom fuzzers, libafl, a library containing common code that can be used for targets instrumentation, libafl_targets, and a library providing facilities to wrap compilers, libafl_cc.
LibAFL is fast, multi-platform, no_std compatible, and scales over cores (and machines in the near future!).
Getting started
Clone the LibAFL repository with
git clone https://github.com/AFLplusplus/LibAFL
Build the library using
cargo build --release
Build the API documentation with
cargo doc
Browse the LibAFL book with (requires mdbook)
cd docs && mdbook serve
We collect example fuzzers in ./fuzzers
.
The best-tested fuzzer is ./fuzzers/libfuzzer_libpng
, a multicore libfuzzer-like fuzzer using LibAFL for a libpng harness.
Resources
-
Our RC3 talk explaining the core concepts
Contributing
Check the TODO.md file for features that we plan to support.
For bugs, feel free to open issues or contact us directly. Thank you for your support. <3
License
Licensed under either of Apache License, Version 2.0 or MIT license at your option.Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this crate by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.