-
Notifications
You must be signed in to change notification settings - Fork 113
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
LibAFL support? #330
Comments
I'm open to accepting pull requests that implement this. But I think we need design work before that happens. One thing to figure out before hand is what the developer experience will be like and how this will/won't affect the CLI flags/commands. Ideally we won't require passing |
FWIW Given that libFuzzer is not deprecated but in maintenance mode i'd prefer to make other fuzzers non-default options, fwiw. Configuration in Cargo.toml makes sense, we can set the configuration on |
Agreed. |
This is precisely why I opened rust-fuzz/libfuzzer#103 😁 (liblibafl...) I'm finding what libafl lacks for compatibility and working on integration there: https://github.com/AFLplusplus/LibAFL/tree/libfuzzer I'll bump here once we're compatible with |
Considering changing the underlying fuzzer can be a breaking change (because of libfuzzer specific flags?), I think it's also worth having a discussion of how we introduce breaking changes in cargo-fuzz going forward. |
Actually, in this case, no -- the libfuzzer shim we wrote supports the same flags as libfuzzer, with some exceptions that won't affect the common use case. I already use my shim with cargo-fuzz for testing purposes. |
It also generally outperforms libfuzzer, but we're still working on some additional improvements (namely, some compatibility issues with macOS and Windows) |
This is now supported by libfuzzer-sys via rust-fuzz/libfuzzer#106. |
We have now implemented compatibility with cargo-fuzz by upstreaming changes to libfuzzer-sys: rust-fuzz/libfuzzer#106 It is now possible to switch to our fuzzer by replacing the libfuzzer-sys dependency:
We are still fleshing out these changes, but our initial results show promising performance improvements (time to bug, time to coverage) over libfuzzer 😁 |
@addisoncrump if I use |
Also! How do I get stats on the amount of current coverage while it's running? |
Hey @wcampbell0x2a; let's discuss further on the LibAFL issue for this: AFLplusplus/LibAFL#981 Yes, you can use |
It looks like the upstream AFL++ change has been merged, what else needs to happen for this? |
This is definitely completed, I just can't close the issue. |
|
Going to close this issue as the initial support has landed. Feel free to open new issues and make new PRs for further improvements. |
Now that libfuzzer has been officially deprecated I was wondering if the maintainers of cargo-fuzz are interested to add LibAFL support to this crate directly.
LibAFL is not only maintained, but is written in Rust and has overall better performance in benchmarks.
So far, we maintain a fork of cargo-fuzz, called cargo-libafl and LibAFL can be a drop-in replacement for libfuzzer in general.
We can help out integrating this, but would need to know how to best add support, if this is something you are interested in.
The text was updated successfully, but these errors were encountered: