Thanks to visit codestin.com
Credit goes to github.com

Skip to content

TSonono/fuzzing_demo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Fuzz demo

This project is a simple demonstration of fuzz testing using American Fuzzy loop (AFL) and LLVM Clang's libfuzzer. It parses a UDP packet and tries to read the last byte in the data field of the packet.

Requirements

  • AFL
  • Clang
  • CMake
  • Linux (macOS not tested)

Or you can use the provided Dockerfile in the /fuzz-docker directory.

Build

To make things easier, a bash script is provided in the /fuzz directory which builds the project both for AFL and libfuzzer with CMake.

cd fuzz
./fuzz.sh

If the shell script needs permissions to run, chmod +x ./fuzz.sh should make it able to run.

Run

If you are using the shell script provided. It is as simple as selecting the fuzzer in menu screen of the script.

The script

This demo is setup in a way to demonstrate the abilities of fuzz testing. I encourage you to take a look at the bash script and fuzz/test.c if you want to learn how to build/compile a project for fuzzing.

Todos

  • Coverage data
  • Multiple core configuration
  • Other performance enhancements

Bugs

  • Sometimes the afl fuzzer is not able to read data correctly (the status screen shows that no new paths have been found). Running the reset option in the script solves this.

About

A demonstration of Fuzzing with two fuzzers (AFL and libfuzzer) for C/C++ applications.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published