Rowan Hart fe6daecf0b
Make harness function take mut ref (#1338)
* Change executor trait to allow \&mut Input

* Add mut inprocess executor

* Add mut inprocess executor

* Format and fix clippy errors

* Fix more clippy errors

* Revert accidental refactoring of InMemoryCorpus

* Add mut versions of all executors that can support it

* Do not persist possible testcase mutation in stages, shadow/differential executors, or corpus minimization

* Fix missing imports

* Fix executor type for missed qemu items

* Add re-exports for mut executors

* Use InProcessForkExecutorMut in QemuForkExecutorMut

* Update BytesInput harnesses to take mutable references

* Update other-input-type-taking harnesses to take mut references

* Clippy fixes

* Feature gate TryFromIntError import

* Fix missed harness input type in baby_fuzzer

* Fix additional clippy issues

* Fix unnecessary hashes on string literal

* Even MORE clippy fixes

* Fix one more clippy issue

---------

Co-authored-by: Dongjia "toka" Zhang <tokazerkje@outlook.com>
2023-07-10 13:06:38 +02:00
..
2023-04-26 20:22:57 +02:00
2023-06-30 20:36:46 +02:00

LibAFL Utils

Welcome to the LibAFL Utils folder. Here, you find some helful utilities that may be helpful for successfull fuzzing campaigns.

DeExit: ldpreload exit lib

In the deexit folder, you'll find a ldpreloadable library, that changes calls to exit to abort()s. When a target exits, it quits, and LibAFL will not be able to catch this or recover. Abort, on the other hand, raises an error LibAFL's inprocess executor will be able to catch, thanks to its signal handlers.

Gramatron: gramatron grammars and preprocessing utils

See https://github.com/HexHive/Gramatron

libafl_benches

This folder contains benchmarks for various things in LibAFL, like hash speeds and RNGs. Run with cargo bench