AFLplusplus / AFLplusplus/LibAFL

Support 128-bit AVX/SIMD comparison logging and mutation

Đang mở
#3,749 0 bình luận 0 reaction 0 người được giao Xem trên GitHub
enhancement
Ngôn ngữ chính
Rust
Star
2.6k
Fork
481
Merge trung bình
2 ngày 30 phút
Pull request đã merge (30 ngày)
16

Mô tả

**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.

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.