Skip to content

FFreestanding/FFFuzzer

 
 

Repository files navigation

FFFuzzer

FFFuzzer is a fork of the FuzzNG project, with the goal of enhancing the original project's functionality.

The new features include:

  • Web data dashboard
  • Comments starting with //#
  • Code optimization

Instructions

These instructions were tested on Ububtu22. A CPU with VT-x support is preferable. The user needs rw permissions for /dev/kvm

Install Requirements:

# QEMU:
sudo apt-get install git libglib2.0-dev libfdt-dev libpixman-1-dev zlib1g-dev ninja-build

# Kernel:
sudo apt-get install build-essential linux-source bc kmod cpio flex libncurses5-dev libelf-dev libssl-dev dwarves bison libcap-ng-dev libattr1-dev

# Misc:
sudo apt install clang-15 debootstrap qemu-utils

Build Kernel + FuzzNG (mod-ng/qemu-ng/libfuzzer-ng/agent-ng)

Note that clang is required.

NPROC=4 CC=clang-15 CXX=clang++-15 make
# This may ask for your password to set up the disk-image for the fuzzing VM.

Now pick a fuzzing-config from configs/ and start the fuzzer:

# Fuzz KVM with 4 workers
./scripts/fuzz.sh 4 configs/kvm.h

Or, to run a single worker with serial-output from the VM enabled:

# Manually copy the KVM config:
cp configs/kvm.h agent/fuzz_config.h

# Run a fuzzer
EXTRA_ARGS="-serial stdio" PROJECT_ROOT="./" ./scripts/run.sh

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 85.6%
  • C 9.9%
  • Shell 2.0%
  • CMake 1.7%
  • Other 0.8%