Skip to content

Releases: AFLplusplus/LibAFL

0.12.0

12 Apr 17:55
cbb323f
Compare
Choose a tag to compare

Highlights

  • API for multithreaded initial seed corpus loading
  • Initial seed corpus entries are kept for splicing
  • Stages and Mutators can now be provided as a dynamic Vec
  • Stages resume after crashes and timeout
  • Multipart Input support
  • LibAFL_Bolts: performant get_or_insert_with API for AnyMap/Metadata
  • LibAFL_Targets: Exposing pcguard's PC-Table
  • LibAFL_Libfuzzer: MacOS support
  • libAFL_QEMU: Injection fuzzing and massive rework overall
  • LibAFL_Frida: Binary-only Cmplog support for x64
  • LibAFL_Tinyinst: Linux instrumentation support

API changes

  • Replaced TimeoutExecutor with a timeout in each executor
  • Removed python bindings for most parts of the lib (LibAFL_sugar and LibAFL_QEMU remain)
  • LLMP Client timeout removed, clients manually unregister on exit now
  • Turning on and off tracking of novelties and indexes is now enforced with the CanTrack trait to be less error-prone
  • Instead of providing the current testcase and current stage id everywhere, this information is now available in the State

What's Changed

Read more

0.11.2

21 Dec 11:43
a98805b
Compare
Choose a tag to compare

Highlights

  • Unicode-preserving mutators
  • Reworked Tui (GSoC project by @ToSeven)
  • Scalability introspector
  • Larger libafl_frida rework, replaced capstone with yaxpeax in many places
  • Extended libafl_qemu features, added CmpLog and more

What's Changed

FIxes

Read more

0.11.1

31 Aug 13:08
0003342
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: 0.11.0...0.11.1

0.11.0

28 Aug 14:27
7dd7c1a
Compare
Choose a tag to compare

Highlights

  • libafl_qemu update to QEMU 8
  • Hexagon support in libafl_qemu
  • libafl::bolts moved to its own crate, libafl_bolts: use bolts for other projects
  • libafl_libfuzzer runtime with full libfuzzer compatibility: replace any libfuzzer with LibAFL
  • noaslr and gdb_qemu utilities
  • Updated FRIDA

What's Changed

Fixes

Read more

0.10.1

24 May 11:59
89876f2
Compare
Choose a tag to compare

Highlights

  • libafl_cc pass to dump the whole program CFG
  • Centralized event manager with main-secondary architecture
  • MiniBSoD support for more BSDs
  • General fuzzing improvements

What's Changed

Fixes

New Contributors

Full Changelog: 0.10.0...0.10.1

0.10.0

18 Apr 14:15
fc23782
Compare
Choose a tag to compare

Highlights

  • AFL++'s Redqueen implementation
  • New Scheduler method to run on evaluation
  • EcoFuzz implementation
  • Integration with CASR for deduplication
  • Input loading from disk API moved to Corpus (this allows Corpora to be backed by network or databases)
  • Batch mode timeout algorithm with lower syscall overhead (Linux only)
  • Logic stages to enable and disable stages conditionally
  • Full AFL++ forkserver support
  • New WASM fuzzing example

What's Changed

Fixes

  • Fix readme position in qemu sys by...
Read more

0.9.0

31 Jan 10:18
cc53da8
Compare
Choose a tag to compare

Highlights

  • Userspace snapshot-fuzzing using libafl_qemu
  • QEMU system mode fuzzing with fast snapshots
  • Tuneable Stage, Scheduler, ScheduledMutator to change behavior on the fly
  • Differential observers
  • SyncFromBrokerStage to sync from a broker with a different Input type
  • Introduce stable CorpusId to remove/update entries in Corpus
  • Forkserver support to AFL++ adaptive map size and CmpLog
  • Tinyinst binary-only instrumentation support
  • New logo LibAFL logo

What's Changed

##Fixes

Read more

0.8.2

12 Oct 22:23
089bc49
Compare
Choose a tag to compare

Highlights

  • NYX bridge with LibAFL with libafl_nyx by @syheliel
  • JSON logging monitor by @eknoes
  • Testcase and corpus minimizers by @VTCAKAVSMoACE
  • TimeoutInprocessForkExecutor by @tokatoka
  • Builds on various *nix operating systems by @devnexen

What's Changed

  • New Pass Manager Arguments in #724
  • Core affinity implementation for freebsd by @devnexen in #736
  • NYX Executor (GSoC '22) by @syheliel in #693
  • OSX force_load option in #743
  • Add continous JSON Logging monitor by @eknoes in #738
  • Netopenbsd build fix by @devnexen in #746
  • follow-up on netbsd build fix, simplification. by @devnexen in #750
  • Add test case minimising stage by @VTCAKAVSMoACE in #735
  • Implement a corpus minimiser by @VTCAKAVSMoACE in #739
  • Skippable stage, generator wrapper for Grimoire in #748
  • MapFeedback: Adding support for with_name() by @TeumessianFox in #752
  • dragonflybsd build fix for core affinity. by @devnexen in #753
  • CI for FreeBSD in #754
  • core affinity for FreeBSD pinning task to the wanted cpu by @devnexen in #756
  • Do not zero-init struct in QEMU in #758
  • adjust NyxExecutor trait bound to HasTargetBytes from HasBytesVec by @tcheinen in #760
  • libafl_frida ASan hook adding apple's memset_pattern* api. by @devnexen in #761
  • frida follow up on previous change for apple. by @devnexen in #763
  • Add track_stability option to CalibrationStage in #781
  • Dump registers on freebsd amd64 by @devnexen in #779
  • Builds on Illumos, by @devnexen in #775
  • reduces warnings when only version output is asked. by @devnexen in #778
  • Extend gramatron recursive mutator to recurse 5 times in #783
  • Dump registers on NetBSD amd64 by @devnexen in #786
  • Add support for ARMBE8 by @WorksButNotTested in #768
  • Dump reg for openbsd by @devnexen in #787
  • Windows gdiplus by @expend20 in #789 & #792
  • Remove clang download from windows CI by @expend20 in #791
  • write_crash netbsd implementation by @devnexen in #788
  • bolts::cpu::read_time_counter on arm64 by @devnexen in #790
  • Add ability to use virtual dispatch to stagesTuple by @radl97 in #801
  • Adding CPSR register for arm qemu emulation by @TeumessianFox in #800
  • Enable additional rustc errors in test only in #809
  • Adding fork feature passing from libafl_qemu to libafl crate by @TeumessianFox in #806
  • Hide prelude behind feature flag in #782
  • TimeoutInprocessForkExecutor in #797
  • Fixes typo and grammar in spawn_instances.md doc by @Emauz in #811
  • Minor changes for linux without fork feature by @TeumessianFox in #814
  • Hook IsProcessorFeaturePresent to crash with STATUS_STACK_BUFFER_OVERRUN exception by @expend20 in #804
  • Added Hacking TMNF blogpost to Resources in #819
  • Moving to named parameters in format strings in #827

Fixes

New Contributors

Full Changelog: 0.8.1...0.8.2

0.8.1

18 Aug 11:29
eac7307
Compare
Choose a tag to compare

Highlights

Further Changes

Fixes

New Contributors

Full Changelog: 0.8.0...0.8.1

0.8.0

18 Jul 13:32
999eaad
Compare
Choose a tag to compare

Highlights

  • Graphical TUI Monitor based on tui-rs (#480)
  • Differential Fuzzing Support: Differential executor, diff feedback, stdio observers (#521)
  • Grimoire structured fuzzing support (#487)
  • LLVM AutoTokens (#470)
  • Much simpler API for feedback states (#627)
  • Switched all example fuzzers from Makefiles to cargo-make (#537)
  • libafl::Error can generate Backtraces (#617)
  • Refactored libafl Python (#632)
  • [libafl_frida] Enabled ASan for Apple (#478)
  • [libafl_qemu] snapshot fuzzing (#484)
  • [libafl_qemu] custom GDB commands for LibAFL (#671)

Further Changes

New Contributors

Full Changelog: 0.7.1...0.8.0