Dominik Maier
e5aaf85d3c
Tuneable Stage, Scheduler, ScheduledMutator ( #874 )
...
* Tuneable Stage, Scheduler, and Mutators
* rename
* fix build
* get rid of prelude
* fmt
* Reworked tunable, fixed stuff, add testcase
* clippy
* further fixes
* fix typo, fmt
2022-11-12 03:02:54 +01:00
Dominik Maier
6b6570ae5f
Use Associated Types for Has* traits and AsSlice ( #881 )
...
* More Associated Types
* AsSlice associated-ified
* added script to find unused files
* fixes for python
* build all the things
* windows fixes
2022-11-10 09:31:04 +01:00
Mrmaxmeier
8e6eaf7002
check_for_blobs.sh: respect gitignore ( #876 )
2022-11-05 23:30:26 +01:00
Andrea Fioraldi
40269a578b
Delete blob and add CI check ( #867 )
...
* Delete blob and add CI check
* fix
* shellcheck
2022-10-27 16:20:29 +02:00
Mrmaxmeier
64bc5d5bdb
CI: speedups and fixes ( #855 )
...
* scripts/clippy.sh: remove cargo clean step
Clippy used to only report warnings in code that was not part of the
incremental cache. This has changed since and I believe we can safely
drop the `cargo clean` step.
* Revert "ci: install z3 to avoid building from source"
This reverts commit 6ff1c4088811040dcfdbd12273f0baf507a4308b.
This doesn't do anything as we're using `static-link-z3` explicitly.
* refactor test_all_fuzzers
nyx tests were not included in `time_record` before this
* nyx fuzzer: move modprobe logic out of setup_libxml2.sh
2022-10-23 01:58:33 +02:00
Mrmaxmeier
cedcee01c0
CI: Build fuzzers with shared cargo target dir ( #845 )
...
* build fuzzers with shared cargo target dir
* Make external build scripts aware of CARGO_TARGET_DIR
* fix libmozjpeg fuzzer with shared target dir
* fix cargo-make default value for CARGO_TARGET_DIR
* avoid ./ in cargo-make for windows compat
* CI: cargo-hack's --feature-powerset is too powerful
* fuzzer_concolic: support CARGO_TARGET_DIR
* ci: install z3 to avoid building from source
* ci: update actions
* ci: test nightly features with nightly rust
* test_all_fuzzers: try pruning more compilation artifacts
* ci: fix nightly feature check
* ci: apply rust-cache action after checkout (d'oh)
The rust-cache action populates the checkout directory, which is promply
deleted by the checkout action during checkout.. whoops!
2022-10-20 21:38:58 +02:00
Andrea Fioraldi
089bc49d55
Bump to 0.8.2 and update versions script ( #828 )
2022-10-12 14:57:08 +02:00
syheliel
758e49ac70
NYX Executor (GSoC '22) ( #693 )
...
* Add ccache
* Update codecov.yml
* Add libnyx
* Fix
* Add nyx build script
* Fix build.sh && init executor.rs
* Fix commit
* Fix code
* initialize `exector.rs`
* refine API in `nyx_bridge.rs`
* initialze `run_target`
* add `test_nyxhelper`
* initize `test_executor`
* remove `nyx_beidge.rs`
* make `test_executor` compile
* Improve test
* refine code
* update version
* fix docker
* fix docker
* Fix clippy
* Fix build
* fix build && add `set_timeout`
* Fix and refine CI
* fix CI
* Fix CI
* Add platform restrict
* cargo fmt
* add parallel mode
* add example `nyx_libxml2_parallel`
* fix fuzzer example
* fix CI
* add README
* fix CI
* fix CI
* fix CI
* remove unwrap and NyxResult
* code format fix
* add libnyx's rev
* fix format
* change Duration format && Fix CI
* caego fmt
* fix CI
* fix CI
* Add doc
* test CI
* Update test_all_fuzzers.sh
* Update test_all_fuzzers.sh
* Update test_all_fuzzers.sh
* add cache for apt and cargo-install
* Update build_and_test.yml
* Update build_and_test.yml
* tmp test CI
* fix CI
* remove debug cmd
* remove test
* code refine
* code refine
* code refine
* code refine
* add Makefile
* fix example doc for nyx
* add `NyxHelper::new_with_initial_timeout`
* fix `NyxHelper::new`
* fix curl parameter
* code refine
* add check for setup script
* use afl-clang-fast in nyx
* fix logic
* fix makefile
* fix CI
* Update build_and_test.yml
* Update build_and_test.yml
* remove debug cmd
Co-authored-by: syheliel <syheliel@gmail.com>
Co-authored-by: Dominik Maier <dmnk@google.com>
2022-08-25 10:55:35 +02:00
Dominik Maier
5ad6519456
Use nightly fmt ( #728 )
2022-08-14 11:00:02 +02:00
Dongjia Zhang
8899a3b01c
Use clang-format-13 ( #705 )
2022-07-18 22:31:01 +02:00
Dongjia Zhang
999eaadc16
fix ( #703 )
2022-07-17 21:15:45 +02:00
Dongjia Zhang
405a1919b8
Still fixing ci ( #683 )
...
* fix
* fix
* more
* cargo fixed??
* fixed??
* clp
* fix
2022-06-28 16:56:28 +09:00
Dongjia Zhang
fd9d126124
Fix CI ( #681 )
...
* Update test_all_fuzzers.sh
* --
* fix ui.rs
* fix
Co-authored-by: Dominik Maier <dmnk@google.com>
2022-06-27 23:19:15 +09:00
Dominik Maier
bfe69aea09
Format C/Cpp code in ./scripts/fmt_all.sh ( #653 )
...
* format all (clang format 13)
* added clang-format check
* re-add missing newline
* cargo doc was missing
* more brackets
* fixed fmt workflow
* clang format
* shellcheck
* install clang-format-13
* update ubuntu for maximum clang-formattability
* yml whitespaces
* fmt
* shellcheck only for .sh
* oops path
* ignored shellcheck warning
2022-05-29 03:23:02 +02:00
Dominik Maier
e4447364c2
SymCC update ( #656 )
2022-05-28 01:41:43 +02:00
Dominik Maier
828ebcff39
Clippy nits & fixes ( #640 )
...
* release autofix
* fix unused backtrace
* clippy fixes
* clippy
* more clippy
* more autofix
* clippy for frida
* more clippy
2022-05-22 02:43:25 +02:00
Dominik Maier
50ddbf6a78
Added autofix script ( #639 )
2022-05-21 15:06:11 +02:00
syheliel
2ead2c398e
Speed up CI ( #630 )
...
* Add ccache
* Update codecov.yml
* Update build_and_test.yml
* Update build_and_test.yml
* Update test_all_fuzzers.sh
Add fuzzer timer
* Fix `./test_all_fuzzers.sh` on macos
* Fix CI
* Fix CI
* Update build_and_test.yml
* Fix typo
* Set mold linker as default linker
* Fix CI
* Update build_and_test.yml
* Add profile arguments
* Fix CI
* Update test_all_fuzzers.sh
Co-authored-by: syheliel <syheliel@gmail.com>
2022-05-15 21:25:29 +02:00
syheliel
aa101c396a
Merge ubuntu and macos fuzzer && Record time for ./test_all_fuzzers.sh
( #629 )
...
* Add ccache
* Update codecov.yml
* Update build_and_test.yml
* Update build_and_test.yml
* Update test_all_fuzzers.sh
Add fuzzer timer
* Fix `./test_all_fuzzers.sh` on macos
* Fix CI
* Fix CI
* Update build_and_test.yml
* Fix typo
2022-05-14 00:57:26 +02:00
Andrea Fioraldi
bd23f7c916
Fix cmplog ( #600 )
2022-04-08 14:35:32 +02:00
Dominik Maier
5df130188a
Fixing CI from #559 ( #580 )
...
* updated ref
* update symcc
* updated symcc
* CI for symcc
* updated symcc
* enabling git
* add runtime deps to makefile
* only linux
Co-authored-by: tokatoka <tokazerkje@outlook.com>
2022-03-29 14:57:38 +02:00
Chaofan Shou
e20d345d99
Fix concolic fuzzer and add related CI tests ( #559 )
...
* fix concolic fuzzer & add related CI tests
* More cargo fmt
* More cargo fmt
* order matters
2022-03-26 13:51:14 +01:00
Andrea Fioraldi
a56f4af7da
CorpusScheduler -> Scheduler and move them to the schedulers folder ( #560 )
...
* CorpusScheduler -> Scheduler
* fix book
* update fuzzers
* fix tests
* fix sugar
* fix
* fix tutorial
* fix tutorial
* fmt
* fix
* fmt
* fmt
2022-03-03 14:27:37 +01:00
Dongjia Zhang
936e2221d1
Cargo-make ( #537 )
...
* timeout utility
* example build.toml
* upd
* ci
* Update build_and_test.yml
* Update build_and_test.yml
* rename, qemu_launcher
* libpngs
* fix
* upd
* del
* do_nothing -> unsupported
* rename
* use command
* non qemu fuzzbench
* script.sh
* mroe
* qemu
* fix
* generic
* fix
* fix
* allow 124
* quotes
* fix
* fix
* fix
* stderr to devnull
* chg
2022-02-20 03:32:43 +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
Dongjia Zhang
53bc6e2318
test_all_fuzzers.sh fix ( #531 )
...
* fix
* fix
* fix
2022-02-11 10:04:04 +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
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
Dominik Maier
62afed61e2
Renamed Stats to Monitors ( #373 )
...
* renamed stats to monitors
* added depreciation notices
* resorted generics alphaabetically
* added monitors
* fmt fuzzers
* added depreciation note for usermonitor
* fmt all fuzzers script
* more fmt
* renamed some monitor things back to stats
* fixed rename
2021-11-12 11:01:08 +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
Andrea Fioraldi
2055eabede
Port gramatron preprocessing to Rust ( #341 )
...
* grammatron random mut
* import String from alloc
* gramatron
* grammar preprocess scripts
* clippy
* fix construct_automata.py
* splice mutator
* fix
* clippy
* recursion mutator
* recursion mut in example
* clippy
* fix
* clippy
* grammars
* fix gramatron
* fmt
2021-10-28 10:37:31 +02:00
Andrea Fioraldi
77e0be218a
Gramatron ( #332 )
...
* grammatron random mut
* import String from alloc
* gramatron
* grammar preprocess scripts
* clippy
* fix construct_automata.py
* splice mutator
* fix
* clippy
* recursion mutator
* recursion mut in example
* clippy
* fix
* clippy
* grammars
2021-10-21 16:33:40 +02:00
julihoh
8a20d26ea6
init git sumbolude for symcc for symcc_runtime crate when publishing ( #321 )
2021-10-10 21:19:58 +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
David CARLIER
774cfb685e
openbsd port ( #279 )
...
with libc update, ucontext data is finally available on this platform too.
2021-08-27 11:41:06 +02:00
Dominik Maier
985af28c58
less clippy
2021-08-26 19:55:38 +02:00
Dominik Maier
3db1765537
cleanup
2021-08-26 19:25:48 +02:00
Andrea Fioraldi
753d1e5381
Fix publish.sh
2021-08-20 09:39:57 +02:00
Andrea Fioraldi
7ca7b3c9f6
Update publish script
2021-08-18 11:34:44 +02:00
Dominik Maier
bb21ab7a63
Autolaunch ShMemService, add MacOS fuzzers to CI, various fixes ( #246 )
...
* starting to fix macos linker bugs
* mdetailed error prints
* start shmem service manually
* not a doc comment
* Some fixes
* only send exit msg to shmemservice when start was successful
* incorporated shmem service into provider
* removed unused imports
* trying to fix fuzzers
* fixed build
* check if join_handle is_some
* more debug prints
* fixed shmem service autolaunch
* fixed macos linker
* ignoring broken libpng testcase on macos for now (see #252 )
* fmt
* try to fix missing llvm_config (see #253 )
* empty issue template added
* Mmanually look for llvm-config on MacOS
* fixing CI
* fixed docs
* ignoring libmozjpg for CI, see #254
2021-08-09 01:10:29 +02:00
julihoh
7581885d52
prepare concolic support crates for publishing to crates.io ( #250 )
...
* prepare concolic support crates for publishing to crates.io
* provide some bare-bones READMEs
2021-08-06 17:49:57 +02:00
Dominik Maier
16c3a07be7
ShMem Server for MacOS ( #238 )
...
* generalized ashmem server
* fixed macos testcases
* added StdShMemService
* no_st
* fmt
* added testcase, fixed some bugs (not all)
* solidified unix shmem
* initial impl for MmapShMem
* Added shmem service start to more testcases
* clippy
* fixed tetcases
* added frida_libpng makefile for easy use
* trying to fix build on ubuntu
* fixed ubuntu build for libpng
* no_std
* fixed testcase
2021-08-05 17:08:01 +02:00
Dominik Maier
7e93aaaf38
give shmem more space
2021-07-23 16:12:02 +02:00
Dominik Maier
a907435f4f
added afl-persistent-config script
2021-07-23 15:40:27 +02:00
Dominik Maier
aad271abf4
Cache Rust in CI ( #217 )
...
* rust cache
* less warnings during docker build
* removed unused use
2021-07-10 14:42:10 +02:00
Andrea Fioraldi
5b0c178ed6
Increase sleep in publis.sh
2021-07-05 14:55:27 +02:00
Toka
b3c52a4ad6
Test fuzzers ( #187 )
...
* build_all_fuzzer.shj
* run.sh
* output log
* ENABLE_SHARED off
* libc6-dev
* echo
* no need to cargo build twice
* replaced realpath (not available on macos) with /Users/domenukk/tmp/libaflrs/fuzzers/libfuzzer_libpng_launcher
* replaced PWD with pwd
* trying to get llvm-config working
* more sudo?
* slash
* trying to get all deps
* more info
* delete apt install from build_all_fuzzers.sh
* correct libfuzzer_libpng makefile
* fix build for libfuzzer_libpng
* fix other makefiles
* nproc not supported on macos
* no run.sh, use make short_test
* enable_shared=false
* just Linux
* fix
* forkserver makefile
* fix
* stb_image Makefile
Co-authored-by: Dominik Maier <domenukk@gmail.com>
Co-authored-by: Andrea Fioraldi <andreafioraldi@gmail.com>
2021-07-02 15:35:41 +02:00
Dominik Maier
dea21da5c3
fuzzbench harness ( #165 )
...
* starting to build fuzzbench harness
* fuzzbench updated
* fuzzbench example readme
* removed dummy files
* Intial de-luxe dockerfile added
* added to dockerignore
* more fuzzbench
* dockerfile
* final dockerfile fun
* fuzzing fixes, switched rand, build fixes
* fmt
* added dummy fuzzone
* silence wrapper output
* clippy
* logfile fixes
* adopt changes to libafl-cc
* various fixes
2021-06-16 18:24:07 +02:00
Dominik Maier
b187157bef
Dockerfile for LibAFL ( #168 )
...
* generic inmemory fuzzer
* Intial de-luxe dockerfile added
* merged main
* reset generic fuzzer to main
Co-authored-by: Andrea Fioraldi <andreafioraldi@gmail.com>
2021-06-14 20:56:37 +02:00
OB
7abd7c8162
Cmplog instrumentation for Frida ( #99 )
...
* libafl_targets: refactor sancov trace-pc
* cmp observer
* libaf_targets: new structure to isolate sancov
* fix C warning
* combined executor
* cmp observer and feedback
* I2SRandReplace mutator
* impl CmpMap for CmpLogMap in libafl_targets
* cmplog observer
* clippy
* TracingStage
* working random cmplog mutations
* enable cmplog for libfuzzer_stb_image
* re-enable new testcase stats print
* fix update stats display
* bump 0.3.1
* clippy
* clippy
* no clippy for fuzzers/
* fix
* add cmplog runtime instrumentation
* test cmplog against value profile feature
* fix compile error
* add target arch aarch64 for is_interesting_cmplog_instruction
* add cfg target aarch64 on cmplog related code within stalker loop
* revert changes in cargo.toml
* align code with 'main' branch
* revert accidently changed Cargo.toml file
* update cmplog runtime code to work with the cmplog backend implementation
* change magic to 8 bytes
* cmplog runs with observer- no crashes
* clippy fixes
* add cmplog_runtime as feature
* set cmplog command-line argument to false by default
* setup cmplog observer and mutator correctly
* decrease emitted code opcode count
* add cmplog testing to the harness
* get rid of irrelevant changes and unused code, add comments, change
feature name to "cmplog"
* get rid of some unessecery whitespaces and new lines
* fix clippy errors
Co-authored-by: Andrea Fioraldi <andreafioraldi@gmail.com>
Co-authored-by: Dominik Maier <domenukk@gmail.com>
Co-authored-by: Omree <you@example.com>
2021-06-09 14:11:43 +02:00