Skip to content

Deploying libFuzzer-based harnesses #125

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 24 commits into
base: main
Choose a base branch
from

Conversation

kevin-valerio
Copy link
Contributor

@kevin-valerio kevin-valerio commented Apr 15, 2025

The goal of this PR is multiple.

  • Fuzz any given libFuzzer harnesses that implement a correct LLVMFuzzerTestOneInput
  • Compile ASAN/UBSAN version of the target
  • Create a proper runner to execute inputs
  • Generate coverage report for the C++ codebase
  • Integrate CMPLOG into the target

In an ideal world, a user would just have to create a valid LLVMFuzzerTestOneInput and CMakeList.txt, execute cargo ziggy fuzz --asan --cpp, and the magic deployment should follow.

This is still WIP, as of the 15/04/2025, the ASAN/CMPLOG/target compilation works well, same for fuzzing. An example is given under the associated directory

ToDos:

  • UBSAN
  • Coverage report generation
  • Minimizer
  • Linking to LTO or not via the .config file
  • Extra params for -D and ASAN_OPTIONS
  • Using remote Ziggy and not local Ziggy in root_dir/Cargo.toml

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant