aboutsummaryrefslogtreecommitdiff
path: root/custom_mutators
diff options
context:
space:
mode:
authorllzmb <46303940+llzmb@users.noreply.github.com>2021-12-05 19:04:45 +0100
committerllzmb <46303940+llzmb@users.noreply.github.com>2021-12-05 19:40:56 +0100
commitbb506de0b809f97a4221ee1b6e040dcb5f9ca56a (patch)
tree43795b444fccf02e5966d1b6d8411bd4dca5a7cc /custom_mutators
parent139db40cfc243d2de4eb1584e41867e5a44a06f9 (diff)
downloadafl++-bb506de0b809f97a4221ee1b6e040dcb5f9ca56a.tar.gz
Fix various missed issues - 1st run
Diffstat (limited to 'custom_mutators')
-rw-r--r--custom_mutators/gramatron/README.md43
1 files changed, 22 insertions, 21 deletions
diff --git a/custom_mutators/gramatron/README.md b/custom_mutators/gramatron/README.md
index 5e10f97b..8aa0cc44 100644
--- a/custom_mutators/gramatron/README.md
+++ b/custom_mutators/gramatron/README.md
@@ -1,17 +1,17 @@
# 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:
+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
Execute `./build_gramatron_mutator.sh`.
-# Running
+## Running
You have to set the grammar file to use with `GRAMATRON_AUTOMATION`:
@@ -23,26 +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]
+ ```
+ ./preprocess/prep_automaton.sh <grammar_file> <start_symbol> [stack_limit]
-E.g., ./preprocess/prep_automaton.sh ~/grammars/ruby/source.json PROGRAM
-```
+ 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
+- 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`
+ 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>
+ ```
+ ./test SanityCheck <automaton_file>
-E.g., ./test SanityCheck ~/grammars/ruby/source_automata.json
-``` \ No newline at end of file
+ E.g., ./test SanityCheck ~/grammars/ruby/source_automata.json
+ ``` \ No newline at end of file