Skip to content
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

aflplusplus: init at 2.64c #85720

Closed
wants to merge 2 commits into from
Closed

Conversation

Mindavi
Copy link
Contributor

@Mindavi Mindavi commented Apr 21, 2020

This commit adds the aflplusplus package.
The aflplusplus package is a fork of the afl package, which is already
included in the nixpkgs repository. Currently, only source fuzzing mode
is supported, as I'm not too interested in supporting the qemu fuzzing
mode.

AFL or AFLplusplus wraps the compiler (clang or gcc) and adds instrumentation to aid fuzzing. It also includes a set of tools to help with corpus creation and management, and the actual fuzzing application.

Note: you need to install clang_9 to use the aflplusplus compiler and python3 for some of the included tools

Motivation for this change

I like using AFL for fuzzing, and AFLplusplus has a lot of improvements over AFL.

Things done
  • Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
  • Built on platform(s)
    • NixOS
    • macOS
    • other Linux distributions
  • Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
  • Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
  • Tested execution of all binary files (usually in ./result/bin/)
  • Determined the impact on package closure size (by running nix path-info -S before and after)
  • Ensured that relevant documentation is up to date
  • Fits CONTRIBUTING.md.

@thoughtpolice and @risicle are listed as maintainers for AFL, maybe they're interested in this too (either for maintaining or as a user).

This commit adds the aflplusplus package.
The aflplusplus package is a fork of the afl package, which is already
included in the nixpkgs repository. Currently, only source fuzzing mode
is supported, as I'm not too interested in supporting the qemu fuzzing
mode.

If anyone wants to take a stab at it, make sure to make a separate
derivation for the qemu build and, ideally, make it so that the qemu
mode/build can be disabled. This prevents issues where aflplusplus
can't be used anymore even if you don't use the qemu mode.
@risicle
Copy link
Contributor

risicle commented Apr 21, 2020

Dude, #76645

Granted, I haven't bumped it to 2.64c yet, but I've got the qemu mode working, the wine mode, radamsa, libdislocator, libtokencap...

@Mindavi
Copy link
Contributor Author

Mindavi commented Apr 21, 2020

Welp, that's awkward. Missed that completely. Will close this one and continue conversation there.

@risicle
Copy link
Contributor

risicle commented Apr 21, 2020

Heh, I discovered aflplusplus itself after semi-rewriting its qemu instrumentation only to be told that people had already done this and more google/AFL#64.

@Mindavi Mindavi deleted the init/aflplusplus branch November 21, 2021 17:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants