I'm trying to fuzz quadlods's (
https://github.com/phma/quadlods) interactive
mode. I've previously done this using version 2.52b, but since I've added
multithreading, afl-gcc 2.52b doesn't compile it. With 2.60d (these are on two
different computers), it tells me the following:
$ afl-fuzz -m 200 -i in -o out -M fuzz0 ./quadlods interact
afl-fuzz++2.60d based on afl by Michal Zalewski and a big online community
[+] afl++ is maintained by Marc "van Hauser" Heuse, Heiko "hexcoder" Eissfeldt
and Andrea Fioraldi
[+] afl++ is open source, get it at
https://github.com/vanhauser-thc/
AFLplusplus
[+] Power schedules from
github.com/mboehme/aflfast
[+] Python Mutator and llvm_mode whitelisting from
github.com/choller/afl
[+] afl-tmin fork server patch from
github.com/nccgroup/TriforceAFL
[+] MOpt Mutator from
github.com/puppet-meteor/MOpt-AFL
[*] Getting to work...
[+] Using exploration-based constant power schedule (EXPLORE)
[+] You have 12 CPU cores and 8 runnable tasks (utilization: 67%).
[+] Try parallel jobs - see /usr/local/share/doc/afl/parallel_fuzzing.txt.
[*] Checking CPU core loadout...
[+] Found a free CPU core, binding to #0.
[*] Checking core_pattern...
[*] Checking CPU scaling governor...
[*] Setting up output directories...
[+] Output directory exists but deemed OK to reuse.
[*] Deleting old session data...
[+] Output dir cleanup successful.
[*] Scanning 'in'...
[+] No auto-generated dictionary tokens to reuse.
[*] Creating hard links for all input files...
[*] Validating target binary...
[*] Attempting dry run with 'id:000000,time:0,orig:input'...
[*] Spinning up the fork server...
[+] All right - fork server is up.
[-] Oops, the program crashed with one of the test cases provided. There are
several possible explanations:
- The test case causes known crashes under normal working conditions. If
so, please remove it. The fuzzer should be seeded with interesting
inputs - but not ones that cause an outright crash.
- The current memory limit (200 MB) is too low for this program, causing
it to die due to OOM when parsing valid files. To fix this, try
bumping it up with the -m setting in the command line. If in doubt,
try something along the lines of:
( ulimit -Sd $[199 << 10]; /path/to/binary [...] <testcase )
Tip: you can use
http://jwilk.net/software/recidivm to quickly
estimate the required amount of virtual memory for the binary. Also,
if you are using ASAN, see /usr/local/share/doc/afl/notes_for_asan.txt.
- Least likely, there is a horrible bug in the fuzzer. If other options
fail, poke <
afl-...@googlegroups.com> for troubleshooting tips.
[-] PROGRAM ABORT : Test case 'id:000000,time:0,orig:input' results in a crash
Location : perform_dry_run(), src/afl-fuzz-init.c:603
Running ( ulimit -Sd $[149 << 10]; ./quadlods interact <in/input ) from bash
results in clean output. (My usual memory limit is 150; I upped it in case
memory was the problem.) Same for the other two files, including test.data,
which I recently added to the repo. (The divide by zero is one of the things I
test.) When I run it with only test.data in in/, it still crashes in afl++.
What's wrong?
Pierre
--
The gostak pelled at the fostin lutt for darfs for her martle plave.
The darfs had smibbed, the lutt was thale, and the pilter had nothing snave.