Skip to content

Commit

Permalink
rebuilding site lun. 09 oct. 2023 15:54:38 CEST
Browse files Browse the repository at this point in the history
  • Loading branch information
andreafioraldi committed Oct 9, 2023
1 parent 309eaa1 commit 4888d45
Show file tree
Hide file tree
Showing 112 changed files with 1,037 additions and 295 deletions.
2 changes: 1 addition & 1 deletion AFLplusplus
Submodule AFLplusplus updated 57 files
+12 −7 GNUmakefile
+6 −4 GNUmakefile.gcc_plugin
+5 −3 GNUmakefile.llvm
+7 −6 README.md
+3 −1 TODO.md
+54 −0 afl-addseeds
+3 −3 afl-persistent-config
+3 −3 afl-system-config
+265 −138 afl-whatsup
+4 −0 benchmark/COMPARISON
+42 −0 benchmark/benchmark.sh
+1 −0 custom_mutators/aflpp/standalone/aflpp-standalone.c
+1 −1 custom_mutators/aflpp_tritondse/aflpp_tritondse.py
+3 −0 custom_mutators/examples/README.md
+679 −0 custom_mutators/examples/elf_header_mutator.c
+25 −3 docs/Changelog.md
+38 −2 docs/FAQ.md
+1 −0 docs/INSTALL.md
+2 −2 docs/afl-fuzz_approach.md
+17 −5 docs/env_variables.md
+24 −16 docs/fuzzing_in_depth.md
+8 −0 frida_mode/src/instrument/instrument_arm64.c
+4 −2 frida_mode/src/lib/lib.c
+1 −1 frida_mode/test/png/GNUmakefile
+2 −1 frida_mode/util/frida_get_symbol_addr.sh
+9 −7 include/afl-fuzz.h
+11 −10 include/afl-mutations.h
+7 −11 include/config.h
+38 −17 include/debug.h
+7 −0 include/envs.h
+3 −0 include/forkserver.h
+3 −3 instrumentation/afl-compiler-rt.o.c
+20 −4 instrumentation/compare-transform-pass.so.cc
+1 −1 nyx_mode/LIBNYX_VERSION
+1 −1 nyx_mode/PACKER_VERSION
+1 −1 nyx_mode/QEMU-Nyx
+1 −1 nyx_mode/QEMU_NYX_VERSION
+24 −3 nyx_mode/README.md
+1 −1 nyx_mode/libnyx
+1 −1 nyx_mode/packer
+5 −3 src/afl-cc.c
+51 −13 src/afl-forkserver.c
+3 −2 src/afl-fuzz-bitmap.c
+134 −29 src/afl-fuzz-init.c
+14 −3 src/afl-fuzz-one.c
+38 −28 src/afl-fuzz-queue.c
+196 −140 src/afl-fuzz-redqueen.c
+21 −0 src/afl-fuzz-state.c
+32 −10 src/afl-fuzz-stats.c
+119 −31 src/afl-fuzz.c
+0 −21 src/afl-performance.c
+1 −0 src/afl-showmap.c
+1 −0 test/unittests/unit_rand.c
+13 −13 unicorn_mode/helper_scripts/unicorn_dumper_pwndbg.py
+6 −1 utils/afl_untracer/Makefile
+33 −1 utils/afl_untracer/afl-untracer.c
+1 −1 utils/qbdi_mode/build.sh
2 changes: 1 addition & 1 deletion LibAFL
Submodule LibAFL updated 452 files
4 changes: 2 additions & 2 deletions config.toml
Original file line number Diff line number Diff line change
Expand Up @@ -14,5 +14,5 @@ publishDir = "docs"
ogimage = "ogimage.png"
BookMenuBundle = "/menu"
BookLogo = 'aflpp_logo_256x256_w.png'
ReleaseName = "4.07c"
ReleaseURL = "https://github.com/AFLplusplus/AFLplusplus/releases/tag/4.07c"
ReleaseName = "4.08c"
ReleaseURL = "https://github.com/AFLplusplus/AFLplusplus/releases/tag/v4.08c"
28 changes: 25 additions & 3 deletions content/docs/Changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,28 @@ type: docs
This is the list of all noteworthy changes made in every public
release of the tool. See README.md for the general instruction manual.

### Version ++4.08a (dev)
### Version ++4.09a (dev)
- afl-fuzz:
- added `AFL_FINAL_SYNC` which forces a final fuzzer sync (also for `-F`)
before terminating.
- added AFL_IGNORE_SEED_PROBLEMS to skip over seeds that time out instead
of exiting with an error message
- allow -S/-M naming up to 50 characters (from 24)
- afl-whatsup:
- detect instanced that are starting up and show them as such as not dead
- now also shows coverage reached
- option -m shows only very relevant stats
- option -n will not use color in the output
- instrumentation:
- fix for a few string compare transform functions for LAF
- frida_mode:
- fixes support for large map offsets
- added new tool afl-addseeds that adds new seeds to a running campaign
- added benchmark/benchmark.sh if you want to see how good your fuzzing
speed is in comparison to other setups.


### Version ++4.08c (release)
- afl-fuzz:
- new mutation engine: mutations that favor discovery more paths are
prefered until no new finds for 10 minutes then switching to mutations
Expand All @@ -21,6 +42,9 @@ type: docs
command line tool! See custom_mutators/aflpp/standalone/
- display the state of the fuzzing run in the UI :-)
- fix timeout setting if '+' is used or a session is restarted
- -l X option to enable base64 transformation solving
- allow to disable CMPLOG with '-c -' (e.g. afl.rs enforces '-c 0' on
every instance which is counterproductive).
- afl-cmin/afl-cmin.bash:
- fixed a bug inherited from vanilla AFL where a coverage of
map[123] = 11 would be the same as map[1123] = 1
Expand All @@ -38,7 +62,6 @@ type: docs
- qemu_mode:
- added qemu_mode/utils/qemu_get_symbol_addr.sh


### Version ++4.07c (release)
- afl-fuzz:
- reverse reading the seeds only on restarts (increases performance)
Expand Down Expand Up @@ -67,7 +90,6 @@ type: docs
- TritonDSE in custom_mutators/aflpp_tritondse
- SymQEMU in custom_mutators/symqemu


### Version ++4.06c (release)
- afl-fuzz:
- ensure temporary file descriptor is closed when not used
Expand Down
40 changes: 38 additions & 2 deletions content/docs/FAQ.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,8 @@ If you find an interesting or important question missing, submit it via
which then implemented their own research and features, making it now by far
the most flexible and feature rich guided fuzzer available as open source. And
in independent fuzzing benchmarks it is one of the best fuzzers available,
e.g., [Fuzzbench
Report](https://www.fuzzbench.com/reports/2020-08-03/index.html).
e.g.,
[Fuzzbench Report](https://www.fuzzbench.com/reports/2020-08-03/index.html).
</p></details>

<details>
Expand Down Expand Up @@ -109,6 +109,42 @@ If you find an interesting or important question missing, submit it via
to itself, this too would be an edge.
</p></details>

<details>
<summary id="should-you-ever-stop-afl-fuzz-minimize-the-corpus-and-restart">Should you ever stop afl-fuzz, minimize the corpus and restart?</summary><p>

To stop afl-fuzz, minimize it's corpus and restart you would usually do:

```
Control-C # to terminate afl-fuzz
$ afl-cmin -T nproc -i out/default/queue -o minimized_queue -- ./target
$ AFL_FAST_CAL=1 AFL_CMPLOG_ONLY_NEW=1 afl-fuzz -i minimized_queue -o out2 [other options] -- ./target
```

If this improves fuzzing or not is debated and no consensus has been reached
or in-depth analysis been performed.

On the pro side:
* The queue/corpus is reduced (up to 20%) by removing intermediate paths
that are maybe not needed anymore.

On the con side:
* Fuzzing time is lost for the time the fuzzing is stopped, minimized and
restarted.

The the big question:
* Does a minimized queue/corpus improve finding new coverage or does it
hinder it?

The AFL++ team's own limited analysis seem to to show that keeping
intermediate paths help to find more coverage, at least for afl-fuzz.

For honggfuzz in comparison it is a good idea to restart it from time to
time if you have other fuzzers (e.g: AFL++) running in parallel to sync
the finds of other fuzzers to honggfuzz as it has no syncing feature like
AFL++ or libfuzzer.

</p></details>

## Targets

<details>
Expand Down
1 change: 1 addition & 0 deletions content/docs/INSTALL.md
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,7 @@ These build options exist:
* INTROSPECTION - compile afl-fuzz with mutation introspection
* NO_PYTHON - disable python support
* NO_SPLICING - disables splicing mutation in afl-fuzz, not recommended for normal fuzzing
* NO_UTF - do not use UTF-8 for line rendering in status screen (fallback to G1 box drawing, of vanilla AFL)
* NO_NYX - disable building nyx mode dependencies
* NO_CORESIGHT - disable building coresight (arm64 only)
* NO_UNICORN_ARM64 - disable building unicorn on arm64
Expand Down
4 changes: 2 additions & 2 deletions content/docs/afl-fuzz_approach.md
Original file line number Diff line number Diff line change
Expand Up @@ -425,8 +425,8 @@ the process. Be sure to consult this file especially if any UI elements are
highlighted in red.

The fuzzing process will continue until you press Ctrl-C. At a minimum, you want
to allow the fuzzer to complete one queue cycle, which may take anywhere from a
couple of hours to a week or so.
to allow the fuzzer to at least one queue cycle without any new finds, which may
take anywhere from a couple of hours to a week or so.

There are three subdirectories created within the output directory and updated
in real-time:
Expand Down
22 changes: 17 additions & 5 deletions content/docs/env_variables.md
Original file line number Diff line number Diff line change
Expand Up @@ -333,6 +333,9 @@ checks or alter some of the more exotic semantics of the tool:
(`-i in`). This is an important feature to set when resuming a fuzzing
session.

- `AFL_IGNORE_SEED_PROBLEMS` will skip over crashes and timeouts in the seeds
instead of exiting.

- Setting `AFL_CRASH_EXITCODE` sets the exit code AFL++ treats as crash. For
example, if `AFL_CRASH_EXITCODE='-1'` is set, each input resulting in a `-1`
return code (i.e. `exit(-1)` got called), will be treated as if a crash had
Expand Down Expand Up @@ -371,6 +374,9 @@ checks or alter some of the more exotic semantics of the tool:
- `AFL_EXIT_ON_SEED_ISSUES` will restore the vanilla afl-fuzz behavior which
does not allow crashes or timeout seeds in the initial -i corpus.

- `AFL_CRASHING_SEEDS_AS_NEW_CRASH` will treat crashing seeds as new crash. these
crashes will be written to crashes folder as op:dry_run, and orig:<seed_file_name>.

- `AFL_EXIT_ON_TIME` causes afl-fuzz to terminate if no new paths were found
within a specified period of time (in seconds). May be convenient for some
types of automated jobs.
Expand Down Expand Up @@ -415,10 +421,15 @@ checks or alter some of the more exotic semantics of the tool:
set `AFL_IGNORE_PROBLEMS`. If you additionally want to also ignore coverage
from late loaded libraries, you can set `AFL_IGNORE_PROBLEMS_COVERAGE`.

- When running in the `-M` or `-S` mode, setting `AFL_IMPORT_FIRST` causes the
fuzzer to import test cases from other instances before doing anything else.
This makes the "own finds" counter in the UI more accurate. Beyond counter
aesthetics, not much else should change.
- When running with multiple afl-fuzz or with `-F`, setting `AFL_IMPORT_FIRST`
causes the fuzzer to import test cases from other instances before doing
anything else. This makes the "own finds" counter in the UI more accurate.

- When running with multiple afl-fuzz or with `-F`, setting `AFL_FINAL_SYNC`
will cause the fuzzer to perform a final import of test cases when
terminating. This is beneficial for `-M` main fuzzers to ensure it has all
unique test cases and hence you only need to `afl-cmin` this single
queue.

- Setting `AFL_INPUT_LEN_MIN` and `AFL_INPUT_LEN_MAX` are an alternative to
the afl-fuzz -g/-G command line option to control the minimum/maximum
Expand Down Expand Up @@ -591,7 +602,8 @@ checks or alter some of the more exotic semantics of the tool:
Note that this is not a compile time option but a runtime option :-)

- Set `AFL_PIZZA_MODE` to 1 to enable the April 1st stats menu, set to -1
to disable although it is 1st of April.
to disable although it is 1st of April. 0 is the default and means enable
on the 1st of April automatically.

- If you need a specific interval to update fuzzer_stats file, you can
set `AFL_FUZZER_STATS_UPDATE_INTERVAL` to the interval in seconds you'd
Expand Down
40 changes: 24 additions & 16 deletions content/docs/fuzzing_in_depth.md
Original file line number Diff line number Diff line change
Expand Up @@ -605,32 +605,40 @@ during fuzzing) and their number, a value between 50-500MB is recommended. You
can set the cache size (in MB) by setting the environment variable
`AFL_TESTCACHE_SIZE`.
There should be one main fuzzer (`-M main-$HOSTNAME` option) and as many
secondary fuzzers (e.g., `-S variant1`) as you have cores that you use. Every
`-M`/`-S` entry needs a unique name (that can be whatever), however, the same
`-o` output directory location has to be used for all instances.
There should be one main fuzzer (`-M main-$HOSTNAME` option - set also
`AFL_FINAL_SYNC=1`) and as many secondary fuzzers (e.g., `-S variant1`) as you
have cores that you use. Every `-M`/`-S` entry needs a unique name (that can be
whatever), however, the same `-o` output directory location has to be used for
all instances.
For every secondary fuzzer there should be a variation, e.g.:
* one should fuzz the target that was compiled differently: with sanitizers
activated (`export AFL_USE_ASAN=1 ; export AFL_USE_UBSAN=1 ; export
AFL_USE_CFISAN=1`)
* one should fuzz the target that was compiled with sanitizers activated
(`export AFL_USE_ASAN=1 ; export AFL_USE_UBSAN=1 ; export AFL_USE_CFISAN=1`)
* one or two should fuzz the target with CMPLOG/redqueen (see above), at least
one cmplog instance should follow transformations (`-l AT`)
one cmplog instance should follow transformations (`-l 2AT`)
* one to three fuzzers should fuzz a target compiled with laf-intel/COMPCOV (see
above). Important note: If you run more than one laf-intel/COMPCOV fuzzer and
you want them to share their intermediate results, the main fuzzer (`-M`) must
be one of them! (Although this is not really recommended.)
All other secondaries should be used like this:
* a quarter to a third with the MOpt mutator enabled: `-L 0`
* run with a different power schedule, recommended are: `fast` (default),
be one of them (although this is not really recommended).
The other secondaries should be run like this:
* 10% with the MOpt mutator enabled: `-L 0`
* 10% should use the old queue cycling with `-Z`
* 50-70% should run with `AFL_DISABLE_TRIM`
* 40% should run with `-P explore` and 20% with `-P exploit`
* If you use `-a` then set 30% of the instances to not use `-a`; if you did
not set `-a` (why??), then set 30% to `-a ascii` and 30% to `-a binary`.
* run each with a different power schedule, recommended are: `fast` (default),
`explore`, `coe`, `lin`, `quad`, `exploit`, and `rare` which you can set with
the `-p` option, e.g., `-p explore`. See the
[FAQ]({{< relref "FAQ.md#what-are-power-schedules" >}}) for details.
* a few instances should use the old queue cycling with `-Z`
It can be useful to set `AFL_IGNORE_SEED_PROBLEMS=1` to skip over seeds that
crash or timeout during startup.
Also, it is recommended to set `export AFL_IMPORT_FIRST=1` to load test cases
from other fuzzers in the campaign first.
from other fuzzers in the campaign first. But note that can slow down the start
of the first fuzz by quite a lot of you have many fuzzers and/or many seeds.
If you have a large corpus, a corpus from a previous run or are fuzzing in a CI,
then also set `export AFL_CMPLOG_ONLY_NEW=1` and `export AFL_FAST_CAL=1`.
Expand Down Expand Up @@ -946,7 +954,7 @@ too long for your overall available fuzz run time.
* 65% for `AFL_DISABLE_TRIM`
* 50% for `AFL_KEEP_TIMEOUTS`
* 50% use a dictionary generated by `AFL_LLVM_DICT2FILE` + `AFL_LLVM_DICT2FILE_NO_MAIN=1`
* 40% use MOpt (`-L 0`)
* 10% use MOpt (`-L 0`)
* 40% for `AFL_EXPAND_HAVOC_NOW`
* 20% for old queue processing (`-Z`)
* for CMPLOG targets, 70% for `-l 2`, 10% for `-l 3`, 20% for `-l 2AT`
Expand Down
2 changes: 1 addition & 1 deletion docs/404.html
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@
<link rel="stylesheet" href="/book.min.5f6934428064085210d9b92c20af9b09c67cef71f93fa65ebbc5af315512573d.css" integrity="sha256-X2k0QoBkCFIQ2bksIK&#43;bCcZ873H5P6Zeu8WvMVUSVz0=">


<script defer src="/en.search.min.57cbb588c1dd84950a43117dbfbea77e9d7d79734e473d9f3bfa8530d3d7ec36.js" integrity="sha256-V8u1iMHdhJUKQxF9v76nfp19eXNORz2fO/qFMNPX7DY="></script>
<script defer src="/en.search.min.2121dd144f56093f39999e12ac94e2894ddc6fba97b269735113a9d4958a1a25.js" integrity="sha256-ISHdFE9WCT85mZ4SrJTiiU3cb7qXsmlzUROp1JWKGiU="></script>

<!--
Made with Book Theme
Expand Down
4 changes: 2 additions & 2 deletions docs/building/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@
<link rel="stylesheet" href="/book.min.5f6934428064085210d9b92c20af9b09c67cef71f93fa65ebbc5af315512573d.css" integrity="sha256-X2k0QoBkCFIQ2bksIK&#43;bCcZ873H5P6Zeu8WvMVUSVz0=">


<script defer src="/en.search.min.57cbb588c1dd84950a43117dbfbea77e9d7d79734e473d9f3bfa8530d3d7ec36.js" integrity="sha256-V8u1iMHdhJUKQxF9v76nfp19eXNORz2fO/qFMNPX7DY="></script>
<script defer src="/en.search.min.2121dd144f56093f39999e12ac94e2894ddc6fba97b269735113a9d4958a1a25.js" integrity="sha256-ISHdFE9WCT85mZ4SrJTiiU3cb7qXsmlzUROp1JWKGiU="></script>

<!--
Made with Book Theme
Expand Down Expand Up @@ -84,7 +84,7 @@ <h2 class="book-brand">
<ul>
<li><strong>Downloads</strong>
<ul>
<li><a href="https://github.com/AFLplusplus/AFLplusplus/releases/tag/4.07c">Release 4.07c</a>
<li><a href="https://github.com/AFLplusplus/AFLplusplus/releases/tag/v4.08c">Release 4.08c</a>
</li>
<li><a href="https://github.com/AFLplusplus/AFLplusplus/releases">All releases</a></li>
<li><a href="https://github.com/AFLplusplus/AFLplusplus/archive/master.zip">Current devel</a></li>
Expand Down
4 changes: 2 additions & 2 deletions docs/categories/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@
<link rel="stylesheet" href="/book.min.5f6934428064085210d9b92c20af9b09c67cef71f93fa65ebbc5af315512573d.css" integrity="sha256-X2k0QoBkCFIQ2bksIK&#43;bCcZ873H5P6Zeu8WvMVUSVz0=">


<script defer src="/en.search.min.57cbb588c1dd84950a43117dbfbea77e9d7d79734e473d9f3bfa8530d3d7ec36.js" integrity="sha256-V8u1iMHdhJUKQxF9v76nfp19eXNORz2fO/qFMNPX7DY="></script>
<script defer src="/en.search.min.2121dd144f56093f39999e12ac94e2894ddc6fba97b269735113a9d4958a1a25.js" integrity="sha256-ISHdFE9WCT85mZ4SrJTiiU3cb7qXsmlzUROp1JWKGiU="></script>

<link rel="alternate" type="application/rss+xml" href="https://aflplus.plus/categories/index.xml" title="AFLplusplus" />
<!--
Expand Down Expand Up @@ -85,7 +85,7 @@ <h2 class="book-brand">
<ul>
<li><strong>Downloads</strong>
<ul>
<li><a href="https://github.com/AFLplusplus/AFLplusplus/releases/tag/4.07c">Release 4.07c</a>
<li><a href="https://github.com/AFLplusplus/AFLplusplus/releases/tag/v4.08c">Release 4.08c</a>
</li>
<li><a href="https://github.com/AFLplusplus/AFLplusplus/releases">All releases</a></li>
<li><a href="https://github.com/AFLplusplus/AFLplusplus/archive/master.zip">Current devel</a></li>
Expand Down
8 changes: 4 additions & 4 deletions docs/docs/afl-fuzz_approach/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@
<link rel="stylesheet" href="/book.min.5f6934428064085210d9b92c20af9b09c67cef71f93fa65ebbc5af315512573d.css" integrity="sha256-X2k0QoBkCFIQ2bksIK&#43;bCcZ873H5P6Zeu8WvMVUSVz0=">


<script defer src="/en.search.min.57cbb588c1dd84950a43117dbfbea77e9d7d79734e473d9f3bfa8530d3d7ec36.js" integrity="sha256-V8u1iMHdhJUKQxF9v76nfp19eXNORz2fO/qFMNPX7DY="></script>
<script defer src="/en.search.min.2121dd144f56093f39999e12ac94e2894ddc6fba97b269735113a9d4958a1a25.js" integrity="sha256-ISHdFE9WCT85mZ4SrJTiiU3cb7qXsmlzUROp1JWKGiU="></script>

<!--
Made with Book Theme
Expand Down Expand Up @@ -84,7 +84,7 @@ <h2 class="book-brand">
<ul>
<li><strong>Downloads</strong>
<ul>
<li><a href="https://github.com/AFLplusplus/AFLplusplus/releases/tag/4.07c">Release 4.07c</a>
<li><a href="https://github.com/AFLplusplus/AFLplusplus/releases/tag/v4.08c">Release 4.08c</a>
</li>
<li><a href="https://github.com/AFLplusplus/AFLplusplus/releases">All releases</a></li>
<li><a href="https://github.com/AFLplusplus/AFLplusplus/archive/master.zip">Current devel</a></li>
Expand Down Expand Up @@ -517,8 +517,8 @@ <h2 id="interpreting-output">Interpreting output</h2>
the process. Be sure to consult this file especially if any UI elements are
highlighted in red.</p>
<p>The fuzzing process will continue until you press Ctrl-C. At a minimum, you want
to allow the fuzzer to complete one queue cycle, which may take anywhere from a
couple of hours to a week or so.</p>
to allow the fuzzer to at least one queue cycle without any new finds, which may
take anywhere from a couple of hours to a week or so.</p>
<p>There are three subdirectories created within the output directory and updated
in real-time:</p>
<ul>
Expand Down
4 changes: 2 additions & 2 deletions docs/docs/best_practices/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@
<link rel="stylesheet" href="/book.min.5f6934428064085210d9b92c20af9b09c67cef71f93fa65ebbc5af315512573d.css" integrity="sha256-X2k0QoBkCFIQ2bksIK&#43;bCcZ873H5P6Zeu8WvMVUSVz0=">


<script defer src="/en.search.min.57cbb588c1dd84950a43117dbfbea77e9d7d79734e473d9f3bfa8530d3d7ec36.js" integrity="sha256-V8u1iMHdhJUKQxF9v76nfp19eXNORz2fO/qFMNPX7DY="></script>
<script defer src="/en.search.min.2121dd144f56093f39999e12ac94e2894ddc6fba97b269735113a9d4958a1a25.js" integrity="sha256-ISHdFE9WCT85mZ4SrJTiiU3cb7qXsmlzUROp1JWKGiU="></script>

<!--
Made with Book Theme
Expand Down Expand Up @@ -84,7 +84,7 @@ <h2 class="book-brand">
<ul>
<li><strong>Downloads</strong>
<ul>
<li><a href="https://github.com/AFLplusplus/AFLplusplus/releases/tag/4.07c">Release 4.07c</a>
<li><a href="https://github.com/AFLplusplus/AFLplusplus/releases/tag/v4.08c">Release 4.08c</a>
</li>
<li><a href="https://github.com/AFLplusplus/AFLplusplus/releases">All releases</a></li>
<li><a href="https://github.com/AFLplusplus/AFLplusplus/archive/master.zip">Current devel</a></li>
Expand Down
Loading

0 comments on commit 4888d45

Please sign in to comment.