A modular Rust library for building fast, scalable, and customizable fuzzers that work across multiple platforms and instrumentation backends.
LibAFL is an advanced fuzzing library written in Rust that provides modular, reusable components for building custom fuzzers. It solves the problem of rigid, one-size-fits-all fuzzing tools by offering a highly customizable framework that scales across cores and machines while supporting diverse platforms and instrumentation backends.
Security researchers, penetration testers, and developers who need to perform fuzz testing on software across various platforms, including embedded systems, mobile apps, and desktop applications, and require fine-grained control over their fuzzing workflows.
Developers choose LibAFL for its unique combination of high performance, scalability, and modularity, allowing them to construct tailored fuzzers without sacrificing speed or cross-platform compatibility, unlike monolithic fuzzing frameworks.
Advanced Fuzzing Library - Slot your Fuzzer together in Rust! Scales across cores and machines. For Windows, Android, MacOS, Linux, no_std, ...
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Achieves up to 120k executions per second in frida-mode on mobile devices, thanks to compile-time optimizations that minimize runtime overhead, as highlighted in the README.
Uses Low Level Message Passing (LLMP) over TCP to scale fuzzing workloads linearly across CPU cores and multiple machines, enabling efficient distributed fuzzing.
Allows swapping of any component, such as replacing BytesInput with AST-based inputs for structured fuzzing, empowering users to tailor fuzzers to specific needs.
Runs on Windows, macOS, iOS, Linux, Android, and supports no_std mode for embedded devices and hypervisors, making it versatile for diverse targets.
Requires proficiency in Rust and fuzzing concepts, with the documentation book still a work-in-progress, making onboarding challenging without prior experience.
Setup involves installing specific versions of Rust, LLVM tools, and the Just build system, which can be cumbersome and error-prone on some operating systems.
As a library, it doesn't provide ready-to-run fuzzers; users must build their own from components, which can be time-consuming compared to using pre-built tools like AFL++.