AFL Persistent Fuzzing Mode
Merge request reports
Activity
Added 1 commit:
- 322f3986 - Add support for AFL Persistent Fuzzing Mode based on work by Jonathan Foote jfoote@fastly.com
Reassigned to @vkriz
So I moved the AFL_PERSISTENT mode to tests-fuzz/packet.c and we need to add one more test to tests-fuzz that will test the rest of the Knot DNS processing code.
The basic idea of the moment is to prepare a variants of _udp_init, _udp_recv, _udp_handle, ... that will read packet from stdin and _udp_send that will raise(SIGSTOP) or exit (based on getenv("AFL_PERSISTENT")).
We will have to duplicate some of the initialization from udp_master() and correctly initialize the rest of the structures, but it should be as simple as doing:
#include <knot/server/udp-handler.c> int main() { _udp_init = udp_fuzz_init; _udp_handle = udp_fuzz_handle; _udp_recv = udp_fuzz_recv; _udp_send = udp_send_recv; [...] /* initialize fake thread and it's data structures */ udp_master(thread); }
mentioned in issue #349 (closed)
Added 1 commit:
- e436100d - afl-persistent: wrap udp with stdio. #349 (closed)
Added 1 commit:
- bf7aa8d6 - Remove extra logging from packet fuzzing main loop
Added 1 commit:
- e256c369 - afl: fix read length
Added 2 commits:
- 6f7d2cad - afl: handle empty input
- 24af659a - afl: getenv call only once
Added 1 commit:
- 0d5383e5 - afl: getenv call only once