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
Dominik Maier
f4f23de32b
Fix fuzzers after HasTestcase ( #1123 ) ( #1162 )
...
* Fix fuzzers after HasTestcase (#1123 )
* Make the trait a trait
* Implement HasTestcase for Corpora
* fix
* fix
* a
* a
* fix
* wasm32
* a
* f
* f
* aa
---------
Co-authored-by: tokatoka <tokazerkje@outlook.com>
2023-03-19 11:58:32 +09:00
Dominik Maier
bbe4e85768
Removed new_
from constructors that don't need it (API consistency) ( #1159 )
...
* Removed new_ from constructors that don't need it (API consistency)
* un-change python bindings
2023-03-17 17:02:21 +01:00
Matheus Baptistella
104c170ade
Use the new metadata() function in more places ( #1155 )
2023-03-17 16:03:57 +01:00
David CARLIER
fd95560512
Check for the presence of clang frontends. ( #1158 )
...
* checks the presence of clang frontends.
close GH-1149.
* fix clippy complaints
2023-03-17 16:00:54 +01:00
Dongjia "toka" Zhang
d6ee2dbe12
IfStage ( #1157 )
...
* macro
* bracket
* IfStage
* remove macro
* revert
2023-03-17 23:25:01 +09:00
Dongjia "toka" Zhang
8245c7eda9
Logic stages ( #1148 )
...
* IfStage
* fmt clp
* constructor
* fmt
* else
* fmt
* while logic
* delete skippable
* fmt
---------
Co-authored-by: Andrea Fioraldi <andreafioraldi@gmail.com>
2023-03-17 10:21:51 +01:00
Dominik Maier
306cdcd800
Frida: Fix Android build ( #1154 )
...
* update android version
* fix android build some more
2023-03-16 16:26:22 +01:00
Dominik Maier
b9970cbdac
Implement From<CorpusId> for usize ( #1152 )
2023-03-16 16:12:00 +01:00
Dominik Maier
a351e7a509
Frida: fix aarch64 build ( #1153 )
2023-03-16 16:11:44 +01:00
Dongjia "toka" Zhang
08fe6ab791
Fix mutator slowdown ( #1138 )
...
* perf stat
* fix except swap
* swap
* fix
* reveral-based byte swap
* Revert "reveral-based byte swap"
This reverts commit 2bc9609ece47fd4e8f6d96862f8ad3fb77f11aec.
* no introspection
* clp fmt
* change rand_range to have at least 1 length
* don't use modulo
---------
Co-authored-by: Addison Crump <addison.crump@cispa.de>
Co-authored-by: Dominik Maier <domenukk@gmail.com>
2023-03-16 15:58:03 +01:00
Dominik Maier
3c331e5a9b
Create SchedulerTestcaseMetadata if it doesn't exist ( #1151 )
...
* Create SchedulerTestcaseMetadata if it doesn't exist
* reset symcc
2023-03-16 14:29:40 +01:00
Dongjia "toka" Zhang
51bc1d0328
Fix infinite calibration ( #1147 )
...
* Fix infinite calibration
* fmt
* fix
* fix
2023-03-15 22:19:23 +09:00
Dongjia "toka" Zhang
6c98945fc3
Fix fuzzbench_forkserver
2023-03-15 13:32:04 +09:00
Dongjia "toka" Zhang
0fa815f2b8
Rename MetaData to Metadata
2023-03-14 23:57:55 +09:00
Matheus Baptistella
c38405ef83
Shorthand functions to get typed metadata, renamed metatdata -> metadata_map ( #1123 )
...
* Created macro to get the metadata form State and Testcase
* Expanded the macros for mutable, or not, State and Testcase metadata
* Created functions on traits HasMetadata and HasNamedMetadatato get, mutable or not, metadata
* Created the functions to get metadata
* Added #[inline] attribute and renamed the functions
* Renamed the functions and added #[inline] attribute
* Temporarily added testcase() function
* Added testcase() function
* Changed Ref import to core::cell:Ref
* Added testcase_mut() and renamed occurences of metadata() and metadata_mut()
* Renamed more occurences
* Renamed the metadata() on impl HasMetadata for NopState
---------
Co-authored-by: Andrea Fioraldi <andreafioraldi@gmail.com>
2023-03-14 14:24:33 +01:00
Dominik Maier
8dfdee6fce
Fix UB for differential map observer example ( #1140 )
...
* Fix UB for differential map observer example
* clippy
* undo submodule foo
2023-03-14 13:50:50 +01:00
Dongjia "toka" Zhang
460787196a
Update README.md ( #1142 )
2023-03-14 02:09:39 +09:00
Dominik Maier
6894a37ceb
Added Truncate trait ( #1141 )
2023-03-13 17:34:58 +01:00
Dongjia "toka" Zhang
44b798c07e
AFL++ RedQueen ( #1087 )
...
* step 1
* step 2
* Vec
* comment
* Observer
* tmp
* TaintedTracingStage
* more
* more
* more
* Idea
* more
* more
* mmmmmore
* moremoremore
* more
* all
* clp
* comment
* core
* push temporary debug change
* note for myself
* working
* rename to AFLCmplogTracingStage
* rename
* revert fuzzers' change
2023-03-13 17:34:16 +01:00
Andrea Fioraldi
e8d99b9975
Fix capsone mode in LibAFL QEMU ( #1136 )
...
* Use regex feature in libafl_qemu
* wip
* set mode for arm reading pc
* fixes
2023-03-12 23:29:55 +01:00
Addison Crump
786af9f6a9
resolve zero-sized allocation in swap diff fuzzer ( #1139 )
2023-03-12 23:24:22 +01:00
lazymio
b72bf55555
Add From BytesInput trait for Vec<u8> ( #1135 )
...
* Allow take the ownership of the BytesInput
* Add must_use as told
* Implement From&Into for better interoperability
* Format code
* Remove into_bytes
* Remove From<&BytesInput> to avoid misuse
2023-03-09 02:12:09 +01:00
Dongjia "toka" Zhang
4d778dd64d
Fix fuzz_level related thing, separate on_replace/on_remove from Scheduler & various fixes ( #1119 )
...
* delete HasFuzzedCorpusId
* more
* fmt clp
* aa
* fixing
* delete
* a
* append parent id when Objective
* add HasCorpus inprocss executor
* ecofuzz, delete was_fuzzed, update fuzz_level
* fix
* RemovableScheduler for Tunable, Queue, Weighted
* clp
* no std
* import
* on_execution
* fix
* win
* fmt
* fix
* revert to on_evaluation and propogate in the accounting scheduler
* fix
---------
Co-authored-by: Andrea Fioraldi <andreafioraldi@gmail.com>
2023-03-08 19:43:32 +01:00
Dominik Maier
2ed6583041
CI: Run miri tests ( #1130 )
...
* Fixes/ignores for miri support
* linux
* fix doctest for miri
* fix docs
* fix UB in baby_fuzzer
* no custom allocator in miri
2023-03-08 19:21:17 +01:00
Dominik Maier
e8838ebebe
Safer EoP handling ( #1128 )
2023-03-08 00:33:55 +01:00
Andrea Fioraldi
3ac439b345
Use regex feature in libafl_qemu ( #1127 )
2023-03-07 15:18:50 +01:00
Andrea Fioraldi
20c32316eb
Define custom collectors for QemuCallTracerHelper ( #1099 )
...
* Define custom collectors for QemuCallTracerHelper and create OnCrashBacktraceCollector
* fmt
* clippy
2023-03-07 13:16:51 +01:00
Andrea Fioraldi
3ffec79a17
Increase LLMP clients timeout to 5 min ( #1126 )
...
* LLMP client access fast path
* Increase LLMP client timeoit to 5min
---------
Co-authored-by: Your Name <you@example.com>
2023-03-07 11:47:45 +01:00
Marco Cavenati
b96e194812
Improve find_llvm on MacOS ( #1124 )
...
By looking for explicitly versioned Homebrew formulae for LLVM
2023-03-07 03:23:46 +01:00
Vincent
c8254dbd0e
Check CI result on cargo make test for available fuzzers ( #1107 )
...
* fix libfuzzer_libpng_cmin
* fix libfuzzer_libpng_ctx
* revert libfuzzer_libpng_cmin and check ci by grepping broker stdout result instead
* revert libfuzzer_libpng_ctx and check ci by grepping broker stdout result instead
* add check ci for fuzzers
* add check ci for fuzzers
* add check ci
* add fuzzbench test
* add validation for qemu fuzzer
---------
Co-authored-by: Dongjia "toka" Zhang <tokazerkje@outlook.com>
2023-03-06 23:21:24 +09:00
Dongjia "toka" Zhang
9df95bd936
Use InMemoryCorpus in libfuzzer_libpng ( #1125 )
2023-03-05 23:23:42 +09:00
Elia Geretto
4f7b59aca4
Forward on_evaluation callback in MinimizerScheduler ( #1122 )
2023-03-05 22:00:32 +09: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
Dongjia "toka" Zhang
5b4ae61cdd
SimpleLogger API improvements, printing to stdout, timestamps ( #1109 )
...
* log
* fix
* a
* rev
* remove
* 2 logger
* cfg std
* more
* more
* cf
* no_std
* features
* optional
* rename
* current_time()
2023-03-02 14:07:46 +01:00
van Hauser
2a3f1d68f5
fix weighting from hits ( #1120 )
2023-03-02 14:05:34 +01:00
Arpan Kapoor
672f4d1668
Use a different crash history in forkserver examples ( #1118 )
2023-03-02 19:49:50 +09:00
Dongjia "toka" Zhang
2a926f6546
Fix forkserver regression in LTO mode ( #1114 )
...
* regression
* fix
* chg
* Comment
* fmt
2023-03-02 10:17:20 +09:00
Andrea Fioraldi
452ca7a672
Implement EcoFuzz ( #1115 )
...
* Implement EcoFuzz
* clippy
* fix
2023-03-01 13:21:43 +01:00
Dominik Maier
df6271a0f3
Windows fix ( #1116 )
...
* Windows fix
* fix fix
2023-03-01 00:49:11 +01:00
Dominik Maier
31357aa7e2
Track parent testcase id, tuneable stage probabilistic settings ( #1081 )
...
* Added local event handlers
* clippy
* move tuned mutator to pow2
* Tunable updates
* parent ids
* no_std, etc
* windows
* remove local event manager handler
* maybe fix win
* win:
* win docs
* docs
* ASAN -> ASan
2023-02-28 16:36:04 +01:00
Dongjia "toka" Zhang
3e7322e395
Remove unnecessary check in calibration stage ( #1111 )
...
* save
* fix
2023-02-28 15:41:17 +01:00
Dominik Maier
fbe8cce1b8
Real OnDiskCorpus ( #1096 )
...
* Real OnDiskCorpus
* clippy
* python
* docs
* clippy
* docs
* move to reuse cachedinmem corpus
* fmt
2023-02-28 15:41:05 +01:00
Andrea Fioraldi
d36296c654
Fix llmp CliendId search ( #1112 )
2023-02-28 15:20:24 +01:00
Andrea Fioraldi
dc800f0814
on_evaluation Scheduler method ( #1106 )
...
* add on evaluation hook in schedulers
* on_evaluation for WeightedScheduler
* fix PowerQueueScheduler
* fix fuzzers
* upd qemu
* tests
* upd
2023-02-28 11:33:26 +01:00
Dongjia "toka" Zhang
59bf118a5a
Clippy ( #1105 )
2023-02-28 01:08:19 +09:00
Addison Crump
0727c80347
Add example for WASM ( #1093 )
...
* add baby_fuzzer for wasm targets
* elaborate in README
---------
Co-authored-by: Dominik Maier <domenukk@gmail.com>
Co-authored-by: Dongjia "toka" Zhang <tokazerkje@outlook.com>
2023-02-26 17:02:22 +01:00
Dongjia "toka" Zhang
c0f229ec23
Add UsesObserver to allow more generic MapFeedback ( #1104 )
...
* UsesObserver
* a
* more
* don't need these
2023-02-26 08:35:45 +01:00
clesmian
cf02553ea7
Cleanup forkserver exec builder ( #1094 )
...
* Don't use magic string but string constant
* Don't allow to specify multiple input files with different names
* Ensure that the file name for the current test case is unique for every fuzzer currently running
* Add note advising users to choose distinct names for the input file
* Move builder functions to more generic implementation to allow parse_afl_cmdline rewrite
* Rewrite parse_afl_cmdline to reduce code duplication
* Add remark to documentation regarding the program path
* Change behavior to allow the usage of actual AFL command lines, hopefully without breaking existing code
* Rustfmt
* Move generation of unique filename to fs
* Ensure default input filename for command executor is unique per fuzzing process
* Pass the input to the target via stdin, when no input file is specified
Previous solution of passing it via a standard file is useless, as the target does not know to read said file
* Rustfmt
---------
Co-authored-by: Dominik Maier <domenukk@gmail.com>
Co-authored-by: Dongjia "toka" Zhang <tokazerkje@outlook.com>
2023-02-26 02:00:28 +01:00
Langston Barrett
3dbea91a63
Use Iterators as Generator ( #1101 )
...
Also, remove seemingly-unused generate_dummy method to enable this instance.
Also, add an adapter that creates an Iterator from a Generator.
2023-02-26 01:59:56 +01:00