2327 Commits

Author SHA1 Message Date
Dominik Maier
a0c03fccc5
Add serdeany_autoreg feature flag to allow disabling ctor use (#1398)
* Add  feature flag to allow disabling  use

* fix typo

* undo cargo.toml change

* Fix no_std

* Backticks

* rename register_at_startup to create_register

* fix

* Move Tui_monitor to default instead of std
2023-08-04 15:36:48 +02:00
David CARLIER
83f739f010
libafl_cc using hwasan on Linux/Android arm64 (#1399) 2023-08-04 01:50:41 +02:00
Dominik Maier
5dd5b1efa8
More fuzzer fixes for Bolts (#1397)
* more fixes

* more docker fix
2023-08-03 11:45:18 +02:00
Dominik Maier
dbba687b9b
Add proper REAME.md to libafl_bolts (#1396)
* Add proper readme to libafl_bolts

* more 0.11 doc
2023-08-03 02:59:30 +02:00
Dominik Maier
f752acc2a4
Info about how to migrate to 0.11 (#1395) 2023-08-03 02:35:37 +02:00
Dominik Maier
febb154e49
Fix merge fail for baby_fuzzer / bolts (#1394)
* Fix merge for bolts

* warning fix

* warning fix
2023-08-03 01:58:09 +02:00
Dominik Maier
e9e9c457d6
Move Bolts to libafl_bolts (#1335)
* sort memebers

* Building bolts

* fixing python, feature flags

* Cleanup bolts Cargo.toml

* Fix tests

* cleanup libafl

* removed duplicate examples

* Info text

* reenable agpl CI

* fix impl_serdeany

* new fmt

* Moved bolts

* fix some builds

* fix

* fix more fixes

* serdeany

* no_std

* Dependency cleanup

* Fix docs

* Docker

* add python bolts bindings

* no_std test fix

* merge fail

* typo fix

* add bolts dependency to fuzzers

* tiny fixes

* merge fun

* clippy

* link no longer exists

* make sure python gets rebuilt

* fix pybind

* doc fix

* remove bolts ref

* LibAFL bolts

* More info

* deprecation notice for launcher

* fix python

* cargo fmt

* fix concolic

* fix

* clippy

* fix libafl_cc

* fix tutorial, clippy

* fix concolic fuzzer

* fix push_stage_harness fuzzer

* prelude

* fix testcase post-merge

* mute clippy
2023-08-02 17:36:26 +02:00
Dominik Maier
d69cde896c
Less unsafe type_eq in stable (#1392)
* less unsafe type_eq

* add type_eq test

* More type eq test

* extend test by a lot

* go mad with tests

* fmt

* simpler tests

* clippy
2023-08-02 13:58:05 +02:00
David CARLIER
f4f55088e3
ControlFlowGraph::calculate_difference_all_edges build warning fix. (#1390)
get_edge returns a reference, anyhow CfgEdge does implement the Borrow's trait neither.
2023-08-02 09:58:49 +02:00
Dominik Maier
fc809ccb33
Remove FeedbackState reference from the book (#1391)
* Remove FeedbackState reference from the book

* Update feedback.md
2023-08-01 23:27:51 +02:00
Dominik Maier
006dcac00c
Named Mutators and MultiMutator API change (#1387)
* Mutators need names (alternative to #1379)

* Signature of MultiMutator shouldn't be the same as the normal mutator

* Named for python, remove mutator for multi_mutator

* fmt

* clippy edition warning

* clippy

* mac_count doc fix, return cleanup
2023-08-01 16:58:40 +02:00
Dominik Maier
90e9f3c786
Move apt-get before checkout (#1388) 2023-08-01 14:42:35 +02:00
Andrea Fioraldi
ac4a0e7330
libafl_qemu snapshot device filter (#1386)
* libafl_qemu snapshot device filter

* Working device list

* regenerate bindings stub
2023-08-01 12:01:10 +02:00
Mrmaxmeier
fc9caa8314
Fix UB in frida fuzzers (#1385)
* WIP: fix ub issue in frida fuzzers

* refactor frida helper: remove unused fields

* revert frida-gum bump. Current frida-gum doesn't build on iOS :/

* libafl_frida: silence must_use_candidate lint

this lint is very noisy, and adding #[must_use] to _all_
(even pure )functions seems very excessive to me

* fix clippy
2023-07-29 13:44:54 +02:00
Andrea Fioraldi
37bfead4e5
Fix generic hooks bug in libafl_qemu (#1382) 2023-07-27 17:28:33 +02:00
David CARLIER
eae6f0436f
fix riscv(32) tick reading for clang (#1381)
albeit it passes with gcc it does not with clang.
2023-07-26 13:58:35 +02:00
Andrea Fioraldi
cb24b5dc2d
Extract linker args when building QEMU (#1377)
* Update qemu commit

* Hook the linker and automatically extract linker args

* Comment code
2023-07-26 10:42:15 +02:00
Abc Xyz
993eb62bb8
fix(libafl): update Z3 dependency (#1372)
See https://github.com/Z3Prover/z3/issues/5586. libafl with `cmin` feature cannot be built for Android.
2023-07-24 15:12:16 +02:00
Addison Crump
81e9a9a60f
Fix build/clippy errors and update CASR (#1375)
* fix new exciting clippy errors

* fix CASR build errors

* bump casr version

* more clippy whack-a-mole

* allow needless pass by ref mut as it is improperly marked unnecessary
2023-07-24 15:11:24 +02:00
David CARLIER
b064eb3994
read_time_counter port for the RISCV family. (#1378) 2023-07-24 13:14:07 +02:00
David CARLIER
f0563475c3
noaslr: add netbsd support (#1371) 2023-07-16 17:09:44 +02:00
Dominik Maier
36b1d8aea2
Fix status updates for crashing fuzzers (fixes #1367) (#1368)
* Fix status updates for crashing fuzzers (fixes #1367)

* client perf fix

* Add HasLastReportTime trait :/

* ****** prelude

* reoder phantom

* fix tests

* clippy, fixes

* more fixes, traits are maaad

* fmt
2023-07-14 18:50:31 +02:00
Dominik Maier
003b219826
Make all no_mangle fns extern "C" (#1369) 2023-07-14 17:42:58 +02:00
David CARLIER
eb362c5c77
libnoaslr support for netbsd (#1366) 2023-07-14 14:59:24 +02:00
s1341
11fc57a5d7
Launcher: Allow setting a distinct stderr redirect (#1329)
Co-authored-by: Dominik Maier <domenukk@gmail.com>
2023-07-13 22:50:01 +02:00
Addison Crump
f76331eac7
Add RefCellValueObserver (#1363)
* add RefCellValueObserver

* appease the clippy gods

* Update libafl/src/observers/value.rs

Co-authored-by: Langston Barrett <langston.barrett@gmail.com>

---------

Co-authored-by: Langston Barrett <langston.barrett@gmail.com>
2023-07-13 18:02:02 +02:00
David CARLIER
a95b322b1c
noaslr disable aslr for dragonflybsd. (#1364) 2023-07-13 14:11:09 +02:00
David CARLIER
1609960244
libnoaslr: add FreeBSD support (#1361) 2023-07-12 13:55:18 +02:00
epi
72e54ac2f4
Update ForkserverBytesCoverageSugar to use parse_afl_cmdline, latest features (#1343)
* update forkserversugar to use parse_afl_cmdline

* added tokens/persistent/deferred to forkserver sugar

* removed deferred option

* added build_dynamic_map call; removed generic const

* clippy

---------

Co-authored-by: Dominik Maier <domenukk@gmail.com>
2023-07-12 12:16:46 +02:00
Andrea Fioraldi
3e0e753e9f
Update typed_builder to fix no_std (#1360) 2023-07-11 11:31:37 +02:00
WorksButNotTested
2002bbca35
Arch independent helpers in libafl_qemu (#1355)
* Add more features to libafl_qemu to remove some of the heavy lifting from the fuzzers

* Refactor qemu_coverage

* Minor tweaks to fix other fuzzers

* Autofix

* Add CallingConvention to write_function_argument

* Replay reverted clippy fixes

---------

Co-authored-by: Your Name <you@example.com>
2023-07-11 10:56:40 +02:00
Dongjia "toka" Zhang
109755208e
Revert "Make harness function take mut ref (#1338)" (#1358)
This reverts commit fe6daecf0bb178cd19970ae81c797443fd8cd88f.
2023-07-10 17:33:26 +02:00
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
2885b10f70
libafl_qemu_build: Bump bindgen to 0.66 for syn 2 support (#1349) 2023-07-10 13:12:26 +02:00
Langston Barrett
33aa012bdd
libafl_qemu: Bump strum to 0.25 for syn 2 support (#1348) 2023-07-10 13:12:16 +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
Rowan Hart
fe6daecf0b
Make harness function take mut ref (#1338)
* Change executor trait to allow \&mut Input

* Add mut inprocess executor

* Add mut inprocess executor

* Format and fix clippy errors

* Fix more clippy errors

* Revert accidental refactoring of InMemoryCorpus

* Add mut versions of all executors that can support it

* Do not persist possible testcase mutation in stages, shadow/differential executors, or corpus minimization

* Fix missing imports

* Fix executor type for missed qemu items

* Add re-exports for mut executors

* Use InProcessForkExecutorMut in QemuForkExecutorMut

* Update BytesInput harnesses to take mutable references

* Update other-input-type-taking harnesses to take mut references

* Clippy fixes

* Feature gate TryFromIntError import

* Fix missed harness input type in baby_fuzzer

* Fix additional clippy issues

* Fix unnecessary hashes on string literal

* Even MORE clippy fixes

* Fix one more clippy issue

---------

Co-authored-by: Dongjia "toka" Zhang <tokazerkje@outlook.com>
2023-07-10 13:06:38 +02:00
Dongjia "toka" Zhang
52ab8c02d6
Fix CI (#1354)
* Update build_and_test.yml

* Update build_and_test.yml
2023-07-07 17:24:03 +02:00
Dongjia "toka" Zhang
44bbaf7d22
Update build_and_test.yml (#1353) 2023-07-07 16:22:27 +02:00
Dongjia "toka" Zhang
8cca87f2bd
Fix #1342 (#1345)
* push

* fmt
2023-07-05 13:03:09 +02:00
Dominik Maier
e5b3e5a677
Fixed Forkserver shmem input length, made it configurable (#1342)
* Fixed Forkserver shmem input length, made it configurable

* fix redqueen clippy

* Clippy

* Clippy

* WHY ARE THERE TWO TIMES THE SAME FN

* More clippy
2023-07-04 14:57:09 +01:00
Ivan Fratric
829b5049e6
Hexagon support (#1323)
* Hexagon support

* Fix format

* Fix needless bool

* Address comments

---------

Co-authored-by: Andrea Fioraldi <andreafioraldi@gmail.com>
2023-07-04 11:08:36 +02:00
Dongjia "toka" Zhang
07f4c42ecf
AFL++ redqueen update (#1291)
* up

* dbg

* fix

* fmt

* fix

* refactor

* more

* clp

* upd

* fmt

* fmt

* last

* debugging

* wip

* lastlast

---------

Co-authored-by: Dominik Maier <domenukk@gmail.com>
2023-07-03 19:27:34 +02:00
David CARLIER
4897c3f205
util/noaslr porting to FreeBSD (the non-lib part). (#1337)
to port to the library, might need a nice layer over the FreeBSD's C api (nix?)
before hand.
2023-07-03 00:51:32 +01:00
Dominik Maier
c0e1236a07
Formatting fuzzers with new fmt (#1340) 2023-07-02 18:19:48 +01:00
Dominik Maier
6f4955619a
Latest fmt (#1339) 2023-07-02 18:13:46 +01:00
WorksButNotTested
07047cb3bb
Added noaslr (#1333) 2023-06-30 20:37:48 +02:00