2327 Commits

Author SHA1 Message Date
David CARLIER
4a96354276
bolts: fix netbsd/openbsd clippy (#1459) 2023-08-24 21:41:44 +02:00
David CARLIER
209d38a768
bolts: disable build for rust < 1.70 proposal. (#1460)
mostly due std::cell namespace introduction in the 1.70 version.
as rust versions evolve fast enough, it might be easier than
having conditional dependency on he old once_cell crate.
2023-08-24 21:41:26 +02:00
Addison Crump
9aa40c0734
Document libafl_libfuzzer (#1457)
* prep for publishing libafl_libfuzzer

* learn to use linkers

* document-features

* special handling for fuzzbench builds

* Update cmplog.c

* drop dep for llvm-tools; add testcase for memcmp sanity

---------

Co-authored-by: Dongjia "toka" Zhang <tokazerkje@outlook.com>
2023-08-24 20:24:38 +02:00
Dominik Maier
f7c94f9a85
Create _std public methods on TunableMutationalStage (#1458)
* Create _std public methods on TunableMutationalStage

* No tunafish
2023-08-24 16:05:30 +02:00
Dominik Maier
9208531951
Move from intervalltree to meminterval dep (#1456)
* Move from intervalltree to meminterval dep

* fixes
2023-08-24 14:15:24 +02:00
Addison Crump
862de53cf6
Full libfuzzer shimming (for cargo-fuzz libfuzzer alternative and other use cases) (#981)
* squash libfuzzer edits

* fixup: compat with custom mutators

* use tui flag

* add introspection support

* use libfuzzer dep now that we've merged

* force input loading

* some fixes

* begin docs, impl shrink

* make whole-archive conditional and not default

* make more copies of counters maps

* lol, remember to add the observer

* make size edge map observer an observer

* fixup: make def of run driver conditional

* add sanity checks for insertion

* revert silencing of forks

* add experimental tmin support; add default asan flags

* use default options instead of specifying our own

* implement lockless mode

* fix merge

* fixup lockless corpus

* fixup for generalisation

* remove erroneous drop_in_place

* improve error logging in the case of corpus loading failure

* ok, use lock files 😔

* fix tmin

* implement merge (again); fix rare cases with maps being too small

* implement a scheduler for removing excess

* implement a walking strategy for corpus loading for large corpora

* revert filename parameter; rename and remove duplicates

* various cleanup and clippy satisfaction

* fix no_std tests

* clang-format

* expand and satisfy the clippy gods

* fix sanitizer_ifaces bindgen for no_std

* fix wasm fuzzer

* fixup clippy script

* rename and provide a small amount of explanation for sanitizer_interfaces

* fixup: HasLastReportTime

* fix clippy oddities

* restrict clippy checks to linux-only for libafl_libfuzzer_runtime

* name the mutators

* format

* fix clippy warning

* hope docker is fixed

* fix cmin lint

* clippy pass

* more docs

* more clippy

* fix remaining clippy complaints

* fix import

* miri fixes (no constructors executed)

* exclude libafl_libfuzzer from cargo-hack

* fix clippy check for sanitizer_interfaces

* fmt

* fix CI (?)

* deduplicate sancov 8bit for improved perf on ASAN

* merge 8bit coverage regions + comment out insane deduplication

* no erroring out on free hooks

* fixup for non-forking merge

* skip the corpus dir if we use it

* fixup: recent libafl changes and feature flags

* libafl_libfuzzer: use rust-lld for whole-archive feature

* clarify cause of failure

* mark unsafe

* clippy :cursed_cowboy:

* attempt to fix wasm

* spooky unknowable bug 👻

* more clippy lints

* clippy fix for merge

* use the version pin

* add unsafe to ::register

* Serdeany autoreg fix

* make type assert actionable

* miri fixes

---------

Co-authored-by: Dominik Maier <domenukk@gmail.com>
Co-authored-by: Dominik Maier <dmnk@google.com>
Co-authored-by: Mrmaxmeier <Mrmaxmeier@gmail.com>
2023-08-24 13:30:23 +02:00
Dominik Maier
f68fe95f09
Document features (#1453)
* Document features

* Fix doctest

* remove link

* <<<<head

* Fix doc links
2023-08-24 13:27:37 +02:00
Dominik Maier
e89e8dbaab
Remove dependencies, add doc.rs metadata (#1450)
* Remove dependency, add doc.rs metadata

* remove lazy_static

* even less lazy_static

* serial_test no default
2023-08-24 11:34:38 +02:00
lazymio
c84c105fb9
Allow setting max iterations for stages (#1436)
* Allow setting the max iterations

* Rename API

* Fix baby_fuzzer_grimoire

* Relax bound

* Also add a new API for transforming

* Revert back grimoire fix

* Revert bound relax
2023-08-24 09:59:11 +02:00
lazymio
20cee8cd33
Allow multiple tuneable mutational stages (#1437)
* Allow multiple tuneable mutational stages

* Fix for default name

* Fix import

* Format code

* Standalone trait bounds

* Minor fix

* Add _with_name API

* Format code

---------

Co-authored-by: Andrea Fioraldi <andreafioraldi@gmail.com>
2023-08-24 09:58:23 +02:00
Dominik Maier
2f840ef92d
Windows dependency upgrade (#1448)
* Windows dependency upgrade

* update windows

* fmt

* expect is not fun but what can you do

* fmt, clippy
2023-08-24 08:15:31 +02:00
Dominik Maier
454142c29e
Add bolts::math, make functions const, cleanup (#1444)
* Make some functions const

* fix isprint

* more const

* move integer_sqrt to bolts, use binary search, use u128 to handle extreme values

* Technically correct

* clippy

* u64 algo

* More test

* cumulative_distribution to in_place

* move calculate_cumulative_distribution_in_place to bolts

* clippy

* Move math stuff to bolts::math

* actually add math

* math?

* For some reason this fixes things, dunno

* fix builds?

* does that help?

* clippy ignores

* more clean clippy

* more cfg_attr
2023-08-23 21:12:39 +02:00
David CARLIER
d338b30c08
qemu: add cpu page_size call (#1433)
* qemu handy cpu page size call proposal.

* changes from feedback.
2023-08-23 20:27:58 +02:00
Manish Goregaokar
8f27b14eb8
Use postcard with default-features = false (#1446) 2023-08-23 19:53:25 +02:00
Dominik Maier
65ec23fd35
Update uds, remove unused features (#1447) 2023-08-23 19:52:59 +02:00
David CARLIER
1922cb0a65
qemu snapshot little update proposal. (#1431)
* qemu snapshot little update proposal.

* reeatablishing the TODO since the change does not do it at all
 but getting unrelated constant mask unrelated to mappings protection.

---------

Co-authored-by: Andrea Fioraldi <andreafioraldi@gmail.com>
2023-08-23 10:13:08 +02:00
Rowan Hart
942c6a42ac
Reset headers with a memcpy, not an assign from zeroed (#1443) 2023-08-23 08:23:52 +02:00
Marco Vanotti
174b852e0a
Fix probabilities in TuneableScheduledMutator (#1440)
This commit fixes some issues regarding the `TuneableScheduledMutator`,
which had an edge case for drawing probabilities.

The user is supposed to provide a vector with probabilities that have to
add up to 1.0, but due to floating-point errors, the number can be
sligthly off.

If the sum ends up being slow, there's a chance that we draw a number
that is bigger than it (for example, 1.0), and that would not be present
in the cumulative distribution vectors (either for iterations or
mutations).

The issue is fixed by setting the last value of the cumulative
distribution to 1.0.

This commits adds some validations in the function that calculates the
cumulative distribution function, making sure that the numbers add up to
1, and that they are all between 0 and 1.

The API is now changed so the functions can now return an error instead
of crashing.

The commit also adds some tests, and fixes the `reset()` function.
2023-08-23 01:37:22 +02:00
David CARLIER
389c7c6554
bolts: fix freebsd clippy warnings (#1442) 2023-08-23 01:32:34 +02:00
Andrea Fioraldi
0b43711dc9
Fix LLMP p2p + restart bug with CentralizedEventManager (#1389)
This commit rewrites the centralized manager to use a secondary broker, as p2p communication is unreliable during frequent restarts. A centralized launcher is introduced too.
2023-08-22 15:57:50 +02:00
Rowan Hart
a14363f1fc
Make CmpValues Clone (#1439) 2023-08-21 22:11:11 +02:00
Dominik Maier
6e5d102673
Clippy fixes for frida_executable_libpng fuzzer (#1438) 2023-08-21 19:41:03 +02:00
Dominik Maier
a426b6fc3d
Clippy for pthread_hook (#1435)
* Clippy

* doctest
2023-08-21 13:35:59 +02:00
Dominik Maier
c31ca2c9f7
Fix Frida CI for Windows, Clippy (#1430)
* Fix Frida for Windows

* more fix

* clippy in pthreads
2023-08-20 13:30:21 +02:00
David CARLIER
c6bfb07832
bolts write_minibsod netbsd implementation. (#1428)
pretty close to freebsd for the most part.
2023-08-20 12:01:04 +02:00
Dominik Maier
1d746b4074
Fixes for frida, qemu_sugar (#1427)
* Fixes for frida, qemu_sugar

* tiny clippy

* clippy

* fix thread_id

* Attempted fix for qemu
2023-08-20 12:00:41 +02:00
lenawanel
173b14258b
fix CI QemuCmpLogHelper error. (#1429)
this was caused by using `cpu_arch = {mips,hexagon}` and `feature = [mips,hexagon]`
for the same reasons
2023-08-20 11:58:50 +02:00
r4ve1
0eceafe0c5
Allow the FridaInProcessExecutor to attach Stalker on specific thread (#1256)
* feat: support specify thread id for frida stalker

* fix: thread_id type

* fix: use official repo for frida-gum

* Merged

* Added back missing bolts

---------

Co-authored-by: Dominik Maier <domenukk@gmail.com>
2023-08-17 19:47:07 +02:00
Dominik Maier
35fa881ff0
Update frida (#1408)
* Update frida

* fix build

* aarch64

* fix aarch64 buid

* Fix CI

* move to git version of frida

* fix

* Frida frida frida
2023-08-17 17:49:12 +02:00
Dominik Maier
b0179b4498
Update some deps, clippy (#1422)
* More less default

* More clippy

* updated rangemap

* Clean up depencdencies

* Undo accidental remove

* Fix

* trying to fix qemu build

* hexagon be gone
2023-08-17 17:15:03 +02:00
David CARLIER
b5774b2275
write_minibsod for apple (#1425) 2023-08-15 20:16:07 +02:00
lenawanel
5c05b3d32d
Update documentation of feedbacks::map::OneOrFilledIsNovel (#1423)
this previously seemed to describe `NextPow2IsNovel`
2023-08-15 20:14:30 +02:00
David CARLIER
bc42880274
minibsod, fix clippy warning (#1424) 2023-08-14 10:51:01 +02:00
Dominik Maier
0be4847cb7
Add more libafl_qemu archs to libafl_sugar (#1419)
* Add more archs to LibAFL_QEMU

* fixed critical whitespace
2023-08-13 20:38:24 +02:00
David CARLIER
8f16001c47
minibsod::generate_minibsod openbsd implementation (#1420) 2023-08-13 20:36:13 +02:00
David CARLIER
698ebb6b35
libafl_bolts: fix musl build (#1421)
despite being present in the headers, getcontext is not implemented in
musl libc, most likely due to the fact it s a deprecated interface.
The only way around is having the third party libucontext apk package
installed.
2023-08-13 12:14:30 +02:00
Dominik Maier
dcdfa978a4
Fix latest Clippy for good (#1418)
* More Clippy

* More clippy

* More ignore
2023-08-13 12:10:55 +02:00
Dominik Maier
b02592c5c7
Add serdeany_autoreg to libafl_frida (#1417) 2023-08-13 10:07:33 +02:00
Konstantin Bücheler
9650e06b45
Add serdeany_autoreg to libafl_qemu (#1416)
* Add `serdeany_autoreg` to `libafl_qemu`

* Update Cargo.toml

Add autoreg to default

---------

Co-authored-by: Dominik Maier <domenukk@gmail.com>
2023-08-13 01:25:59 +02:00
Dominik Maier
e0d90aa67f
More Clippy fixes (#1415)
* More Clippy fixes

* Clippy
2023-08-13 01:17:34 +02:00
Dominik Maier
b9879a8bfc
Fix CI (#1414) 2023-08-12 03:24:06 +02:00
mark0
a55d40cd00
Update accounting.rs (#1411)
Remove dead code for better semantic compliance
2023-08-10 17:46:56 +02:00
Dominik Maier
ff2f325d68
Fix building docs (#1413) 2023-08-10 14:51:19 +02:00
Dominik Maier
8ca2df8819
Updated Scheduler::on_add documentation (#1410) 2023-08-10 14:27:21 +02:00
lenawanel
4bee9a9039
Update documentation of PowerQueueScheduler::on_add (#1409)
this fixes https://github.com/AFLplusplus/LibAFL/issues/1373
2023-08-10 14:23:19 +02:00
Dominik Maier
418d0dba91
Remove unused owned (for now) (#1405) 2023-08-07 12:50:43 +02:00
Dominik Maier
b877ed7e0e
Removed unused intrinsics features (#1404) 2023-08-07 10:55:08 +02:00
WorksButNotTested
51e2f64e5b
gdb_qemu: Ignore UTF-8 errors (#1403)
Co-authored-by: Your Name <you@example.com>
Co-authored-by: Dominik Maier <domenukk@gmail.com>
2023-08-07 10:54:49 +02:00
David CARLIER
3bf3172928
fix bolts build, intrinsics is an internal feature. (#1402) 2023-08-06 23:03:34 +02:00
Dominik Maier
dfaf06a22e
Make bolts work without alloc (#1401)
* Make bolts work without alloc

* Use core::Error where available

* unstable_feature -> nightly

* windows no_alloc
2023-08-05 01:03:40 +02:00