forked from aflgo/aflgo
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
84bb23e
commit b7a4a5f
Showing
24 changed files
with
233 additions
and
80 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
================ | ||
AFL dictionaries | ||
================ | ||
|
||
(See ../docs/README for the general instruction manual.) | ||
|
||
This subdirectory contains a set of dictionaries that can be used in | ||
conjunction with the -x option to allow the fuzzer to effortlessly explore the | ||
grammar of some of the more verbose data formats or languages. The basic | ||
principle behind the operation of fuzzer dictionaries is outlined in section 9 | ||
of the "main" README for the project. | ||
|
||
Custom dictionaries can be added at will. They should consist of a | ||
reasonably-sized set of rudimentary syntax units that the fuzzer will then try | ||
to clobber together in various ways. Snippets between 2 and 16 bytes are usually | ||
the sweet spot. | ||
|
||
Custom dictionaries can be created in two ways: | ||
|
||
- By creating a new directory and placing each token in a separate file, in | ||
which case, there is no need to escape or otherwise format the data. | ||
|
||
- By creating a flat text file where tokens are listed one per line in the | ||
format of name="value". The alphanumeric name is ignored and can be omitted, | ||
although it is a convenient way to document the meaning of a particular | ||
token. The value must appear in quotes, with hex escaping (\xNN) applied to | ||
all non-printable, high-bit, or otherwise problematic characters (\\ and \" | ||
shorthands are recognized, too). | ||
|
||
The fuzzer auto-selects the appropriate mode depending on whether the -x | ||
parameter is a file or a directory. | ||
|
||
In the file mode, every name field can be optionally followed by @<num>, e.g.: | ||
|
||
keyword_foo@1 = "foo" | ||
|
||
Such entries will be loaded only if the requested dictionary level is equal or | ||
higher than this number. The default level is zero; a higher value can be set | ||
by appending @<num> to the dictionary file name, like so: | ||
|
||
-x path/to/dictionary.dct@2 | ||
|
||
Good examples of dictionaries can be found in xml.dict and png.dict. |
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -13,9 +13,21 @@ Want to stay in the loop on major new features? Join our mailing list by | |
sending a mail to <[email protected]>. | ||
|
||
Not sure if you should upgrade? The lowest currently recommended version | ||
is 2.21b. If you're stuck on an earlier release, it's strongly advisable | ||
is 2.23b. If you're stuck on an earlier release, it's strongly advisable | ||
to get on with the times. | ||
|
||
-------------- | ||
Version 2.28b: | ||
-------------- | ||
|
||
- Added "life pro tips" to docs/. | ||
|
||
- Moved testcases/_extras/ to dictionaries/ for visibility. | ||
|
||
- Made minor improvements to install scripts. | ||
|
||
- Added an important safety tip. | ||
|
||
-------------- | ||
Version 2.27b: | ||
-------------- | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,128 @@ | ||
# =================== | ||
# AFL "Life Pro Tips" | ||
# =================== | ||
# | ||
# Bite-sized advice for those who understand the basics, but can't be bothered | ||
# to read or memorize every other piece of documentation for AFL. | ||
# | ||
|
||
% | ||
|
||
Get more bang for your buck by using fuzzing dictionaries. | ||
See dictionaries/README.dictionaries to learn how. | ||
|
||
% | ||
|
||
You can get the most out of your hardware by parallelizing AFL jobs. | ||
See docs/parallel_fuzzing.txt for step-by-step tips. | ||
|
||
% | ||
|
||
Improve the odds of spotting memory corruption bugs with libdislocator.so! | ||
It's easy. Consult libdislocator/README.dislocator for usage tips. | ||
|
||
% | ||
|
||
Want to understand how your target parses a particular input file? | ||
Try the bundled afl-analyze tool; it's got colors and all! | ||
|
||
% | ||
|
||
You can visually monitor the progress of your fuzzing jobs. | ||
Run the bundled afl-plot utility to generate browser-friendly graphs. | ||
|
||
% | ||
|
||
Need to monitor AFL jobs programatically? Check out the fuzzer_stats file | ||
in the AFL output dir or try afl-whatsup. | ||
|
||
% | ||
|
||
Puzzled by something showing up in red or purple in the AFL UI? | ||
It could be important - consult docs/status_screen.txt right away! | ||
|
||
% | ||
|
||
Know your target? Convert it to persistent mode for a huge performance gain! | ||
Consult section #5 in llvm_mode/README.llvm for tips. | ||
|
||
% | ||
|
||
Using clang? Check out llvm_mode/ for a faster alternative to afl-gcc! | ||
|
||
% | ||
|
||
Did you know that AFL can fuzz closed-source or cross-platform binaries? | ||
Check out qemu_mode/README.qemu for more. | ||
|
||
% | ||
|
||
Did you know that afl-fuzz can minimize any test case for you? | ||
Try the bundled afl-tmin tool - and get small repro files fast! | ||
|
||
% | ||
|
||
Need to fix a checksum? It's easy to do with an output postprocessor! | ||
See experimental/post_library to learn more. | ||
|
||
% | ||
|
||
Not sure if a crash is exploitable? AFL can help you figure it out. Specify | ||
-C to enable the peruvian were-rabbit mode. See section #10 in README for more. | ||
|
||
% | ||
|
||
Trouble dealing with a machine uprising? Relax, we've all been there. | ||
Find essential survival tips at http://lcamtuf.coredump.cx/prep/. | ||
|
||
% | ||
|
||
AFL-generated corpora can be used to power other testing processes. | ||
See section #2 in README for inspiration - it tends to pay off! | ||
|
||
% | ||
|
||
Want to automatically spot non-crashing memory handling bugs? | ||
Try running an AFL-generated corpus through ASAN, MSAN, or Valgrind. | ||
|
||
% | ||
|
||
Good selection of input files is critical to a successful fuzzing job. | ||
See section #5 in README (or docs/perf_tips.txt) for pro tips. | ||
|
||
% | ||
|
||
You can improve the odds of automatically spotting stack corruption issues. | ||
Specify AFL_HARDEN=1 in the environment to enable hardening flags. | ||
|
||
% | ||
|
||
Bumping into problems with non-reproducible crashes? It happens, but usually | ||
isn't hard to diagnose. See section #7 in README for tips. | ||
|
||
% | ||
|
||
Fuzzing is not just about memory corruption issues in the codebase. Add some | ||
sanity-checking assert() / abort() statements to effortlessly catch logic bugs. | ||
|
||
% | ||
|
||
Hey kid... pssst... want to figure out how AFL really works? | ||
Check out docs/technical_details.txt for all the gory details in one place! | ||
|
||
% | ||
|
||
There's a ton of third-party helper tools designed to work with AFL! | ||
Be sure to check out docs/sister_projects.txt before writing your own. | ||
|
||
% | ||
|
||
Need to fuzz the command-line arguments of a particular program? | ||
You can find a simple solution in experimental/argv_fuzzing. | ||
|
||
% | ||
|
||
Attacking a format that uses checksums? Remove the checksum code or | ||
use a postprocessor! See experimental/post_library/ for more. | ||
|
||
% |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.