• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

examples/H19-Jul-2021-1,939856

grammar_mutator/H19-Jul-2021-201116

honggfuzz/H19-Jul-2021-1,6461,270

libfuzzer/H19-Jul-2021-12,0407,787

libprotobuf-mutator-example/H19-Jul-2021-192116

radamsa/H19-Jul-2021-62,45049,029

rust/H19-Jul-2021-998779

symcc/H19-Jul-2021-430273

Android.bpH A D19-Jul-20212.2 KiB122105

README.mdH A D19-Jul-20212 KiB6036

README.md

1# Custom Mutators
2
3Custom mutators enhance and alter the mutation strategies of afl++.
4For further information and documentation on how to write your own, read [the docs](../docs/custom_mutators.md).
5
6## Examples
7
8The `./examples` folder contains examples for custom mutators in python and C.
9
10## Rust
11
12In `./rust`, you will find rust bindings, including a simple example in `./rust/example` and an example for structured fuzzing, based on lain, in`./rust/example_lain`.
13
14## The afl++ Grammar Mutator
15
16If you use git to clone afl++, then the following will incorporate our
17excellent grammar custom mutator:
18```sh
19git submodule update --init
20```
21
22Read the README in the [Grammar-Mutator] repository on how to use it.
23
24[Grammar-Mutator]: https://github.com/AFLplusplus/Grammar-Mutator
25
26## Production-Ready Custom Mutators
27
28This directory holds ready to use custom mutators.
29Just type "make" in the individual subdirectories.
30
31Use with e.g.
32
33`AFL_CUSTOM_MUTATOR_LIBRARY=custom_mutators/radamsa/radamsa-mutator.so afl-fuzz ....`
34
35and add `AFL_CUSTOM_MUTATOR_ONLY=1` if you only want to use the custom mutator.
36
37Multiple custom mutators can be used by separating their paths with `:` in the environment variable.
38
39## 3rd Party Custom Mutators
40
41### Superion Mutators
42
43Adrian Tiron ported the Superion grammar fuzzer to afl++, it is WIP and
44requires cmake (among other things):
45[https://github.com/adrian-rt/superion-mutator](https://github.com/adrian-rt/superion-mutator)
46
47### libprotobuf Mutators
48
49There are two WIP protobuf projects, that require work to be working though:
50
51transforms protobuf raw:
52https://github.com/bruce30262/libprotobuf-mutator_fuzzing_learning/tree/master/4_libprotobuf_aflpp_custom_mutator
53
54has a transform function you need to fill for your protobuf format, however
55needs to be ported to the updated afl++ custom mutator API (not much work):
56https://github.com/thebabush/afl-libprotobuf-mutator
57
58same as above but is for current afl++:
59https://github.com/P1umer/AFLplusplus-protobuf-mutator
60