about summary refs log tree commit diff
path: root/examples/custom_mutators/README.md
blob: a81538e6cd492f69662f3b843fd2510d54345b95 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# Examples for the custom mutator

These are example and helper files for the custom mutator feature.
See [docs/custom_mutators.md](../docs/custom_mutators.md) for more information

Note that if you compile with python3.7 you must use python3 scripts, and if
you use python2.7 to compile python2 scripts!

simple_example.c - most simplest example. generates a random sized buffer
          filled with 'A'

example.c - this is a simple example written in C and should be compiled to a
          shared library. Use make to compile it and produce libexamplemutator.so

example.py - this is the template you can use, the functions are there but they
           are empty

post_library_gif.so.c - fix a fuzz input to ensure it is valid for GIF

post_library_png.so.c - fix a fuzz input to ensure it is valid for PNG

simple-chunk-replace.py - this is a simple example where chunks are replaced

common.py - this can be used for common functions and helpers.
          the examples do not use this though. But you can :)

wrapper_afl_min.py - mutation of XML documents, loads XmlMutatorMin.py

XmlMutatorMin.py - module for XML mutation

custom_mutator_helpers.h is an header that defines some helper routines
like surgical_havoc_mutate() that allow to perform a randomly chosen
mutation from a subset of the havoc mutations.
If you do so, you have to specify -I /path/to/AFLplusplus/include when
compiling.