1717 Commits

Author SHA1 Message Date
c255c32828 fix build 2023-02-22 09:46:30 +01:00
7e7bdf2040 plotting: respect types 2023-02-22 09:05:34 +01:00
74892ec9d1 add plotting to snakefile 2023-02-22 09:05:34 +01:00
8b2439d124 change feedback order 2023-02-22 09:05:34 +01:00
c0102e81b4 fix build 2023-02-22 09:05:34 +01:00
7c67ca71ea fix feedbacks 2023-02-22 09:05:34 +01:00
c75360bbec benchmark using snakemake 2023-02-22 09:05:34 +01:00
c81d6dc9ed trace_abbs and dump path 2023-02-22 09:05:34 +01:00
ea546d15df add graph feedback 2023-02-22 09:05:34 +01:00
e3c624d5f2 update input sizes, dump worstcase, benchmarking 2023-02-22 09:05:34 +01:00
0ebd5ae509 remove address translations, extend plots 2023-02-22 09:05:34 +01:00
8a56073159 add hists to plot script 2023-02-22 09:05:34 +01:00
8896023682 speed up random generation 2023-02-22 09:05:34 +01:00
4c8537e341 write out times over time 2023-02-22 09:05:34 +01:00
dcd46674ae add sytemstate sceduler, fuzz until time 2023-02-22 09:05:34 +01:00
961b4a1ae1 re-add system state fuzzing 2023-02-22 09:05:34 +01:00
6a9635ef4d add virtual edge to longest runs 2023-02-22 09:05:33 +01:00
db60c75ff5 do not force generated inputs 2023-02-22 09:05:33 +01:00
80e2649746 debug stuff 2023-02-22 09:05:33 +01:00
3eb3744c5b random seeds, better plots 2023-02-22 09:05:33 +01:00
faf7873000 add more benchmarks 2023-02-22 09:05:33 +01:00
3d1282ea90 exectime increase feedback 2023-02-22 09:05:33 +01:00
bff7bd10ff rename bin, allow random fuzzing 2023-02-22 09:05:33 +01:00
07829c7f75 benchmark with duration 2023-02-22 09:05:33 +01:00
6ea9288952 add benchmark scripts 2023-02-22 09:05:33 +01:00
74341f6948 add systemstate feature and dump times 2023-02-22 09:05:33 +01:00
9cc1aef2a7 fix multicore build 2023-02-22 09:05:33 +01:00
19e07b027b ignore artifacts 2023-02-22 09:05:33 +01:00
54150c0ea3 minimal changes 2023-02-22 09:05:33 +01:00
0c370c5a1d add interrupt injection 2023-02-22 09:05:33 +01:00
a287ac210a input length and read input pointer 2023-02-22 09:05:33 +01:00
22ff608717 draft: add graph feedback 2023-02-22 09:05:33 +01:00
0d54ca8659 add TimeMaximizerCorpusScheduler 2023-02-22 09:05:33 +01:00
e8ece169a3 add last api callsite to system state 2023-02-22 09:05:33 +01:00
1886bac993 libafl_qemu: add jmp instrumentation 2023-02-22 09:05:33 +01:00
3b542be126 WIP: add systemstate tracking 2023-02-22 09:05:33 +01:00
17edc02d0d add arguments 2023-02-22 09:05:33 +01:00
9e482426db get time from ClockTimeFeedback 2023-02-22 09:05:33 +01:00
f7bdfcfcb5 fixup 2023-02-22 09:05:33 +01:00
854a8066a8 WIP: port fret 2023-02-22 09:05:33 +01:00
Dominik Maier
cc53da85fb
Remove {update,clear}_hash from ObserverWithHashField, add hasher (extending #1019) (#1028)
* libafl: Remove `{update,clear}_hash` from `ObserverWithHashField`

These methods aren't used by `NewHashFeedback`, so there's no compelling reason
to keep them in the interface. They preclude implementations of
`ObserverWithHashField` that calculcate a hash on-the-fly from a value. For
example, my use-case is to store the stdout of a process, and use
`NewHashFeedback` to only collect inputs that result in new messages on stdout.

Both of these methods are pretty suspicious to begin with - why should other
code be able to update the internal state of the observer? What are the
semantics of `update_hash`? If there are compelling reasons to keep these
methods, let's clarify their intent in the documentation.

* libafl: Return hash by value from `ObserverWithHashField`

This allows implementors of this trait to not store the hash, but rather to
compute it on-the-fly. Since `Option<u64>` is `Copy` (and quite small), and
this method is called once per execution of the target program, this is likely
to have negligible performance impact.

* libafl: Implement `ObserverWithHashField` for `ValueObserver`

This demonstrates the utility of the previous two commits. Now, `ValueObserver`
can be used with `NewHashFeedback`.

* Clippy, move to ahasher

* Oops :)

---------

Co-authored-by: Langston Barrett <langston.barrett@gmail.com>
0.9.0
2023-01-31 10:45: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
d73fb92ddf
Python CI (#1024)
* Python CI

* fix testcase

* fix yml

* Fixing test

* format python

* cleanup
2023-01-31 05:04:19 +01:00
Dominik Maier
fc8c92514f
Update README.md (#1027) 2023-01-31 04:43:27 +01:00
Dominik Maier
7c4acb3b22
Update README.md (#1026) 2023-01-31 04:34:01 +01:00
Dominik Maier
2cd3fb8fea
New Logo (#1025) 2023-01-31 04:32:47 +01:00
Dominik Maier
ff9208f107
Fixing python example (#1016)
* Fixing python example

* Fix python baby fuzzer

---------

Co-authored-by: Andrea Fioraldi <andreafioraldi@gmail.com>
2023-01-30 20:03:07 +01:00
Fabian Freyer
afa506c0c8
libafl_frida: Allow compilation for iOS (#1023)
iOS does not have any TLS, so we don't need to keep track of it.
This allows compiling for the aarch64-apple-ios target.
2023-01-30 18:05:00 +01:00
Dominik Maier
33ddce2cea
Introduce MutatorId, Tuneable fixes (#1022)
* Add simpler APIs for TunableStage

* Make API usable

* Add TunableScheduledMutator APIs

* Introduce MutatorId

* More API

* Cleanup

* add sampling-based mutation scheduling

* reduce precision for sampling

* clippy
2023-01-30 18:04:42 +01:00
Dongjia "toka" Zhang
b927fc9b06
Add filename_path to MmapShMemProvider (#1014)
* change how it is named

* Add more comments

* more

* macOS 32bytes onlyu

* chg

* comment, fix
2023-01-26 00:53:37 +01:00