The Wayback Machine - https://web.archive.org/web/20210203193028/https://github.com/sponsors/loiclec
Skip to content
Become a sponsor to Loïc Lecrenier
@loiclec

loiclec

Utrecht, Netherlands

Hi! 👋

My name is Loïc and I am a student at University College Utrecht (UCU) majoring in environmental sciences and mathematics.

What am I working on?

I write fuzzcheck, a novel coverage-guided, structure aware fuzzer for Rust functions. I used to work on it during school breaks or very sporadically during the academic year. But now that fuzzcheck is nearly ready to be used, I want to dedicate more time to it, to make it viable for many real projects.

Fuzzcheck is much like cargo-fuzz. It takes a test function fn test(T) -> bool and automatically finds inputs that will cause the function to fail or crash. It does so by applying an evolutionary algorithm trying to maximize the code coverage of the function. But while cargo-fuzz is a wonderful tool, there are two important differences between cargo-fuzz and fuzzcheck:

  • cargo-fuzz relies on AFL or libFuzzer while fuzzcheck is an entirely new fuzzing engine written in Rust
  • cargo-fuzz is not fundamentally structure-aware. Instead, it generates and mutates bitstrings (e.g. 011101011101) and then convert these bitstrings into a value T using the Arbitrary trait of QuickCheck. On the other hand, fuzzcheck directly generates and mutates strongly typed values.

It is more difficult to write a structure-aware-first fuzzer than to adapt a regular fuzzer into a structure-aware one. But the potential benefits are huge. By sponsoring me, you will help drive the adoption of fuzz-testing in the Rust ecosystem, making software more reliable.

Why is your sponsorship important?

With your help, I will be able to:

  • build a corpus of fuzz targets that can be used to empirically evaluate the quality of structure-awareness fuzzers
  • better integrate fuzzcheck into cargo
  • enable new kinds of tracing such as heap allocation, time, and stack depth, to catch more types of bugs
  • write composable “mutators” so that more types of functions can be fuzz-tested
  • make it easy to use by working on proc-macros, good error messages, and extensive documentation
  • and more!

Thank you so much for your support ❤️

4 sponsors are funding loiclec’s next goal

@loiclec

I would be overjoyed to find 10 people enthusiastic about my work! 🥰

@embark-studios
@graydon
@spacejam
@teh

Featured work

  1. loiclec/fuzzcheck-rs

    Structure-aware, in-process, coverage-guided, evolutionary fuzzing engine for Rust functions.

    Rust 237

40% towards 10 sponsors goal

@embark-studios @graydon
@spacejam @teh

embark-studios and 3 others sponsor this goal

Select a tier

$5 a month

Select

Thank you for supporting fuzzcheck!

You are directly helping me stay motivated ❤️

$15 a month

Select

A very generous donation 🎉

I will ensure that you never have to wait too long for a reply, and I'll be extra helpful.

$40 a month

Select

A great help to fuzzcheck’s continued development 🚀

I will prioritize your issues, and offer regular help if you are using fuzzcheck 😊

$100 a month

Select

That's an amazing level of support, thank you ❤️

$250 a month

Select

$250 pays for all of my food and drinks in a month! That is an incredible contribution, thank you so much ❤️