Index: third_party/afl/src/docs/QuickStartGuide.txt |
diff --git a/third_party/afl/src/docs/QuickStartGuide.txt b/third_party/afl/src/docs/QuickStartGuide.txt |
new file mode 100644 |
index 0000000000000000000000000000000000000000..59752e6df43b74c98e9f7d28e981551098fdd6ef |
--- /dev/null |
+++ b/third_party/afl/src/docs/QuickStartGuide.txt |
@@ -0,0 +1,48 @@ |
+===================== |
+AFL quick start guide |
+===================== |
+ |
+You should read docs/README. It's pretty short. If you really can't, here's |
+how to hit the ground running: |
+ |
+1) Compile AFL with 'make'. If build fails, see docs/INSTALL for tips. |
+ |
+2) Find or write a reasonably fast and simple program that takes data from |
+ a file or stdin, processes it in a test-worthy way, then exits cleanly. |
+ If testing a network service, modify it to run in the foreground and read |
+ from stdin. When fuzzing a format that uses checksums, comment out the |
+ checksum verification code, too. |
+ |
+ The program must crash properly when a fault is encountered. Watch out for |
+ custom SIGSEGV or SIGABRT handlers and background processes. |
+ |
+3) Compile the program / library to be fuzzed using afl-gcc. A common way to |
+ do this would be: |
+ |
+ CC=/path/to/afl-gcc CXX=/path/to/afl-g++ ./configure --disable-shared |
+ make clean all |
+ |
+ If program build fails, ping <afl-users@googlegroups.com>. |
+ |
+4) 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 |
+ testcases/README.testcases, too. |
+ |
+5) 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...] |
+ |
+ 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. |
+ |
+6) Investigate anything shown in red in the fuzzer UI by promptly consulting |
+ docs/status_screen.txt. |
+ |
+That's it. Sit back, relax, and - time permitting - try to skim through the |
+following files: |
+ |
+ - docs/README - A general introduction to AFL, |
+ - docs/perf_tips.txt - Simple tips on how to fuzz more quickly, |
+ - docs/status_screen.txt - An explanation of the tidbits shown in the UI, |
+ - docs/parallel_fuzzing.txt - Advice on running AFL on multiple cores. |