* 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>
* 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>
* 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
* add HasStopNext to State which exposes an API to stop the fuzzer. Stops the fuzzer in fuzz_loop or
fuzz_loop_for when set to true
* fix import
* rename HasStopNext to HasShouldStopFuzzing and stop_next to should_stop_fuzzing
* added HasShouldStopFuzzing trait constraint for libafl_libfuzzer_runtime fuzzer
* rename HasShouldStopFuzzing to Stoppable and add it as a type constraint in libafl_libfuzzer report.rs
* rename should_stop_fuzzing -> should_stop
* introduce Event::Stop
* fix prelude import
* Call send_exiting when processing Event::Stop in restartable managers
* fix clippy
* introduce on_shutdown function in EventProcessor, a function to exit
without saving state gracefully. In contrast with on_restart.
* call manager.on_shutdown when stopping in fuzz_loop due to state.should_stop
* Add missing on_shutdown implementations
Check after every stage in Stages::perform_all if should exit and do so.
* remove specialization
* fix doc
* introduce EventProcessor constraint in libafl_libfuzzer_runtime
run clippy in libafl_libfuzzer_runtime
* fix CentralizedEventManager's on_shutdown not calling inner.on_shutdown
* fix bugs in CentralizedLauncher that wouldn't allow children to terminate properly
* don't call send_exiting when processing Event::Stop since it will be called when calling on_shutdown anyways
* clippy
* add set_exit_after so broker does not need to inner_mut to set exit_cleanly_after
* return Cow<str> from Event::name_detailed instead of a String
* fix missing import in libafl_libfuzzer_runtime
* add initate_stop and reset_stop to Stoppable trait to superceed should_stop_mut
* clippy
* typo
* rename initate_stop to request_stop, should_stop to stop_requested and reset_stop to discard_stop_request
* fix missing import
* windows clippy fix
* fix broker typo
* doesn't work poc
* Works
* make this work with or without feature
* start time
* Fix fixes
* Fix more build
* fix build
* reset changes in fuzzbench fuzzer
---------
Co-authored-by: Toka <tokazerkje@outlook.com>
* All Ids should be id not idx
* More
* fix
* win?
* win?
* win?
* fix
* more fix
* desyscall?
* more
* fmt
* std
* make id less id-y
* fmt
* fix
* cleanup
* fixes all around
* fix
* Fix the broken stuff from refactoring
* remove unused
---------
Co-authored-by: Dongjia "toka" Zhang <tokazerkje@outlook.com>
* try this thing
* this?
* use new mmap signature in nix.
* fix import
* fix to work with addr2line v0.23.
* remove unused flag
* update strum also for dependency...
* clippy
* clippy
* update lain git hash
* bump many outdated crates
* fix hash
* Make every builder ::builder()
* Fix no_std
* More
* Fix clippy, stuff
* More fun
* Make NopShMem do something
* Alloc
* more fmt
* Remove UB in tinyinst executor builder
* Make builder order not matter for tinyinst
* More better
* fix
* docs
* fmt
* more fmt
* clippy
* fix fixes
* tiny thing
* more betterg
* more more
* more builder
* more builder
* more nyx
* undo breaking clippy
* clip
* WIP: windows frida
* frida-windows: fix hooks not present on windows
* windows: allow building using cargo xwin
* frida-windows: fmrt
* frida-windows: cleanup and allow asan/drcov on windows
* frida-windows: fmt
* frida-windows: fix clippy
* frida-windows: handle unknown exceptions gracefully
* frida-windows: rework shadow mapping algo
* frida-windows: add hook functions
* frida-windows: hook functions; fix stack register
* minibsod: enable for windows
* check_shadow: fix edge casees
* asan_rt: rework and add hooks for windows
* inprocess: add minibsod on windows
* Fix warnings
* minibsod: disable test on windows
* WIP: HookRuntime
* Cleanup after merge
* Bump frida-gum version
* Fix conflict marker; update frida
* Make winsafe windows-specific
* Fmt
* Format
* Better detection of clang++ (using cc)
* Make AsanErrors crate public so we can use it in tests
* Add helper to get immediate of operand
* Use HookRuntime to hook asan functions
Tests now passing
* fmt
* Implement recurisve jmp resolve
* Fix reversed logic
* windows_hooks: Don't die if functions are already replaced
* Allow utils to work on windows
* Enable allocator hooking on windows
* Warnings; add trace to free
* Make ASAN tests run windows (with cargo xwin compilation)
* Fmt
* clang-format
* clang-format
* Add more tests
* Fix partial range access bug in unpoisoning/shadow_check
* Merge main
* Fix check_shadow and implement unit tests
* Fix hooking and PC retrieval
* WIP: Working gdiplus fuzzing with frida-ASAN, no false positives
* LibAFL Frida asan_rt and hook_rt fixes for frida_windows (#2095)
* Introduce aarch64
* MacOS fix - MemoryAreas is broken on MacOS and just loops
* Introduce working aarch64 ASAN check
* Implement large blob
* Fix hook_rt for arm64
* Fix poison/unpoison
* Fix shadow check
* Update x86-64
* Fix aarch64 unused import
* Remove extraneous println statement
* merge main
* Fixes
* alloc: add tests, pass the tests
* HookRuntime before AsanRuntime, and don't Asan if Hooked
* hook_rt: Fixes
* Frida windows check shadow fix (#2159)
* Fix check_shadow and add additional tests
* add some additional documentation
* Revert to Interceptor based hooks
* fixes
* format
* Get rid of hook_rt; fixes
* clang-format
* clang-format
* Fix with_threshold
* fixes
* fix build.rs
* fmt
* Fix offset to RDI on stack
* Fix clippy
* Fix build.rs
* clippy
* hook MapViewOfFile
* fmt
* fix
* clippy
* clippy
* Missing brace
* fix
* Clippy
* fomrrat
* fix i64 cast
* clippy exclude
* too many lines
* Undo merge fails
* fmt
* move debug print
* Fix some frida things
* Remove unused frida_to_cs fn for aarch64
* name
* Don't touch libafl_qemu
---------
Co-authored-by: Dongjia "toka" Zhang <tokazerkje@outlook.com>
Co-authored-by: Sharad Khanna <sharad@mineo333.dev>
Co-authored-by: Dominik Maier <domenukk@gmail.com>
Co-authored-by: Dominik Maier <dmnk@google.com>
* QEMU generic memory iterator + Refactoring
* Generic Memory Iterator (systemmode only for now): It is now possible to iterator over memory ranges, independently of the address kind
* Refactoring or Emulator / Qemu structures: they are now handled separately in different files
* Refactoring of Exit Handlers: Result / Error structs have been clarified
* Simple handler for signals
* add new `check-cfg` calls for libafl qemu
* rands: simpler rand_trait code, remove useless test
* rands: provide and use proper random_seed()
* rands: add missing golden tests
* Don't use current_nanos() for seeding
* rands: remove RandomSeed trait