Googling around you can probably find many more tutorials and HOW TOs, which may be useful if these are tailored to the specific OS (Linux, OS X or Windows) that you prefer to use. If you happen to come across such other sources of information that are useful, post them in the Brightspace forum for that tool - or drop me an email so I can add a link here - so that others can benefit from this.
Radamsa is file-based: it takes a set of valid sample files as input and then produces a larger set of invalid files that are fuzzed variants of these input files. Radamsa does not feed these output files to the system under test (SUT). This is something you have to do yourself, either manually or by setting up some scripts.
To install:
> git clone https://gitlab.com/akihe/radamsa > cd radamsa > make > sudo make install # optional, you can also launch radamsa by giving the full path to bin/radamsa > radamsa --help
zuff is pretty old and it's not clear how actively it is being maintained. But it is simple, lightweight, and deterministic, so still worth a shot to try out.
To install: On Linux, you can simply get it with
sudo apt-get install zzufAlternatively, unpack the tar-ball from the git repo and run the standard sequence
> ./bootstrap > ./configure > make > sudo make installThe zuff webpage says Windows support is not ready, but the git does contain a build-win32 branch. Please use the Brightspace forum to report good or bad experiences with running zzuf on Windows, so that other groups can benefit from this.
There is a tutorial on the zzuf webpage. Another tutorial on using zzuf is the fuzzing-project.org zzuf tutorial, which also shows the use of valgrind in combination with zzuf.
The QuickStartGuide.txt at http://lcamtuf.coredump.cx/afl provides a quick intro. There is a daughter project AFL++ which may be easier to install and run than the original afl.
To install: The easiest way to install afl is with
sudo apt-get install aflIf that does not work on your Linux/Mac OS X machine, Peter Guttman's article Fuzzing Code with AFL walks through the installation of both clang (as part of LLVM) and afl
The instruction for AFL++ are slightly differently.
Unlike with the tools above, for afl you need to recompile your code before you can start fuzzing. This tutorial walks trough a simple example using afl. Peter Guttman's article Fuzzing Code with AFL walks through the use of afl in combination with ASan. There is also an afl tutorial at fuzzing-project.org, which also discusses the use of afl with ASan.
There are tons of other afl tutorials out there; if you find any that are particularly useful, post them in Brightspace so that others can check them out to. Or email me so I can add links here. NB Windows users: Originally afl only ran on Linux and Mac OS X, as it uses *nix features. You can run afl in a VirtualBox VM, with a performance hit of course, but using a memory-instrumentation tool like ASan is then not an option. There is now also a Windows fork of afl. If you have any Linux or Mac OS X users in the group, obvious strategy would be to use afl on these systems and not to try this Windows fork. Or, if you could try winafl for comparison; they had to make some tweaks for winafl, not sure how these will affect results. There is also a recent - still experimental - port of ASan for Windows. By all means give it a try, if you like a challenge, but you'd probably want to ditch it if you hit any snags. Please use the Brightspace forum to report good or bad experiences, so that other groups can benefit from this.
To install: from the BFF download page you can get OS X and Windows installers and a UbuFuzz virtual machine. Or you can grab the source code from the github, but that is probably not for the faint-hearted.