Peter Whiting
18f288e2d3
Monitor to export fuzzer metrics to Prometheus server ( #875 )
...
* add custom monitor prometheus as a baseline to build functionality
* working server, set up function to update metrics in the registry
* for a test
* metrics for corpus count, objective count, executions, execution rate are intermittently updated and exposed on /metrics
* add runtime metric, clean up some comments
* IP:PORT as argument instead of hardcoded
* add client # as label attached to fuzzer metrics for filtering by client. add clients_count as a tracked metric
* added support for custom metrics added to client_stats via feedbacks, such as edges count. cleaned up code
* cargo fmt
* clean up prometheus.rs
* ran autofix and fmt scripts, and put optional dependencies behind prometheus_monitor feature
Co-authored-by: Dominik Maier <domenukk@gmail.com>
2022-11-07 19:01:59 +01:00
Dominik Maier
28ab5e224b
Fix baby_no_std ( #846 )
...
* Fixing baby_no_std
* Fixed warnings for no_std
* Fix aarch build, clippy
* oops nyx again
* Using CString from alloc
2022-10-19 14:14:10 +02:00
Dominik Maier
e8b3d33bf4
Update dependencies, removed unused deps, CI fixes ( #839 )
...
* update clap, remove unused deps
* update grammartek
* update pyo3
* update pyo3
* undid clap update
* not changing nyx
* updated deps
* Update more deps, fixes
* not needed clippy
* fix windows
* try to enable deprecated pyproto for pyo3
* unused
* moving some things to clap4 after all
* initial move to clap 4
* fix clap
* more clap4, removed accidental file
* fixes, fmt
* fix
* all fix no play
* fix
2022-10-18 20:36:43 +02:00
Andrea Fioraldi
089bc49d55
Bump to 0.8.2 and update versions script ( #828 )
2022-10-12 14:57:08 +02:00
Dominik Maier
b7d93a4bea
Hide prelude behind feature flag ( #782 )
...
* Hide prelude behind feature flag
* make prelude default
2022-09-30 20:30:28 +02:00
Addison Crump
0859c3ace2
Implement a corpus minimiser (cmin) ( #739 )
...
* initial try
* correct case where cull attempts to fetch non-existent corpus entries
* various on_remove, on_replace implementations
* ise -> ize (consistency), use TestcaseScore instead of rolling our own
* oops, feature gate
* documentation!
* link c++
* doc-nit: correction in opt explanation
don't write documentation at 0300
* better linking
2022-08-29 13:38:46 +02:00
Dongjia Zhang
eac7307c5a
0.8.1 ( #732 )
2022-08-18 10:23:57 +02:00
Dominik Maier
12052b5f1c
Remove num_cpus dependency ( #717 )
...
* Remove num_cpus dependency
* Fix build, remove more num_cpus
2022-08-03 07:49:32 +02:00
Dominik Maier
5a8bdae26f
Update requirements ( #714 )
...
* Update requirements
* more updates
* nits
* more updates
* update nix for fuzzers
* use any regex 1 instead of 1.6
2022-07-29 09:54:16 +02:00
s1341
c45b6be7e1
Bump rand version ( #680 )
...
* Bump rand version, dropping support for lain
* using lain version with fixed rand
Co-authored-by: Dominik Maier <dmnk@google.com>
2022-07-16 01:46:32 +02:00
Dongjia Zhang
ffe8dbf6af
Bump to 0.8.0 ( #696 )
...
* upd
* more
2022-07-11 21:59:11 +02:00
Andrea Fioraldi
7147170240
New hooks for libafl_qemu ( #673 )
...
* new block and edge hooks
* Wrking new hooks
* no Pin, just box
* working call tracing
* invalidate_block flag
* working call stack tracking helper
* callstack push
* fixes
* py
* fixes
* clippy
* clippy
* gdb api
* kill introspection
* fix
* upd qemu
* upd qemu
2022-06-16 11:09:07 +02:00
Dongjia Zhang
c9f802a3b8
Improve map feedback/observer ( #665 )
...
* improve
* a
* fix it back
* more
* NO
* try
* fix python
* more
* specialize map map feedback with u8
* more
* fmt
* usable_count = len
* clp
* restore iterator based map feedback
* simd specialization
* optimize hitcounts
* fix hitcounts
* no_std
* moar unsafe
* fix
* clippy
* clippy
* opt non-specialized is_interesting
* fmt
* op post_exec
* cleanup
* even more
* allow
Co-authored-by: Andrea Fioraldi <andreafioraldi@gmail.com>
2022-06-10 10:14:12 +02:00
Dominik Maier
3a5118fc02
Moved core_affinity to bolts ( #655 )
...
* moved core_affinity to bolts crate
* clippy
* fixes
* ubuntu
* ubuntu++
* moved core_affinity to os
* fixed more imports
* fixed imports
* fixed test
* moved core_affinity out of os
* added affinity
* moved to windows crate
* fmt
* some tiny fixes
* more win
* refactoring
* win?
* win?
* clp
* upd
* more
* copy & paste & fix
* clp
* try
* fix
* more
* fix
Co-authored-by: tokatoka <tokazerkje@outlook.com>
2022-05-30 10:02:46 +02:00
Dongjia Zhang
dd78210335
Windows-rs update ( #657 )
...
* upd
* more
2022-05-29 13:04:21 +02:00
Andrea Fioraldi
a544bc042d
Move build_id to bolts ( #649 )
...
* Drop the build_id depedency and move to bolts
* tabs->spaces
* clippy build_id fixes
* frida clippy
Co-authored-by: Dominik Maier <dmnk@google.com>
2022-05-27 01:05:03 +02:00
Andrea Fioraldi
28edbad618
Refactor libafl Python bindings ( #632 )
...
* SerdeAny MapFeedbackState
* Fix macro syntax
* alloc
* fix
* Metadata calibrate and map feedback
* metadata feedback states
* compile
* fmt
* Register common generic types
* tests
* sugar
* no_std
* fix book
* alloc
* fix fuzzers
* fix
* fmt
* disable python bindings for libafl
* clippy
* fmt
* fixes
* fmt
* compiling python bindings
* no uaf in python observer
* working python observer, feedback and executor
* mutators
* fmt
* nits
* added autofix script
* clippy
* clippy
* more clippy
* fix
* ignore clippy for deserialization
* newlines
* nits
* fmt
* feedbacks
* generators
* methods
* feedbacks
* pyerr
* fix
* fix
* fmt
* python bindings in CI
* fix
* fix
* fix
* autofix
* clippy
Co-authored-by: Dominik Maier <dmnk@google.com>
2022-05-25 16:56:06 +02:00
Andrea Fioraldi
da537aae83
FeedbackState as metadata ( #627 )
...
* SerdeAny MapFeedbackState
* Fix macro syntax
* alloc
* fix
* Metadata calibrate and map feedback
* metadata feedback states
* compile
* fmt
* Register common generic types
* tests
* sugar
* no_std
* fix book
* alloc
* fix fuzzers
* fix
* fmt
* disable python bindings for libafl
* clippy
* fmt
* fixes
* fmt
* fix
* fix
* fix
* fix
* fix
* release autofix
* fix
* fix
* fix
* fmt
* fix
* fix
* name
* fix
Co-authored-by: Dominik Maier <dmnk@google.com>
2022-05-24 16:05:22 +02:00
Andrea Fioraldi
e513b86df0
Backtrace in libafl::Error ( #617 )
...
* backtrace errors
* qemu
* remove mopt-specific error
* fixes
* fixes
* duh
* clap
* clippy
* clippy
* clippy
Co-authored-by: Dominik Maier <dmnk@google.com>
2022-05-05 15:52:37 +02:00
Andrea Fioraldi
04c8e96923
afl_exec_sec feature, disabled by default ( #555 )
2022-02-23 16:06:22 +01:00
Farouk Faiz
2dcdaaa89f
Intial support to Python bindings for the libafl crate ( #429 )
...
* Add libafl py module
* Hardcoded baby_fuzzer
* Trait abstraction: MapObserver
Send type name as a param as it's needed for extracting the rust struct from the PyObject
* Fix merge
* Impl traits for python wrappers
* Add PythonExecutor
Not buildable version
* Executor trait bindings
* Monitor trait bindings
* EventManager trait bindings
* Fix warnings
* Add corpus trait bindings
* Use corpus trait bindings
* Rand trait bindings
* Remove python feature from default
* Add cfg attribute
* Fix fmt
* No std box
* Fix clippy
* turn OwnedInProcessExecutor in a simple type alias
* remove crate-type from libafl's Cargo.toml
* Add python baby_fuzzer
* Fix doc
* Maturin doc
* multiple map observer
* fmt
* build pylibafl with nightly
* macro for map element type
* Update py baby_fuzzer & fmt
* Mutator bindings
* fmt
* merge conflicts
* StdMutationalStage bindings
Not working: Cannot pass mutator to new method because not clonable
* Stage bindings
* StagesOwnedList bindings
Not working: Stage not clonable
* Unsafe transmute copy fix
* Use Stage bindings in baby_fuzzer
* fmt
* fmt
* Fix doc
* fix merge
* Remove x86_64 feature from pylibafl
Co-authored-by: Andrea Fioraldi <andreafioraldi@gmail.com>
2022-02-14 11:41:39 +01:00
Dominik Maier
7dad2153e2
Clippy for Cargo ( #532 )
...
* Clippy for Cargo
* clippy fixes
* clippy fixes
* edition
* fix
* wrong self hidden
* fix
* more clippy
2022-02-11 14:34:01 +01:00
Andrea Fioraldi
63d89463a3
Improve libafl_qemu snapshots ( #484 )
...
* mprotect
* expose EnumIter
* thread safe mem snapshot
* update qemu hash
* clippy
* child helpers
* fixes
* fix build
* fix dep
2022-02-09 09:40:59 +01:00
Dominik Maier
9dfc6aa404
CI and fixes for arm32 no_std build ( #511 )
...
* arm32 no_std fixes and clippy
* moved criterion to benches crate
* benches no longer live here
2022-02-01 00:57:58 +01:00
Youssef
e307dfb16f
Implement backtrace observers for crash dedupe ( #379 )
...
* create stacktrace observer
* create stacktrace feedback
* post-merge fixes
* address comments
* update Cargo.toml
* fix CI issue + dynamic naming
* duplicate baby_fizzer
* update stacktrace baby_fuzzer
* force unwinding tables
* ignore test dumps
* fix stacktrace baby_fuzzer logic
* upgrade Backtrace version
* trigger observers.post_exec in crash_handler
* implement NewHashFeedbackState and update logic
* digest symbols pointers
* cleanup
* minimal output
* fix backdated EventFirer generic param
* add baby_fuzzer example with a fork executor
* duplicate baby_fuzzer_stacktrace with forkexecutor
* backtrace collection implemented
* add c app fuzzer example with a fork executor
* group backtrace baby fuzzers
* added c code baby fuzzer with inprocess executor
* remove need for static COLLECT_BACKTRACE
* moved code to stacktrace.rs + fixed bug
* add comment
* add command executor fuzzer example
* post merge cleanup
* add missing doc
* address comment
* fix nit
* clean duplicate variable in timeout handler
* fix command executor bt collection
* clean code and use StdShMem
* cleanup
* add ObserverWithHashField + rename StacktraceObserver
* rename + refactor some code
* add CommandBacktraceObserver
* update command executor
* update baby fuzzers
* simplify BacktraceSharedMemoryWrapper
* use better names + static methods
* use std feature macro on BacktraceObserver + fix bug
* use Box in HashValueWrapper to minimize variants size diff
* use copy_from_slice
* std conditional backtrace collection
* fix std import
* fix comment
* add exit_kind to observer.post_exec
* added hash trait to Input
* collect backtrace in post_exec
* add crash handlers to InProcessForkExecutor
* fix panic message
* duplicate forkserver fuzzer example
minimal example
update
* proto bt collection working
* rename CommandBacktraceExecutor to ASANBacktraceExecutor
* refactor ASANBacktraceObserver
* support for forkserver working
* update fuzzer example
* less verbosity
* Post merge fixes
* implement hash for GeneralizedInput
* update forkserver example after merge
* clippy fixes
* fix inproc test
* fixes for cargo hack --feature-powerset
* fix baby_no_std
* implement Hash for NautilusInput
* update fork executor baby fuzzer
* fix doc
* implement Hash for PacketData
* fix windows build
* fix windows no_std
* fix backtrace baby fuzzers README
* add comments
* move setup_bt_panic to constructor
* pre/post child exec hooks in Observer
* setup_child_panic_hook
* fix ObserversOwnedMap on nightly
* add backtrace fuzzers to CI checks
* fix typo
* fix relative paths in test_all_fuzzers.sh
Co-authored-by: Andrea Fioraldi <andreafioraldi@gmail.com>
2022-01-31 15:58:15 +01:00
epi
4862928e1e
[READY] Add options parser ( #493 )
...
* added parser to workspace
* added parser to utils
* added must_use/docstring
* added qemu_args/removed mod names
* implemented subcommands, added example
* added crate docs
* updated based on StdFuzzer options
* added frida optiosn
* added qemu parser example
* added repeat option
* added custom subcommands
* comments and nitpickery
* pedantic fixes
* updated per review
* additional doc-comment over attribute fixes
* moved everything to bolts::cli; updated docs and things
* removed utils/fuzzer-options from cargo.toml
* forgot std flag; added
* fmt
2022-01-28 18:10:09 +01:00
Andrea Fioraldi
cc0880e784
Monitor with UI based on tui-rs ( #480 )
...
* first working version
* full gui
* remove warnings
* remove errors in release
* allow missing_docs in tui
* tui_monitor flag
* working graphs
* disable tui on windows
* clippy
* clippy
* tui module only under std
* use tui from git
* fmt
* tui from crates
2022-01-20 23:55:48 +01:00
Andrea Fioraldi
bca1f392a7
Bump to 0.7.1 ( #465 )
...
* bump to 0.7.1
* bump libafl_qemu
2022-01-13 11:32:57 +01:00
Andrea Fioraldi
180883acb7
Panic when using nautilus with stable Rust
2022-01-10 12:17:32 +01:00
Andrea Fioraldi
d7dbd021a4
Specialization feature in nightly
2022-01-10 11:49:13 +01:00
Andrea Fioraldi
eed864eb36
switch to rustversion
2022-01-10 10:12:26 +01:00
Dominik Maier
af3d321213
Derive debug for all structs in LibAFL ( #442 )
...
* documentation, warnings
* fixed docs
* docs
* no_std
* test
* windows
* nautilus docs
* more fixes
* more docs
* nits
* windows clippy
* docs, windows
* nits
* debug all the things
* derive debug for all core library components
* Docu for libafl_targets
* nits
* reordered generics
* add docs to frida, debug
* nits
* fixes
* more docu for frida, nits
* more docu
* more docu
* Sugar docs
* debug for qemu
* more debug
* import debug
* fmt
* debug
* anyap_debug feature no longer needed
* tidy up unused fn
* indicate if we left out values for struct debug
* implement Debug for sugar
* debug allthethings
* ci
2022-01-03 00:47:17 +01:00
Dominik Maier
efc804fe7d
Updated dependencies ( #443 )
...
* updated dependencies
* updated info in toml
* Windows fixes
* fixed immport
* u32 -> i32
* ignore i32 overflows in constants
* removed unused double allow
2022-01-02 17:52:44 +01:00
Andrea Fioraldi
6274ad4594
Refactor libafl_qemu creating the Emulator struct and post syscall hooks ( #430 )
...
* working without asan.rs
* working asan
* update fuzzers
* mremap in snapshot
* sugar
* python
* fix python
* clippy
* fmt
* fuck you loader
2021-12-23 09:10:13 +01:00
Dongjia Zhang
fc0881194d
Windows timeout fix with critical sections ( #391 )
...
* add
* unix fix
* unsafe positions
* another unsafe!
* ignore
* ignore
* make changes back
* fix
* fix
* fmt
* bug fix
* fmt
* compiler fence
* import
* typo
* add another critical section
* fix
* fix
* exclude windows book test
* typo
* fence
* why
Co-authored-by: Andrea Fioraldi <andreafioraldi@gmail.com>
2021-12-09 13:55:20 +01:00
Andrea Fioraldi
c6553c5351
Use grammartec on crates
2021-12-09 09:58:19 +01:00
Andrea Fioraldi
c3ea7a042c
Update QEMU bridge revision hash
2021-12-06 10:04:59 +01:00
Andrea Fioraldi
96ef72e682
Fix grammartec rev
2021-12-02 16:43:48 +01:00
Andrea Fioraldi
e1349463db
Fix grammartec version to 0.1.0
2021-12-02 16:41:01 +01:00
Andrea Fioraldi
37b8cb0d2f
Bump to 0.7
2021-12-01 17:22:09 +01:00
Dominik Maier
fff7cbd90f
implemented MapMaxPow2Feedback ( #371 )
...
* implemented MapMaxPow2Feedback
* using num-traits for qemu as well
* moved back to Num for float fun
* OneOrFilled Feedback
2021-11-11 01:49:46 +01:00
s1341
dd0b5fa74f
Add minibsod ( #362 )
...
* Add minibsod
* fmt'
* clippy
* nostd/mac fixes
* windows fix
* woops. Mac fixes
* Get rid of unneccesary sleep
* Fix missing unsafe
* clippy fixes
* make ucontext,siginfo not a reference
* fmt
* fix _context
* Add stubs for non-apple, non-linux, non-android; add a todo
* Fmt
* macos x64, testcase, cleanup
* no_std
* added fault address to minibsod for apple x64
* added err, hexlified values (as per mac panic)
* informing user about lack of registers
Co-authored-by: Dominik Maier <domenukk@gmail.com>
2021-11-07 15:32:43 +01:00
Dominik Maier
72d22ee5e5
remove unused const hashing mode ( #358 )
2021-11-06 18:23:10 +01:00
Andrea Fioraldi
b4e15fe9f3
Bridge grammartec from Nautilus to libafl ( #342 )
...
* nautilus dep
* nautilus generation
* fix mutator
* start new mutator for nautilus
* other mutators
* baby
* ci
* NautilusFeedback
* fix unparse
* ci
* ci
* ci
* ci
* nigghtly clippy
* ci
* fix
* ci
* ci
* update construct automatata
* fix
* ci
* clippy
* clippy
* nightly clippy
* more clippy
* minor clippy
Co-authored-by: Dominik Maier <domenukk@gmail.com>
2021-11-06 02:21:53 +01:00
Dominik Maier
ea820a1694
Fork feature flag to disable fork in Launcher ( #351 )
...
* Fork feature flag to disable fork in launcher
* FnOnce instead of FnMut
* cleanup
* fix no_std
* doc/warning fix
* useless clippy fix
2021-11-05 17:26:49 +01:00
Andrea Fioraldi
eca605bf01
MultiMapObserver and sancov 8bit-counters instrumentation ( #343 )
...
* MultiMapObserver and 8bit instrumentation
* fix test
* clippy
* fix
* fix tutorial
* sancov_8bit targets feature
2021-11-04 10:08:50 +01:00
Jordan McLeod
3d436b7519
Upgrade to Rust 2021 Edition ( #340 )
...
* Enable missing const_xxh3 feature
* Move to Rust 2021 Edition
* Fix clippy complaints
* Remove imports made unecessary in 2021 edition
2021-11-04 09:59:49 +01:00
julihoh
2e55d24f5a
update deps ( #327 )
...
* experimental update deps
* Reverted to rand-core 0.5.1 for Lain compatibility
* updated nix
* less strict libc dep
* remove deprecated errno conversion
Co-authored-by: Dominik Maier <domenukk@gmail.com>
2021-10-12 10:32:21 +02:00
julihoh
7930d42948
update packages related to concolic ( #325 )
...
* update packages related to concolic
* install z3 on CI macOS
I have no clue how this worked before...
Co-authored-by: Dominik Maier <domenukk@gmail.com>
2021-10-11 21:24:37 +02:00
Dominik Maier
5a722994ac
Still fixing CI ( #305 )
...
* clippy
* clippy on windows
* clippy fixes on windows
* clippy, fmt
* fixed testcases for windows
* fixing workspace.yml
* testcase no longer fails without clang
* fix github dependencies to specific revisions
* fix qemu without python
* cleanup HookResult
2021-09-29 17:58:09 +02:00