Name | Date | Size | #Lines | LOC | ||
---|---|---|---|---|---|---|
.. | 03-May-2022 | - | ||||
examples/ | H | 19-Jul-2021 | - | 1,939 | 856 | |
grammar_mutator/ | H | 19-Jul-2021 | - | 201 | 116 | |
honggfuzz/ | H | 19-Jul-2021 | - | 1,646 | 1,270 | |
libfuzzer/ | H | 19-Jul-2021 | - | 12,040 | 7,787 | |
libprotobuf-mutator-example/ | H | 19-Jul-2021 | - | 192 | 116 | |
radamsa/ | H | 19-Jul-2021 | - | 62,450 | 49,029 | |
rust/ | H | 19-Jul-2021 | - | 998 | 779 | |
symcc/ | H | 19-Jul-2021 | - | 430 | 273 | |
Android.bp | H A D | 19-Jul-2021 | 2.2 KiB | 122 | 105 | |
README.md | H A D | 19-Jul-2021 | 2 KiB | 60 | 36 |
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