Skip to content

Libafl 0.15.1#3

Open
AlviseDeFaveri wants to merge 3 commits intomasterfrom
libafl-0.15.1
Open

Libafl 0.15.1#3
AlviseDeFaveri wants to merge 3 commits intomasterfrom
libafl-0.15.1

Conversation

@AlviseDeFaveri
Copy link
Contributor

@AlviseDeFaveri AlviseDeFaveri commented Apr 2, 2025

This PR upgrades the fuzzer to LibAFL 0.15.1.

The following need to be checked before this can be merged:

  • Test cases timeout: simulations are slow, we need to make sure that forkserver clients don't timeout
  • Seed loading: currently we just generate a "NOP" as seed, loading seeds should be trivial though
  • Update rust version: projects depending on this repo (namely, PhantomTrails projects) should install rustup default 1.82

Why?

It would be nice to be able to dynamically insert/remove the snippet mutation when evaluating its effects, instead of having a (compile-time) tuple (see here).

For now I implemented this by simply putting the Snippet mutation as last element fo the tuple and constraining the rng at runtime, which is horrible and makes me want to cry.

It seems like newer LibAFL versions can handle dynamic mutation lists, but I didn't manage to make it work and got bored.

Anyways, since I did the porting effort, we might as well upstream it.

`PHANTOM_TRAILS_NO_SNIPPET=1` prevents the mutator from generating
call/ret snippets.

`PHANTOM_TRAILS_NO_ARG_REUSE=1` prevents the mutator from
(intentionally) reusing args when generating instructions.
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