Dongjia "toka" Zhang
1ad1b7cb17
revert typed builder version ( #1357 )
2023-07-10 14:16:24 +02:00
Andrea Fioraldi
65368408dd
Algorithm to choose to serialize the observers or not ( #1227 )
...
the algorithm is balancing between observers serialization and re-execution
2023-07-10 13:42:53 +02:00
Langston Barrett
cbf0952ec7
libafl{,_qemu}: Bump num_enum to 0.6 for syn 2 support ( #1350 )
...
Co-authored-by: Dongjia "toka" Zhang <tokazerkje@outlook.com>
2023-07-10 13:13:53 +02:00
Langston Barrett
3f8c5f585b
libafl{,_concolic}: Bump ctor to 0.2 for syn 2 support ( #1347 )
2023-07-10 13:12:08 +02:00
Langston Barrett
2712430f93
libafl{,_sugar}: Use typed-builder 0.15 for syn 2 support ( #1346 )
2023-07-10 13:11:52 +02:00
Dominik Maier
f858e1a247
Add TcpEventManager ( #1302 )
...
* Tcp manager, initial commit
* no tokio by default
* Allow Any broker type
* Add tcp_manager example
* fix CI
2023-06-10 06:25:25 +02:00
Dominik Maier
62b1bde7a9
Fix AnyMap for TypeIds with 128 bit ( #1311 )
...
* Fix AnyMap for TypeIds with 128 bit
* make const
* added test, removed static_assertions
2023-06-09 14:06:42 +02:00
Dongjia "toka" Zhang
fa1e3fd504
CI ( #1301 )
...
* ci
* fi
* Revert "fi"
This reverts commit ed298d71057607f019e64d58687273a01d30e260.
* Revert "ci"
This reverts commit 6b65936990143a6069abd56dcbe633ac37be2ede.
* fi
2023-06-05 16:29:51 +02:00
Dongjia "toka" Zhang
6f21cb3848
Bump to 0.10.1 ( #1280 )
...
* bmp
* remove DEBUG env var
2023-05-22 12:42:36 +02:00
Kevin Phoenix
6883c776ef
Update pyo3 crate to 0.18.3 ( #1255 )
...
Co-authored-by: Dongjia "toka" Zhang <tokazerkje@outlook.com>
2023-05-10 20:01:51 +02:00
Andrea Fioraldi
fafa27a7e9
serial_test as normal optional dep enabled with std ( #1215 )
...
* sertial_test as a std and test only dependency
* serial_test as normal optional dep enabled with std
2023-04-17 18:16:29 +02:00
Andrea Fioraldi
0f633962ff
Bump to 0.10.0 ( #1156 )
...
* Bump to 0.10.0
* fix
* Fix CI
* Fix copyright
* fmt
---------
Co-authored-by: Dominik Maier <domenukk@gmail.com>
Co-authored-by: Dongjia "toka" Zhang <tokazerkje@outlook.com>
2023-04-05 17:49:53 +02:00
Dominik Maier
0d446bab20
Updated dependencies ( #1174 )
...
* Updated deps
* win
* Revert "win"
This reverts commit a6dfd95f1c63a9471659481d92c5cbc480af6360.
* revert win
---------
Co-authored-by: Dongjia "toka" Zhang <tokazerkje@outlook.com>
2023-04-04 22:58:00 +02:00
Andrey Fedotov
1bd21509af
CASR deduplication for StacktraceObservers ( #1184 )
...
* Implement CasrAsanBacktraceObserver for dedupe crashes using libCASR and ASAN reports.
* Use casr observer with forkserver executor
* Add casr deduplication for AsanBacktraceObserver
* Add casr deduplication for BacktraceObserver
* Add Stacktrace filtering
* Move init_ignored_frames to constructors
* Add go ignore regexps for BacktraceObservers
---------
Co-authored-by: Dongjia "toka" Zhang <tokazerkje@outlook.com>
2023-04-04 19:03:11 +02:00
Dongjia "toka" Zhang
ccd1211cd2
Remove qemu_arm_launcher test from CI ( #1179 )
...
* remove qemu arm
* trigger all
* debug
* revert
* api chg
* fix
* try
* debug
* remove qemu
* no_std
* Update build_and_test.yml
* llvm16
* revert z3
* macos
* fix
* remove test
* don't grep on mac
* fix
* ok
* f
* f
* f
* aaa
2023-04-04 14:49:58 +02:00
Dominik Maier
8f8e74d670
Don't build z3 from source by default (and add static_z3 feature) ( #1160 )
...
* Reduce build times by using preinstaled z3
* fix env order
---------
Co-authored-by: Dongjia "toka" Zhang <tokazerkje@outlook.com>
2023-03-20 10:04:27 +01:00
Langston Barrett
35e5b87188
Cargo feature to avoid regex dependency ( #1102 )
...
regex is a large crate, and is only used in a few specific spots. Users should
have the ability to avoid this transitive dependency if not using the features
in question.
2023-03-03 16:00:49 +01:00
R. Elliott Childre
64a57ad3e3
Move bytecount to dev-dependencies ( #1090 )
...
It is only used in test code
2023-02-23 13:52:43 +01:00
Addison Crump
bdac876dd4
Mutator sampling probability fixes ( #1030 )
...
* fixes for standard mutations
* more mutation updates for sampling probability, tests
* slight doc fix
* clippy gripe
* clippy fixes
---------
Co-authored-by: Andrea Fioraldi <andreafioraldi@gmail.com>
2023-02-16 17:29:57 +01:00
Fabian Freyer
53dba5f49d
Use the log facade instead of println ( #1060 )
...
* switched a couple of println / dbg statements to use log crate
* Use pyo3-log for logging in python bindings
2023-02-14 10:01:51 +01:00
R. Elliott Childre
4d5a759955
Update deps for libafl ( #1042 )
...
Reduces total number of packages from 577 to 571 on building with:
`cargo +nightly build --workspace --all-features`
* ahash 0.7 -> 0.8
* Move `AHasher::new_with_keys` to `RandomState::with_seeds` given the
recommendation from: aHash maintainer:
https://github.com/tkaitchuck/aHash/issues/132#issuecomment-1288207069
* bindgen: 0.61 -> 0.63
* c2rust-bitfields: 0.3 -> 0.17
* criterion: 0.3 -> 0.4
* crossterm: 0.25 -> 0.26
* dynasmrt: 1.2 -> 2
* goblin: 0.5.3 -> 0.6
* hashbrown: 0.12 -> 0.13
* nix: 0.25 -> 0.26
* The `addr` arg of `mmap` is now of type `Option<NonZeroUsize>`
* The `length` arg of `mmap` is now of type `NonZeroUsize`
* Requires updating implementers to update `nix` as well
* prometheus-client: 0.18.0 -> 0.19
* Do not box metrics
* Gauges (a majority of the LibAFL metrics) are now i64 types so there
is a small chance of overflow, with the u64 values that LibAFL
tracks, but unlikely to be problematic.
* Keep `exec_rate` as a floating point value
* serial_test: 0.8 -> 1
* typed-builder: 0.10.0 -> 0.12
* windows: 0.42.0 -> 0.44
Co-authored-by: Dominik Maier <domenukk@gmail.com>
2023-02-06 12:24:42 +01:00
Andrea Fioraldi
fdf579bcd5
Bump to 0.9.0 ( #946 )
...
* bump to 0.9.0
* fix libafl_tinyinst
* fix
---------
Co-authored-by: Dominik Maier <domenukk@gmail.com>
2023-01-31 10:42:01 +01:00
Dominik Maier
e5c220519e
LLMP Broker: timeouts for inactive clients ( #1005 )
...
* LLMP Timeouts
* Make broker timeouts optional
* fix warning
* fix warning
2023-01-25 12:03:23 +01:00
Andrea Fioraldi
7fd9ac0952
SyncFromBrokerStage to sync from a broker with a different Input type ( #997 )
...
* ConverterLlmpEventManager
* docs
* SyncFromBrokerStage
* fix
* separate InputConverter
* nautilus
* nautilus_sync
* send testcases
* upd nautilus
* meta
* fix
* clippy
* fix
* Update build_and_test.yml
* fix
* fix
* Use find_libpython
* ci
* upd qemu
2023-01-20 17:16:29 +01:00
Dominik Maier
97e88af0c5
OnDiskCorpus: Write metadata by default, metadata gzip compression ( #995 )
...
* Write metadata by default
* fix fuzzers
* Cleanup, gzip feature
* Fix casing for ondisk corpus
* fix fmt, clippy
* clippy
* clippy for gdiplus fuzzer
* fmt
2023-01-13 01:07:36 +01:00
Andrea Fioraldi
ec84c71eae
Corpus maps ( #947 )
...
* hashmap corpus for inmemory
* corpus_btreemap feature
* CorpusId
* queue
* MinimizerScheduler::remove
* fixes
* continue
* keys
* working corpus
* ok
* weighted left
* wip
* port weighted scheduler
* it compiles
* doc
* fix mutators
* fix queue
* fix iter
* tests
* fix
* fix
* fix
* py
* clippy
* clippy
* clippy
* cmin
* fix
* fix
* fix
* clippy
* remove Corpus::random_id
2023-01-09 14:15:07 +01:00
Andrea Fioraldi
7b0039606b
Forksrv adaptive map size and AFL++ CmpLog support ( #896 )
...
* AFL++ cmplog map
* map size opt in forkserver
* MapObserver::downsize_map and adaptive map size in forkserver
* fix fokserver_simple cmd opts
* clippy
* fuzzbench forkserver with cmplog
* delete makefile in fuzzbench forkserver
* fuzzbench_forkserver is persistent
* ForkserverExecutorBuilder::build_dynamic_map
* fix
* clippy
* fix
* fix macos
* fix compilation
* fix bugs
* fixes
Co-authored-by: Dominik Maier <domenukk@gmail.com>
Co-authored-by: Dominik Maier <dmnk@google.com>
2022-11-22 10:33:15 +01:00
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