about summary refs log tree commit diff
path: root/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'README.md')
-rw-r--r--README.md20
1 files changed, 16 insertions, 4 deletions
diff --git a/README.md b/README.md
index db6a70b5..76ef8448 100644
--- a/README.md
+++ b/README.md
@@ -66,17 +66,29 @@ A common way to do this would be:
         make clean all
 
 2. Get a small but valid input file that makes sense to the program.
-When fuzzing verbose syntax (SQL, HTTP, etc), create a dictionary as described in [dictionaries/README.md](../dictionaries/README.md), too.
+When fuzzing verbose syntax (SQL, HTTP, etc), create a dictionary as described
+in [dictionaries/README.md](../dictionaries/README.md), too.
 
 3. If the program reads from stdin, run `afl-fuzz` like so:
 
-        ./afl-fuzz -i testcase_dir -o findings_dir -- \
-          /path/to/tested/program [...program's cmdline...]
+```
+   ./afl-fuzz -i seeds_dir -o output_dir -- \
+     /path/to/tested/program [...program's cmdline...]
+```
 
-   If the program takes input from a file, you can put `@@` in the program's command line; AFL will put an auto-generated file name in there for you.
+   To add a dictionary, add `-x /path/to/dictionary.txt` to afl-fuzz.
+
+   If the program takes input from a file, you can put `@@` in the program's
+   command line; AFL will put an auto-generated file name in there for you.
 
 4. Investigate anything shown in red in the fuzzer UI by promptly consulting [docs/status_screen.md](docs/status_screen.md).
 
+5. You will find found crashes and hangs in the subdirectories `crashes/` and
+   `hangs/` in the `-o output_dir` directory. You can replay the crashes by
+   feeding them to the target, e.g.:
+   `cat output_dir/crashes/id:000000,* | /path/to/tested/program [...program's cmdline...]`
+   You can generate cores or use gdb directly to follow up the crashes.
+
 ## Contact
 
 Questions? Concerns? Bug reports?