AFLplusplus / AFLplusplus/LibAFL

Support 128-bit AVX/SIMD comparison logging and mutation

Offen
#3,749 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
enhancement
Vorherrschende Sprache
Rust
Sterne
2.6k
Forks
481
Ø Merge
2 T. 30 Min.
Gemergte PRs (30 T.)
16

Beschreibung

**Is your feature request related to a problem? Please describe.**
When fuzzing high-performance targets, modern codebases frequently use AVX/SIMD instructions for comparisons. Since libafl and libafl_targets cap comparison logging at 64-bit values, the fuzzer is completely blind to 128-bit, 256-bit, and 512-bit vector comparisons significantly limiting mutation effectiveness on these code paths.

**Describe the solution you'd like**
To add native 128-bit comparison support to CmpLog and the mutation framework, with room to extend to 256/512-bit later. The main changes would be: adding a U128 variant to CmpValues, widening CmplogBytes, fixing up the CmpMap dictionary extraction to properly reconstruct u128 halves, and hooking it all into havoc_mutations::dict_insert()

**Describe alternatives you've considered**
CmpValues::Bytes sort of works but loses the semantic aware mutations that make CmpLog actually useful. Manual per-target hooking is another option, but it's messy putting this in the core CmpMap means every CmpLog-enabled target gets the benefit automatically.

**Additional context**
Without this, achieving deep coverage in cryptographic routines, vectorized string parsers, and multimedia libraries remains substantially harder, as magic bytes and equality conditions hidden behind SIMD optimizations go unresolved.

Beitragsleitfaden

Beitragsleitfaden öffnen

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.