lenawanel c791a23456
reduce memory usage of the construct_automata script (#1481)
* remove unneeded loop in `SpliceMutator::mutate`

previously we searched for the first and the last difference
between exactly the same 2 inputs 3 times in a loop

* remove unused struct fields

* avoid allocating strings for `Transition`s

* avoid allocating `String`s for `Stack`s

* avoid allocating Strings for `Element`s

* apply some clippy lints

* some more clippy lints

* simplify regex

* remove superflous if condition

* remove the Rc<_> in `Element`

* small cleanups and regex fix

* avoid allocating a vector for the culled pda

* bug fix

* bug fix

* reintroduce the Rc, but make it use the *one* alloced VecDeque this time

* slim down dependencies

* use Box<[&str]> for storted state stacks

this saves us a whopping 8 bytes ;), since we don't have to store
the capacity

* revert the changes from 9ffa715c10089f157e4e20563143a2df890c8ffe

fixes a bug

* apply clippy lint

---------

Co-authored-by: Andrea Fioraldi <andreafioraldi@gmail.com>
2023-09-05 16:29:24 +02:00
..
2023-04-26 20:22:57 +02:00
2023-08-17 17:15:03 +02:00
2023-08-17 17:15:03 +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