2728 Commits

Author SHA1 Message Date
Dongjia "toka" Zhang
967449e3cb
Fix CI (somewhat) (#2546)
* fix ci

* a

* order

* libafl-fuzz: fix CI cmplog (#2548)

---------

Co-authored-by: Aarnav <aarnavbos@gmail.com>
2024-09-24 03:18:15 +02:00
Aarnav
7432bd0f59
libafl-fuzz: fix libafl-fuzz scheduler (#2545) 2024-09-23 18:56:09 +02:00
Aarnav
085db55f19
libafl-fuzz: fix not loading seeds recursively from directories (#2532)
* libafl-fuzz: fix not loading seeds recursively from directories

* add walk_initial_inputs to State

* libafl-fuzz: add afl++ style seed filename when copying initial files

* typo
2024-09-23 18:55:01 +02:00
Dongjia "toka" Zhang
cbfd194723
Reducing type parameters and bounds from Scheduler (#2544)
* actually reducing type parameters

* no std

* aa

* aa

* a
2024-09-23 17:01:21 +02:00
Dominik Maier
35779863c4
Bring back placeholder value in CommandExecutor to fix #2541 (#2543) 2024-09-23 15:59:06 +02:00
Dominik Maier
173a9ad8ea
Fix ForkserverExecutorBuilder::shmem_provider (#2539) (#2540)
* Fix ForkserverExecutorBuilder::shmem_provider (#2539)

* fmt
2024-09-23 14:15:11 +02:00
Dongjia "toka" Zhang
93fdbb604c
No Uses* (again) (#2537)
* ihatethislanguageihatethislanguageihatethislanguageihatethislanguage

* 1

* a

* fuck

* FMTFMTFMTFMTFMTFMT

* 👍

* afasdfadsfs

* lol

* aa

* a bit more
2024-09-23 14:03:24 +02:00
Valentin Huber
e370e2f852
Code Cleanup of #2422 (#2534)
* code cleanup

* removing another unnecessary borrow

* cleaning up the cleanup
2024-09-20 17:39:09 +02:00
Valentin Huber
2c676f0352
Add MappedInputs to allow havoc muations for custom (sub-)inputs (#2422)
* introducing MappingMutator

* extending mapping mutators

* adding example fuzzer

* making crossover mutators more flexible.

* moving example fuzzer

* fixing dependency paths

* formatting

* fixing no std error

* fixing broken docs link

* fixing import paths

* fixing imports

* more format fixing

* adding new example fuzzer to CI

* fixing further imports

* fixing formatting

* formatting fixes

* improving docs for the example fuzzer

* adding documentation and tests to mapping mutators

* make extraction function for mapped crossover mutators more general

* adding MutVecFunctionMappingMutator

* Introducing WrapsReference

* code cleanup for mapping mutators

* adding tests and docs to mapping mutators

* reformatting comments

* fixing merging of mutators in example fuzzer

* formatting

* formatting v2

* cleanup according to PR comments

* adding type constraint to MappedInput helper functions to remove the need to specify types

* matching functions passed to mapped_havoc_mutations

* removing unnecessary constraints

* mapping mutators now contain the name of their inner mutator

---------

Co-authored-by: Dominik Maier <domenukk@gmail.com>
2024-09-18 23:23:04 +02:00
Dongjia "toka" Zhang
5b7d307a6a
Add avoid_crash option to scheduler (#2530)
* chg

* add avoid_crash

* a

* clp

* just use .00 at this point

* libafl-fuzz chg
2024-09-18 17:57:40 +02:00
Dongjia "toka" Zhang
902571c0c7
Delete pruning.rs (#2533)
* set AFL_MAP_SIZE

* delete it
2024-09-18 17:35:31 +02:00
Dongjia "toka" Zhang
4e302a2115
Set AFL_MAP_SIZE in forkserver (#2531)
* set AFL_MAP_SIZE

* aaaaaaa
2024-09-18 17:03:48 +02:00
Dongjia "toka" Zhang
cf87895aaa
Change qemu signature (again) (#2529) 2024-09-18 14:48:53 +02:00
Dongjia "toka" Zhang
4c5df53c6d
Change Qemu hook signature (#2527) 2024-09-17 17:05:11 +02:00
Nereuxofficial
69941f258e
Small improvements to the devcontainer (#2522)
* feat: revert now unecessary workaround, use rust-lang.rust-analyzer

* fix: specify llvm version and symlink llvm. Thanks @tokatoka

* fix: pass the llvm version to createAliases.sh

* fix: shell script lints

* fix: shell script lints

* feat: use cargo binstall to make the container build faster
2024-09-16 22:53:28 +02:00
Marco C.
37f2d2dd0a
Move cfg to avoid unused import error (#2526) 2024-09-16 15:19:01 +02:00
Dominik Maier
a168d76b14
Tiny clippy (#2525) 2024-09-16 12:21:58 +02:00
20urc3
71ed5c7227
Update how exec/sec is displayed (#2524)
- Only display 1 digit after . for value above 1k
- Only display 2 digits after . for value above 1m

3.254k exec/sec becomes => 3.2k exec/sec
3.254M exec/sec becomes => 3.25M exec/sec
2024-09-13 21:03:18 +02:00
Dominik Maier
8ccff4b77f
Add StdState::nop() for simple state creation, make CI happy again on latest nightly. (#2521)
* Make CI happy again on latest nightly

* Fix build

* Unneeded comment

* fix tests

* clippy
2024-09-12 00:33:55 +02:00
Dominik Maier
25624d8eec
Rename HasCurrentStage to HasCurrentStageId for consistency (#2514) 2024-09-08 10:21:49 +02:00
ThomasTNO
70f1c13a4f
Remove redundant line (#2516)
* Remove redundant line

* No need to mut this value
2024-09-08 02:37:23 +02:00
ThomasTNO
a5584bf23a
Fix typo in error message (#2515) 2024-09-07 14:23:12 +02:00
Dongjia "toka" Zhang
1172b5e5e0
Fix build and remove dump_state feature (#2513)
* fix

* remove dump_state
2024-09-06 14:22:33 +02:00
Dongjia "toka" Zhang
b37f9d4b27
Better error when non required pass failed to build (#2509) 2024-09-05 19:17:21 +02:00
Dongjia "toka" Zhang
49b0d7557a
Fix merge failure (#2508) 2024-09-05 14:49:37 +02:00
Romain Malmain
203d3d340a
Multi machine follow-up (#2334)
* improved tree generator.
possibility to dump state on exit.

* warnings.

* clippy

* clippy

* aaaaaa

* aaaaaa

* make nix mandatory for unix

* stddddddd

* stddddddd

* stddddddd

* aaa

* clippy

* doc

* aaa

* aaa

* aaa

* aaa

* fix

* aaaaaaaa

* dump state

* aaa

* aaa

* aaa

* more minimal dump

* aaa

* aaa

* aaa

* simpler tc dump

* pub

* more pub

* revert a bit

* release by default

* delete Makefile.toml

* release

* dump execs

* merge

* delete stuff

* aa

* ff

* dig

* FMT cargo stuf

---------

Co-authored-by: Toka <tokazerkje@outlook.com>
2024-09-04 18:42:54 +02:00
Sharad Khanna
1113879a34
Fix i2srandreplace (#2504) 2024-08-30 14:15:26 +02:00
Sharad Khanna
a8bccf9f25
Minimizer fix (#2500)
* Clear potentially out of date id

* fmt

* add mut
2024-08-27 04:26:36 +02:00
Aarnav
3ca906b7d3
Libafl-fuzz: fix unicorn mode (#2502)
* libafl-fuzz: fix unicorn mode not using a deferred forkserver
libafl-fuzz: simplify handling args for harness

* fix unicorn_mode

---------

Co-authored-by: Dominik Maier <domenukk@gmail.com>
2024-08-26 19:30:38 +02:00
Dominik Maier
e2cc78f274
Better documentation headers (clippy) (#2501)
* Better documentation headers (clippy)

* more doc

* more fixes

* Even more

* more

* even more

* concrete

* fmt

* even more more

* tiny typo

* more

* more

* More

* more

* more docs?

* more docs
2024-08-26 16:31:22 +02:00
Aarnav
07db74b416
Libafl-fuzz: introduce unicorn mode (#2499)
* libafl-fuzz: introduce unicorn mode

* taplo format

* libafl-fuzz: fix qemumode

* taplo format
2024-08-26 11:32:44 +02:00
Marco C.
a388012429
Do not use caret requirements (#2498) 2024-08-24 00:02:37 -05:00
Romain Malmain
1f55458293
Fix fmt & remaining md links (#2497) 2024-08-22 19:08:44 -05:00
Alexander Qi
0018f7e406
bolts: Support dump_registers on Windows/x86 and Windows/aarch64 and fix sig_ign on Windows/x86 (#2494)
* bolts: Support dump_registers on Windows/x86

* bolts: Support dump_registers on Windows/aarch64

* bolts: Fix sig_ign() on Windows/x86

* bolts: Fix format of dump_registers under Windows

* bolts: Add test for dump_register under Windows
2024-08-22 18:22:24 -05:00
Marco Grassi
1dfd225b1b
Fix fuzzer links in the libafl book (#2493)
* the rustup official command to update is 'rustup update' not 'rustup upgrade', although to catch mistakes, 'rustup upgrade' also fallback to update

* fix references to baby_fuzzer and baby_fuzzer new location

* modernize a bit the manifests and code snippets for the baby_fuzzer to make the experience more consistent with the current rust compiler

* fix another reference path for baby fuzzers

* fix frida fuzzers locations in the book

* fix the concolic hybrid fuzzers location in the book

* fix baby_no_std location in the book

* fix nyx fuzzers location in the book

* Revert "modernize a bit the manifests and code snippets for the baby_fuzzer to make the experience more consistent with the current rust compiler"

This reverts commit c58bfbfffd06a3afa8338043dde6ed59b03d8178.
2024-08-22 18:15:36 -05:00
Romain Malmain
8d0ad23856
Check markdown links validity in CI (#2495)
* add markdown link check in ci

* fix broken links when possible.
configuration file for md checker.

* accept code 200...

* more fixes

* more fixes

* more fixes
2024-08-22 18:15:15 -05:00
Dongjia "toka" Zhang
f856092f3d
Fix libxml2 on fuzzbench (#2492)
* fix

* fmt

* fuck

* from windows

* fix

---------

Co-authored-by: Your Name <you@example.com>
2024-08-21 16:41:18 +02:00
Romain Malmain
4b87d7f4eb
Custom QEMU emulator typed builder + ExitHandler / Commands refactoring (#2486)
* Add a custom typed builder for Emulator

* Unify qemu_init for usermode and systemmode

* Remove env from qemu init args (it is unused in QEMU in practice)

* expose thread hooks to systemmode

* rename qemu_config to config

* Replace ExitHandler by EmulatorDriver

* Reorder generics alphabetically for Qemu{,Fork}Executor

* Moved snapshot manager to Emulator to continue centralizing mains objects in the same structure

* Reimplementation of CommandManager working with enums instead of tables

* Macro has been adapted to do this work automatically

* Moved snapshot stuff to dedicated module

* Removed many Rc<RefCell<...>>, now useless with the removal of vtables

* Builder given by Emulator via `Emulator::builder`. Reduced trait bound overhead
2024-08-21 16:36:45 +02:00
Marco Grassi
16aa218457
Fix rustup command in the LibAFL book (#2491) 2024-08-20 22:49:32 -05:00
Dongjia "toka" Zhang
eb3dff07b6
Add more missing ngram8 cfgs (#2490)
* fix dump cfg

* add missing cfg

* more

* taplo fmt
2024-08-19 14:39:21 +02:00
Dongjia "toka" Zhang
7a5c695401
Add missing ngram8 cfg (#2489)
* fix dump cfg

* add missing cfg
2024-08-19 14:23:47 +02:00
Addison Crump
f3433767be
Make pcs_init compatible with multiple DSOs (#2488)
* make pcs_init compatible with multiple DSOs

* clippy
2024-08-15 15:56:41 +02:00
Marco C.
21051dc26f
qemu: Add QemuConfig to set qemu args via a struct (#2339)
* Add QemuConfig to set qemu args via a struct

* Add derive macro to automate the qemu string args generation

* fix tests
2024-08-14 15:30:14 +02:00
Romain Malmain
6979032ad9
Qemu generics cleanup (#2484)
* cleanup generics

* remove most extern C

* update qemu to latest revision

* executor trait bounds minimization
2024-08-14 12:55:43 +02:00
Romain Malmain
13ba32ed2a
Unify qemu executor (#2483)
* Remove stateless qemu executor

* All harnesses take a reference to an emulator as parameter now

* harness takes an emulator as first parameter, and input as second parameter (opposite of previous definition)

* bump libafl qemu dependencies to the latest version
2024-08-13 19:44:10 +02:00
Romain Malmain
00806b177d
Qemu native hooks refactoring (#2480)
* qemu native hooks refactoring (companion patch of qemu-libafl-bridge#82)

* update stubs
2024-08-13 18:40:51 +02:00
Aarnav
2287afc59b
libafl-fuzz: Introduce Support for QEMU mode (#2481)
* libafl-fuzz: simplify Makefile.toml

* Re-introduce support for old AFL++ forkserver

* clippy

* libafl-fuzz: add support for QEMU mode

* libafl-fuzz: simplify Makefile
2024-08-13 07:13:59 -05:00
Niklas Gögge
799c634fef
Implement FeedbackFactory for {Const,Not}Feedback (#2478)
* libafl: Impl FeedbackFactory for NotFeedback

* libafl: Impl FeedbackFactory for ConstFeedback
2024-08-09 12:24:46 +02:00
Dongjia "toka" Zhang
9b32f85124
Fix dump cfg pass (#2476) 2024-08-06 18:47:49 +02:00
Romain Malmain
723f4a1cb0
Fix various QEMU bugs (#2475)
* Update LibAFL QEMU to the latest version (V9.0.2 update, important bug fixes, ... - check the dedicated repo for more info)
* fix bug in hook execution, causing first execution hooks to be run multiple times.
2024-08-05 23:48:35 +02:00