3180 Commits

Author SHA1 Message Date
Dominik Maier
6df1b34375
Add Taplo check to CI (#2451)
* Add Taplo check to CI

* more taplo

* Try to make this easier
2024-07-26 18:38:50 +02:00
kvalerio
09a8b1dd80
Revive dead link 🧟 (#2452)
* dead link

* deadlink
2024-07-26 18:37:44 +02:00
Dominik Maier
e83dc792da
0.13.2 (for real this time) (#2448)
* 0.13.2 (for real this time)

* More 0.13.2

* Make sure this never bites us

* Update ahash
2024-07-26 13:41:05 +02:00
Mrmaxmeier
afbdc02c54
Format all tomls with taplo fmt (#2436)
Co-authored-by: Dominik Maier <domenukk@gmail.com>
2024-07-26 10:03:10 +02:00
Aarnav
76e1b4cb1e
Fix cmplog implementation (#2439)
* fix cmplog implementation
only set testcase filepath if filepath is none

* libafl-fuzz: fix minor CI

* add missing fields to AFLppCmpLogOperands

* libafl-fuzz: pin CI AFL version to a commit
fix extended_cmplog_instrumentation

* libafl-fuzz: fix CI

* this should not panic

* aaa

* libafl-fuzz: fix cmplog CI

---------

Co-authored-by: Toka <tokazerkje@outlook.com>
2024-07-25 18:10:21 +02:00
Saketh Reddy
c857b8dd77
Fix markdown issue in fuzzers/libpng/libfuzzer_libpng_cmin/README.md (#2437)
Adds a single `
2024-07-23 16:45:58 +02:00
Dongjia "toka" Zhang
7391c6040b
always update textcase.file_path (#2432) 2024-07-23 15:02:03 +02:00
Mrmaxmeier
c44d361828
CI: Update actions and fix warnings (#2435)
* CI: update to checkout@v4 action

Not sure why they decided to bump a major version. It seems like this is
unnecessary churn: https://github.com/actions/checkout/pull/1436#issuecomment-1737711301

* CI: replace archived `actions-rs/toolchain`

It's been unmaintained for four years and has been throwing warnings in
CI:

> The `set-output` command is deprecated and will be disabled soon.

* CI: Bump `cargo-install` action.

This should fix the remaining warnings in CI?

* CI: mdbook-linkcheck: workaround for build error
2024-07-23 12:44:34 +02:00
Zofyan
0dc94a48c5
Added implementation of tolower in libqasan (based on BIONIC's implementation). This is to make LibAFL more compiler agnostic as this function can be named differently sometimes. (#2421)
Co-authored-by: Sofyan Aarrass <s.aarrass@secura.com>
2024-07-22 15:45:32 +02:00
Niklas Gögge
0999ac5003
libqasan: Add missing return to qasan_swap (#2416) 2024-07-22 15:45:13 +02:00
Aarnav
e6b94f3715
Feature/libafl fuzz misc (#2430)
* libafl-fuzz: add cmplog to CI
libafl-fuzz: add option to specify custom rng sed
libafl-fuzz: add help messages to CLI, add file extension support
libafl-fuzz: adhere to AFL++ cmplog bin path format
libafl-fuzz: avoid races when writing to fuzzer_stats
libafl-fuzz: add time tracking for CalibrationStage, MutationalStage and SyncFromDiskStage

* libafl-fuzz: fix libafl paths

* libafl-fuzz: remove redundant cmplog check

* libafl-fuzz: ingore UnstableMapEntries when using queue scheduler in afl_stats.rs
libafl-fuzz: track max_depth for QueueScheduler
libafl-fuzz: fix custom input file

* libafl-fuzz: fix Makefile

* clippy
2024-07-22 15:43:47 +02:00
s1341
695184169e
frida: make hooks thread local (#2429)
* frida: make hooks thread local

* Fmt

* clippy
2024-07-22 14:09:08 +02:00
Dongjia "toka" Zhang
f6151f4507
0.13.2 (#2423)
* 0132

* fix
2024-07-19 23:00:37 +02:00
Romain Malmain
82f11c22ad
Various CI improvements + fix wrong format check in CI (#2417)
use of LLVM 19 by default
    LLVM version should be much easier to switch from now on
    a lot of code repetition has been deleted
    removed llvm-related github action
    fix format check
    other small things

---------

Co-authored-by: Toka <tokazerkje@outlook.com>
2024-07-19 22:32:50 +02:00
Scott
747385ae7d
update function from _libafl_exit_call2 to _libafl_sync_exit_call2 (#2392)
Co-authored-by: Scott Powell <scottmpowell@protonmail.com>
2024-07-19 19:01:54 +02:00
Romain Malmain
1205c2144c
Restructure the fuzzers folder (#2409)
* move fuzzers in subfolders

* add readme

* remove redundent fuzzers
2024-07-19 18:24:24 +02:00
Aarnav
c22a62c32a
libafl-fuzz: add IndexesLenMinTimeScheduler back (#2426) 2024-07-18 16:47:00 +02:00
Dongjia "toka" Zhang
78a30c4403
Fix baby fuzzer tui (#2425) 2024-07-18 14:56:21 +02:00
Dongjia "toka" Zhang
56d70accf5
Fix cmin (#2420)
* fix minimizer

* clp
2024-07-18 11:11:37 +02:00
Dongjia "toka" Zhang
4f970baa7b
Change Corpus Pruning algorithm (#2418)
* push

* upd

* add last found time

* add common as prerequisite

* clp

* aa

* more clp

* fix how to get corpus id

* pruning

* aa

* no std

* fix

* working?

* push
2024-07-18 11:11:14 +02:00
Dongjia "toka" Zhang
536f00a056
Don't panic even if bitmap is zero in calibrate.rs (#2419) 2024-07-17 18:26:17 +02:00
Romain Malmain
c96ea616fe
Qemu helpers & hooks refactoring (#2267)
* Helper is now called Module.

* Emulator now contains hooks state.

* Emulator is managed by QemuExecutor.

* QEMU hooks have been completely refactored on the rust side.

* Generics cleanup.
2024-07-17 11:46:42 +02:00
Axel Souchet
f5e47c33fb
Documentation fix in 'Design' > 'Architecture'. (#2412) 2024-07-17 11:08:29 +02:00
Aarnav
b9da7dd87f
Introduce Persistent Record for libafl-fuzz (#2411)
* libafl-fuzz: fix PERSISTENT_SIG and DEFERRED_SIG

* libafl-fuzz: add AFL_PERSISTENT_RECORD

* libafl-fuzz: update README
2024-07-17 00:35:06 +02:00
Dominik Maier
713652e5d8
Better errors for empty registry in AnyMap (#2405)
* Better errors for empty registry

* Make errors non-panic

* clippy
2024-07-16 18:10:18 +02:00
Dongjia "toka" Zhang
f00470ddaa
Corpus pruning stage (#2399)
* push

* upd

* add last found time

* add common as prerequisite

* clp

* aa

* more clp

* fix how to get corpus id

* pruning

* aa

* no std

* fix
2024-07-16 18:04:23 +02:00
__gsch
d8e53d5b65
impl HasEventManagerId for LlmpRestartingEventManager (#2406) 2024-07-16 14:06:56 +02:00
Aarnav
791598228e
fix incorrect interval check in sync from disk stage (#2408)
* fix incorrect interval check in sync from disk stage

* simplify check
2024-07-16 13:52:25 +02:00
Dongjia "toka" Zhang
074a16f844
Fix autotokens (#2407) 2024-07-16 13:04:24 +02:00
Dominik Maier
4370a84bd2
Expose find_new_files_rec in libafl_bolts::fs (#2404) 2024-07-16 04:47:03 +02:00
Dominik Maier
dc93f6c186
Rename load_new_from_drectory to find_new_files_rec (#2403) 2024-07-16 03:35:36 +02:00
Dominik Maier
7850b9bce6
Address recursion Clippy in sync.rs (#2402) 2024-07-16 03:26:45 +02:00
Aarnav
aa21815a97
Introduce libafl-fuzz (#2362)
* Introduce libafl-fuzz

* fix corpus file path

* simplify SeedFeedback

* fix incorrect comment

* add clap::ValueEnum to PowerSchedule as an optional derive if clap is enabled

* UnixShMemProvider replaced with StdShMemProvider for libafl-fuzz

* remove io_error_more feature constraint

* libafl-fuzz: make Ok(()) unreachable in CentralizedLauncher

* libafl-fuzz: make harness_input_stdin to harness_input_type with &'static

* libafl-fuzz: move each feedback to it's own file

* make run_fuzzer_with_stage into a function.
use CachedOnDiskCorpus instead of OnDiskCorpus for Corpora
remove utils file

* remove unecessary clone

* libafl-fuzz: cleanup AFLStatsStage

* move peak_rss_mb to libafl_bolts

* parse envs by hand

* add sensible defaults for map size and broker port

* fix test.sh and corpus_id padding

* add Makefile.toml

* libafl-fuzz update test suite

* libafl-fuzz: clippy

* rename peak_rss_mb to peak_rss_mb_children

* remove minor version constraint for clap

* libafl-fuzz: fix ELF check and instrumentation check in check_binary

* libafl-fuzz: improve Makefile.toml

* simplify fuzzer and cleanup typos

* libafl-fuzz: load corpus entries in a multicore fashion

* libafl-fuzz: create output dir if not exists (non-racey)

* libafl-fuzz: add sequential scheduling support
libafl-fuzz: add cmplog options
libafl-fuzz: add test-cmplog.c to CI

* rename peak_rss_mb_children to peak_rss_mb_child_processes

* fix race condition in SyncFromDiskStage, add interval based checking and support for multiple directories.
libafl-fuzz: add support for syncing with foreign fuzzers

* update README

* implement AflScheduler for QueueScheduler.
Add queue_cycles field to
AflScheduler

* libafl-fuzz: remove dependecy on SchedulerMetadata for AflStatsStage

* clippy

* remove queue_cycles from AflScheduler into int's own trait.
libafl-fuzz: simplify map observer tracking

* clippy

* libafl-fuzz: disable cmplog check in CI for now

* add missing constraints for libafl_qemu executor

* clippy

* libafl-fuzz: improve Makefile
libafl-fuzz: clippy

* libafl-fuzz: misc

* misc typos, beautify

---------

Co-authored-by: Dongjia "toka" Zhang <tokazerkje@outlook.com>
Co-authored-by: Dominik Maier <domenukk@gmail.com>
2024-07-16 02:10:20 +02:00
Romain Malmain
e8de3591bf
Fix cfg clippy for libafl_qemu (#2397)
* optional final comma

* fix systemmode
2024-07-16 00:37:54 +02:00
Dominik Maier
9d5be4ede1
clippy_nyx (#2401) 2024-07-15 23:49:56 +02:00
Dongjia "toka" Zhang
8919024e83
New clippy script (#2400)
* claude.ai

* aaa

* ps1

* set -e

* nightly

* nightly default

* components?
2024-07-15 19:17:21 +02:00
Addison Crump
50a4a0abd9
Template out libafl_libfuzzer (#2398)
* template out libafl_libfuzzer

* fix some final path oddities

* missed a spot
2024-07-15 19:10:51 +02:00
Aarnav
fed61eb6b8
Fix qemu_launcher by moving stop request handling to fuzz_one (#2394)
Co-authored-by: Romain Malmain <romain.malmain@pm.me>
2024-07-15 15:41:51 +02:00
Dominik Maier
ea3e70b6e5
Remove release_max_level_info from log (#2396) 2024-07-15 14:55:13 +02:00
Dongjia "toka" Zhang
7969e7ae51
Another attempt to add interesting crashing input on crash (#2391)
* aa

* why??????????????

* ppp

* aa

* aa

* abcde

* fixer

* ppp

* aa

* fix from windows

* sugar

* ff

* ??

* a

* to log::error

* exclude

* exclude libafl_qemu clippy on windows

* pp

* aa

---------

Co-authored-by: Your Name <you@example.com>
2024-07-15 13:58:39 +02:00
Romain Malmain
539ac91ce0
fix qemu ci not running aggressively enough (#2395) 2024-07-15 13:55:35 +02:00
Valentin Huber
4f7444395a
Add function to make mmap shmem available for child processes (#2390) 2024-07-13 13:22:32 +02:00
Dominik Maier
79cbc16800
Replace uses std HashMap with hashbrown for consistency (#2387)
* Replace uses std HashMap with hashbrown for consistency

* fix

* more fix

* Hashbrownify libfuzzer_runtime

* more
2024-07-12 17:42:07 +02:00
Dominik Maier
7feeb00546
Fix docs (follow-up to #2385) (#2388)
* Fix docs (follow-up to #2385)

* More fix

* fix fuzzer

* More docs
2024-07-12 16:13:43 +02:00
Dominik Maier
3c93b96b70
Introduce TuiMonitor builder, clean up monitor docs and names (#2385)
* Introduce TuiMonitor builder

* Some random docs

* More documentation for monitors

* fixed critical whitespace

* Rename all-caps TOML and JSON to Toml and Json in monitors

* actually rename

* more
2024-07-12 15:27:45 +02:00
Dominik Maier
24aa640df7
Clarify two more comments (#2384)
* Make language clearer

* Two more comments
2024-07-12 13:07:19 +02:00
Dominik Maier
d4101a671c
Make language clearer (#2383) 2024-07-12 13:04:49 +02:00
Dominik Maier
fa4241f4f8
Make atheris load multiple tokens files (#2382) 2024-07-12 12:46:42 +02:00
Dominik Maier
081c218737
More Clippy (#2381)
* More Clippy

* This looks nicer indeed
2024-07-12 11:05:03 +02:00
Nereuxofficial
4931db6469
doc: Listing mutators in the module documentation (#2369)
* doc(libafl_nyx): More detailed README

* doc(libafl): Documentation about mutators

* doc(libafl): fix Reference to MOpt

* doc(libafl): Improved note about Mopt

* doc: More documentation for different mutators
2024-07-11 15:35:36 +02:00