All Projects → sslab-gatech → perf-fuzz

sslab-gatech / perf-fuzz

Licence: other
No description, website, or topics provided.

Programming Languages

c
50402 projects - #5 most used programming language
assembly
5116 projects
C++
36643 projects - #6 most used programming language
objective c
16641 projects - #2 most used programming language
Makefile
30231 projects
shell
77523 projects

New OS Primitives Specialized for Fuzzing

Paper

The snapshot() system call

  • The prototype is built on linux-4.8.10.
  • Enable CONFIG_SNAPSHOT when compiling the kernel and check snapshot-test/ for its example.

AFL

  • afl/ contains the modified afl source code which leverages the snapshot() system call and the in-memory test case log.
  • To enable snapshot(), make sure #define MYFORK in config.h and compile with AFL_PERF=1 make.
  • We add a new option -u to indicate the afl instance id and the total number of afl instances running in parallel.
  • Currently only 64bit fuzzing targets are supported.

Example

  • We provide an example of using modified AFL to fuzz libjpeg (afl-test/).
  • Compile libjpeg.
cd jpeg-9b
CC=../../afl/afl-gcc ./configure
make
./djpeg -h (This step cannot be skipped in order to get lt-djpeg)
  • Launch afl (here 2 instances)
sudo ./prepare.sh
../afl/afl-fuzz -i input -o output -S slave0 -u 0/2 jpeg-9b/.libs/lt-djpeg

In another terminal,

../afl/afl-fuzz -i input -o output -S slave1 -u 1/2 jpeg-9b/.libs/lt-djpeg

Note that both of the AFL instances will start fuzzing only when both of them have been launched.

Contributors

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].