Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/rust-fuzz/afl.rs
π Fuzzing Rust code with American Fuzzy Lop
https://github.com/rust-fuzz/afl.rs
afl fuzz-testing fuzzing rust
Last synced: 28 days ago
JSON representation
π Fuzzing Rust code with American Fuzzy Lop
- Host: GitHub
- URL: https://github.com/rust-fuzz/afl.rs
- Owner: rust-fuzz
- License: apache-2.0
- Created: 2015-04-08T23:19:35.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2024-04-01T19:56:09.000Z (7 months ago)
- Last Synced: 2024-04-14T16:14:34.912Z (7 months ago)
- Topics: afl, fuzz-testing, fuzzing, rust
- Language: Rust
- Homepage: https://rust-fuzz.github.io/book/afl.html
- Size: 7.25 MB
- Stars: 1,567
- Watchers: 31
- Forks: 102
- Open Issues: 32
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGES.md
- License: LICENSE
Awesome Lists containing this project
- awesome-rust-cn - rust-fuzz/afl.rs - ci.org/rust-fuzz/afl.rs.svg?branch=master">](https://travis-ci.org/rust-fuzz/afl.rs) (Development tools / Testing)
- awesome-rust - rust-fuzz/afl.rs - ci.org/rust-fuzz/afl.rs.svg?branch=master">](https://travis-ci.org/rust-fuzz/afl.rs) (Development tools / Testing)
- awesome-rust - rust-fuzz/afl.rs
- awesome-rust-cn - rust-fuzz/afl.rs
- awesome-rust-testing - afl.rs
- awesome-code-for-gamedev - afl - a popular, effective, and modern fuzz testing tool based on AFL. (Testing / Fuzz Testing)
- awesome-rust-zh - rust-fuzz/afl.rs - δΈδΈͺ Rust fuzzerοΌδ½Ώη¨[AFL](http://lcamtuf.coredump.cx/afl/) [<img src="https://api.travis-ci.org/rust-fuzz/afl.rs.svg?branch=master">](https://travis-ci.org/rust-fuzz/afl.rs) (εΌεε·₯ε · / ζ΅θ―)
- awesome-rust - rust-fuzz/afl.rs - A Rust fuzzer, using [AFL](https://lcamtuf.coredump.cx/afl/) (Development tools / Testing)
- awesome-rust - rust-fuzz/afl.rs - ci.org/rust-fuzz/afl.rs.svg?branch=master">](https://travis-ci.org/rust-fuzz/afl.rs) (εΌεε·₯ε · Development tools / ζ΅θ― Testing)
- fucking-awesome-rust - rust-fuzz/afl.rs - A Rust fuzzer, using π [AFL](lcamtuf.coredump.cx/afl/) (Development tools / Testing)
- fucking-awesome-rust - rust-fuzz/afl.rs - A Rust fuzzer, using π [AFL](lcamtuf.coredump.cx/afl/) (Development tools / Testing)
README
afl.rsFuzzing Rust code with AFLplusplus
## What is it?
[Fuzz testing][] is a software testing technique used to find security and stability issues by providing pseudo-random data as input to the software. [AFLplusplus][] is a popular, effective, and modern fuzz testing tool based on [AFL][american-fuzzy-lop]. This library, afl.rs, allows one to run AFLplusplus on code written in [the Rust programming language][rust].
## Documentation
Documentation can be found in the [Rust Fuzz Book](https://rust-fuzz.github.io/book/afl.html).
## What does it look like?
Screen recording of AFL running on Rust code.
## Hints
Before starting to fuzz, you should reconfigure your system for optimal
performance and better crash detection. This can be done with `cargo afl system-config`.
But this subcommand requires root, so it uses sudo internally. Hence, you might need to enter
your password.By default, the AFL++ [CMPLOG](https://github.com/AFLplusplus/AFLplusplus/blob/stable/instrumentation/README.cmplog.md)
feature is activated, which helps to achieve good code coverage.
However, it is not beneficial to activate CMPLOG on more than two instances.
So if you run multiple AFL++ instances on your fuzzing target, you can disable CMPLOG by specifying the command line parameter '-c -'.This [document](https://github.com/AFLplusplus/AFLplusplus/blob/stable/docs/fuzzing_in_depth.md)
will familiarize you with AFL++ features to help in running a successful fuzzing campaign.By default, the `fuzzing` config is set when `cargo-afl` is used to build. If you want to prevent this, just set the
environment variable `AFL_NO_CFG_FUZZING` to `1` when building.[conditional compilation]: https://doc.rust-lang.org/reference.html#conditional-compilation
[Cargo feature]: http://doc.crates.io/manifest.html#the-[features]-section
[example-defer]: https://github.com/frewsxcv/afl.rs/blob/master/examples/deferred-init.rs
[LLVM pass]: https://github.com/frewsxcv/afl.rs/blob/master/plugin/src/afl-llvm-pass.o.cc
[example]: https://github.com/frewsxcv/afl.rs/blob/master/afl/examples/hello.rs
[Cargo]: http://doc.crates.io/
[unresolved issue]: https://github.com/frewsxcv/afl.rs/issues/11
[fuzz testing]: https://en.wikipedia.org/wiki/Fuzz_testing
[rustup]: https://rustup.rs/
[american-fuzzy-lop]: http://lcamtuf.coredump.cx/afl/
[AFLplusplus]: https://aflplus.plus/
[rust]: https://www.rust-lang.org