0.16.0
Highlights
- Split up underlying functionality into multiple reusable crates!
- Generalized Launcher with runtime flags for forking or not
- Remodeled TUI with better support for user stats
- Windows support for Intel PT tracing
- InProcessEventManager moved to Builder
- Cleaned up / removed unused things like Concolic Fuzzing (!)
- A lot more... (see below)
What's Changed
- Some fixes found during publish.sh by @domenukk in #3496
- Initial split of LibAFL-Bolts into smaller crates, towards 0.16.0 by @domenukk in #3331
- Update just, fix llmp link by @domenukk in #3498
- More Documentation by @domenukk in #3499
- Fix android target build(libafl_frida) by @barhaterahul in #3510
- Update mutations.rs by @20urc3 in #3516
- Remove unused toml key from book by @domenukk in #3517
- No longer frequenting this site, lol by @domenukk in #3518
- Anoter Round of Clippy by @domenukk in #3519
- General code cleanups by @domenukk in #3520
- Add coverage file path configuration and rename
filenametopathinDrCovModuleof QEMU by @saruman9 in #3525 - Remove lifetime parameter of inprocess executors by @langston-barrett in #3524
- Add option to clear basic block history after each flush in
DrCovModuleby @saruman9 in #3529 - AGI by @domenukk in #3535
- Update and rename *.instructions.md to PR.instructions.md by @domenukk in #3536
- Clean up TODOs in baby_fuzzers by @atharva-potdar in #3547
- libafl_nyx: Make aux_buffer_size configurable by @tokatoka in #3549
- Add missing format! to Errors by @domenukk in #3551
- Use DEFAULT_AUX_BUFFER_SIZE for the default size of aux_buffer_size by @tokatoka in #3550
- libafl_nyx: Build qemu/packer in target directory by @tokatoka in #3534
- fuzzers: Use
mimallocandscudoin QEMU fuzzers by @langston-barrett in #3552 - Observing an empty output is fine by @bernhl in #3560
- Add as_ref/as_mut implementation to OutputObserver by @tokatoka in #3574
- Change out println! for log::debug! in libafl_qemu crate - usermode module by @atharva-potdar in #3583
- Add crates folder readme by @domenukk in #3584
- Add documentation for libafl_targets features by @domenukk in #3586
- Move to ptcov for Intel PT decoding by @Marcondiro in #3566
- Add non-cellared llvm-config detection on macos by @shadowpagetable in #3588
- Calibration Stage Fix for crashing testcases by @domenukk in #3557
- Add testcase for statsd in launcher, Fixes by @domenukk in #3589
- Dump lcov-compatible coverage using PCGuard by @domenukk in #3585
- libafl_qemu: Add
into_emulatormethod for executors by @langston-barrett in #3532 - UPDATE set_coverage_hook to accept generic Unicorn by @MustBastani in #3590
- libafl_qemu update intept module to support new libafl_intelpt by @Marcondiro in #3595
- Refactor TUI.rs by @domenukk in #3598
- Fork as runtime flag for Launcher/Restarter by @domenukk in #3533
- Add FromTargetBytes to parse bytes by @domenukk in #3614
- Add Nautilus Parser by @domenukk in #3615
- Make Launcher/RestartingMgr generic over EventManagers by @domenukk in #3612
- Refactor Converters by @domenukk in #3620
- feat: add prefix to file_name in InMemoryOnDiskCorpus by @atharva-potdar in #3630
- show current fuzzed testcase to tui by @Tanmay140906 in #3631
- Add Justfiles to build documentation for all workspace crates/ and utils/ by @atharva-potdar in #3635
- Add nonzero_macros crate by @domenukk in #3652
- Docs/add rust version requirement by @Aditya30ag in #3644
- Intel PT: Avoid crashing on tracing errors by @Marcondiro in #3661
- babyfuzzer IntelPT: copy the executable from memory instead of binary file by @Marcondiro in #3667
- docs(qemu):EmulatorHooks as the safe alternative for QEMUhooks by @Tanmay140906 in #3651
- Add core_affinity to launcher, add get_core_affinity by @domenukk in #3676
- docs(events) add module level explanation for restarting and multi_machine event managers by @Tanmay140906 in #3683
- Add missing mode to LibAFL by @domenukk in #3708
- docs(pylibafl): clarify maturin must be run from bindings directory by @Aditya30ag in #3689
- Expose no_link_main and interceptors as configurable features in libafl_libfuzzer_runtime by @mschwager in #3734
- Add functions to simplify creating sub-RNGs by @hjooh in #3775
- IntelPT babyfuzzer remove TUI by @Marcondiro in #3725
- refactor(tinyinst): spring-clean TinyInstExecutor by @erickcestari in #3796
- Remove unused dependencies using cargo-machete by @maaria0 in #3787
- Remove Clone from ShMem by @bernhl in #3780
- Add constructor for UnicodeIdentificationMetadata by @mjkoo in #3746
- Increment saved_crashes and saved_hangs counters by @void0red in #3825
- Add new example fuzzer targeting a bootloader in qemu/kvm with intel PT tracing by @Marcondiro in #3695
- just add missing Justfile for intel_pt_baby_fuzzer by @Marcondiro in #3822
- New Frida Version by @domenukk in #3830
- Make deexit work on macOS again by @domenukk in #3797
- Replace unmaintained webserver with maintained one in Prometheus Monitor by @domenukk in #3828
- Pin AFLplusplus ref to final Apache2 version by @domenukk in #3848
- Llvm 22 upgrades and fixes by @rchildre3 in #3821
- RestartingMgr: Fix SIGNAL_RECURSION_EXIT mismatch by @Mrmaxmeier in #3852
- libafl_targets: fix persistent mode for rust forkserver by @friedbyalice in #3844
- Remove *_child variants of pre_exec/post_exec hooks by @0xmuon in #3817
- Add z3 CI hack info by @domenukk in #3859
- Potentially more stable state restorer by @domenukk in #3863
- Remove deprecated AsSlice trait, rename to ToSlice and remove where not needed by @domenukk in #3862
- Inproc Event Manager Builder by @domenukk in #3869
- Add state file removal on restore by @domenukk in #3872
- ShMem cleanup / Improved MacOS/Unix docs by @domenukk in #3873
- Add Intel PT support on Windows by @Marcondiro in #3845
Fixes
- fix(qemu): typo while cleanup path parameters by @saruman9 in #3528
- Fix broken intra-doc links by @wfdewith in #3531
- Fix CI as follow-up to #3525 by @domenukk in #3537
- Fix libvharness build for docs rs by @rmalmain in #3548
- Fix all clippy warnings in baby_fuzzers by @atharva-potdar in #3553
- v0 mangling fix for libafl_libfuzzer by @addisoncrump in #3559
- Fix post_exec() for all the ComposedByMutations-Mutators by @tokatoka in #3563
- Fixed stb_image_concolic by swapping SetTimeout to HasTimeout by @shadowpagetable in #3572
- Fix clippy warnings and TODOs in binary_only fuzzers by @atharva-potdar in #3564
- Fix incomplete implementation in
HitcountsMapObservers observer trait by @fourdim in #3599 - Fix forkserver fuzzers by @atharva-potdar in #3601
- Fix fuzzing with pcguard_dump feature by @domenukk in #3594
- Concolic fix (maybe) by @domenukk in #3611
- Fix ASan CI for aarch64 by disabling 52 bit addresses for now by @domenukk in #3613
- Fix binary naming mismatch in libfuzzer_libpng_launcher Justfile by @kd610 in #3637
- fix spelling mistakes in docs/debugging.md by @Jay-1409 in #3653
- Fix misspelling of 'persistent' by @kenballus in #3657
- Fix CI by @addisoncrump in #3752
- Fix(SyncFromBrokerStage): report actual corpus_size in NewTestcase events by @0xmuon in #3756
- Fix panic when using cmplog with AFL++ for rare comparison sizes by @ngg in #3730
- fix(GeneralizationStage): forward crashes to objective feedback during gap probing by @k5602 in #3738
- fix the build by @Aditya30ag in #3788
- fix(AflppRedQueen): fix u64 I2S mutation and allow variable-length FnOperands by @drewbarbs in #3741
- Various QEMU
SnapshotModulefixes by @wfdewith in #3542 - Fix:
CachedOnDiskCorpus::replacecache bookkeeping by @0xmuon in #3779 - Fix nix versioning consistency by @addisoncrump in #3806
- clippy autofixes by @Marcondiro in #3805
- Fix CI on MacOS by @Marcondiro in #3813
- Fix build issues on aarch64 Linux. by @phix33 in #3833
- Fix asan according to aarch64 48-bit VMA by @rmalmain in #3650
- Revert TCP Manager regression (oops) by @domenukk in #3835
- Fix hang in Forkserver::drop by closing pipes before waitpid by @nixpulvis in #3838
- Fix TuiMonitor when using SimpleRestartingEventManager by @Ollrogge in #3846
- bolts: Fix deprecation of wide::CmpEq by @Marcondiro in #3841
- fix(fast_rands): prevent overflow and UB in Rand::between for maximum bounds by @simon902 in #3839
- Fix racy file operations in
libfuzzer_libpng_launcher& Sort outputs byClientIdinOnDiskTomlMonitorby @Ollrogge in #3847 - Fix CI by @Mrmaxmeier in #3853
- fix(testcase_score): typo in documentation of TestcasePenalty by @Ollrogge in #3854
- Fix #3851 and add tests by @domenukk in #3861
- fix: gate generate_minibsod behind LIBAFL_MINIBSOD env var by @kx7m2qd in #3826
- Fix LibAFL no_std errors when compiling for baremetal/embedded targets without libc/unix by @YungRaj in #3812
- Fix cmplogHookIns* arguments to pass bitcode verification. by @vonavi in #3871
- Fix subtle LL_MP bug, add tests by @domenukk in #3870
New Contributors
- @barhaterahul made their first contribution in #3510
- @atharva-potdar made their first contribution in #3547
- @shadowpagetable made their first contribution in #3572
- @MustBastani made their first contribution in #3590
- @kd610 made their first contribution in #3637
- @Tanmay140906 made their first contribution in #3631
- @Jay-1409 made their first contribution in #3653
- @Aditya30ag made their first contribution in #3644
- @kenballus made their first contribution in #3657
- @mschwager made their first contribution in #3734
- @hjooh made their first contribution in #3775
- @theKnightsOfRohan made their first contribution in #3782
- @0xmuon made their first contribution in #3756
- @ngg made their first contribution in #3730
- @k5602 made their first contribution in #3738
- @erickcestari made their first contribution in #3796
- @maaria0 made their first contribution in #3787
- @mjkoo made their first contribution in #3746
- @void0red made their first contribution in #3825
- @drewbarbs made their first contribution in #3741
- @phix33 made their first contribution in #3833
- @nixpulvis made their first contribution in #3838
- @Ollrogge made their first contribution in #3846
- @simon902 made their first contribution in #3839
- @friedbyalice made their first contribution in #3844
- @kx7m2qd made their first contribution in #3826
- @YungRaj made their first contribution in #3812
- @vonavi made their first contribution in #3871
Full Changelog: 0.15.4...0.16.0