aboutsummaryrefslogtreecommitdiff
path: root/custom_mutators
diff options
context:
space:
mode:
authorvan Hauser <vh@thc.org>2021-12-07 15:18:32 +0100
committerGitHub <noreply@github.com>2021-12-07 15:18:32 +0100
commit1f6c72ea1baea69b2dc5b3a68bfacbc00652bc66 (patch)
treea5a7ed81710c1dec50f0aa661b53c0cd884a4da2 /custom_mutators
parent5469112db90741cb06c0979313938d83e63f793f (diff)
parentbb506de0b809f97a4221ee1b6e040dcb5f9ca56a (diff)
downloadafl++-1f6c72ea1baea69b2dc5b3a68bfacbc00652bc66.tar.gz
Merge pull request #1191 from llzmb/docs_quality_assurance
Docs content - quality assurance
Diffstat (limited to 'custom_mutators')
-rw-r--r--custom_mutators/README.md1
-rw-r--r--custom_mutators/gramatron/README.md52
-rw-r--r--custom_mutators/libfuzzer/README.md4
3 files changed, 32 insertions, 25 deletions
diff --git a/custom_mutators/README.md b/custom_mutators/README.md
index fa877f34..0289e150 100644
--- a/custom_mutators/README.md
+++ b/custom_mutators/README.md
@@ -15,6 +15,7 @@ In `./rust`, you will find rust bindings, including a simple example in `./rust/
If you use git to clone AFL++, then the following will incorporate our
excellent grammar custom mutator:
+
```sh
git submodule update --init
```
diff --git a/custom_mutators/gramatron/README.md b/custom_mutators/gramatron/README.md
index 91f93355..8aa0cc44 100644
--- a/custom_mutators/gramatron/README.md
+++ b/custom_mutators/gramatron/README.md
@@ -1,19 +1,19 @@
# GramaTron
-Gramatron is a coverage-guided fuzzer that uses grammar automatons to perform
-grammar-aware fuzzing. Technical details about our framework are available
-in the [ISSTA'21 paper](https://nebelwelt.net/files/21ISSTA.pdf).
-The artifact to reproduce the experiments presented in the paper are present
-in `artifact/`. Instructions to run a sample campaign and incorporate new
-grammars is presented below:
+GramaTron is a coverage-guided fuzzer that uses grammar automatons to perform
+grammar-aware fuzzing. Technical details about our framework are available in
+the [ISSTA'21 paper](https://nebelwelt.net/files/21ISSTA.pdf). The artifact to
+reproduce the experiments presented in the paper are present in `artifact/`.
+Instructions to run a sample campaign and incorporate new grammars is presented
+below:
-# Compiling
+## Compiling
-Simply execute `./build_gramatron_mutator.sh`
+Execute `./build_gramatron_mutator.sh`.
-# Running
+## Running
-You have to set the grammar file to use with `GRAMMATRON_AUTOMATION`:
+You have to set the grammar file to use with `GRAMATRON_AUTOMATION`:
```
export AFL_DISABLE_TRIM=1
@@ -23,23 +23,27 @@ export GRAMATRON_AUTOMATION=grammars/ruby/source_automata.json
afl-fuzz -i in -o out -- ./target
```
-# Adding and testing a new grammar
+## Adding and testing a new grammar
-- Specify in a JSON format for CFG. Examples are correspond `source.json` files
+- Specify in a JSON format for CFG. Examples are correspond `source.json` files.
- Run the automaton generation script (in `src/gramfuzz-mutator/preprocess`)
which will place the generated automaton in the same folder.
-```
-./preprocess/prep_automaton.sh <grammar_file> <start_symbol> [stack_limit]
-Eg. ./preprocess/prep_automaton.sh ~/grammars/ruby/source.json PROGRAM
-```
-- If the grammar has no self-embedding rules then you do not need to pass the
- stack limit parameter. However, if it does have self-embedding rules then you
+ ```
+ ./preprocess/prep_automaton.sh <grammar_file> <start_symbol> [stack_limit]
+
+ E.g., ./preprocess/prep_automaton.sh ~/grammars/ruby/source.json PROGRAM
+ ```
+
+- If the grammar has no self-embedding rules, then you do not need to pass the
+ stack limit parameter. However, if it does have self-embedding rules, then you
need to pass the stack limit parameter. We recommend starting with `5` and
- then increasing it if you need more complexity
-- To sanity-check that the automaton is generating inputs as expected you can use the `test` binary housed in `src/gramfuzz-mutator`
-```
-./test SanityCheck <automaton_file>
+ then increasing it if you need more complexity.
+- To sanity-check that the automaton is generating inputs as expected, you can
+ use the `test` binary housed in `src/gramfuzz-mutator`.
-Eg. ./test SanityCheck ~/grammars/ruby/source_automata.json
-```
+ ```
+ ./test SanityCheck <automaton_file>
+
+ E.g., ./test SanityCheck ~/grammars/ruby/source_automata.json
+ ``` \ No newline at end of file
diff --git a/custom_mutators/libfuzzer/README.md b/custom_mutators/libfuzzer/README.md
index fb3025f2..cb4773b7 100644
--- a/custom_mutators/libfuzzer/README.md
+++ b/custom_mutators/libfuzzer/README.md
@@ -11,9 +11,11 @@ Note that this is currently a simple implementation and it is missing two featur
* Dictionary support
To update the source, all that is needed is that FuzzerDriver.cpp has to receive
+
```
#include "libfuzzer.inc"
```
+
before the closing namespace bracket.
It is also libfuzzer.inc where the configuration of the libfuzzer mutations
@@ -21,4 +23,4 @@ are done.
> Original repository: https://github.com/llvm/llvm-project
> Path: compiler-rt/lib/fuzzer/*.{h|cpp}
-> Source commit: df3e903655e2499968fc7af64fb5fa52b2ee79bb
+> Source commit: df3e903655e2499968fc7af64fb5fa52b2ee79bb \ No newline at end of file