Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make Launcher use ClientDescription instead of CoreId #2676

Merged
merged 66 commits into from
Nov 29, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
66 commits
Select commit Hold shift + click to select a range
54fe933
launcher now uses client_id instead of core_id
riesentoaster Nov 9, 2024
02aee52
adding overcommit to an example fuzzer
riesentoaster Nov 9, 2024
9cb0319
Replace addr_of with &raw across the codebase (#2669)
domenukk Nov 8, 2024
c5cc84e
Introduce workspace (again) (#2673)
domenukk Nov 9, 2024
4e67bd5
Replace addr_of with &raw across the codebase (#2669)
domenukk Nov 8, 2024
7e1fe97
Introduce workspace (again) (#2673)
domenukk Nov 9, 2024
c957504
fixing formatting issues
riesentoaster Nov 9, 2024
8a7b4c1
cloning values to make borrow checker happy
riesentoaster Nov 9, 2024
89e0ee9
simplifying cfg constraints, removing excessive clippy allows
riesentoaster Nov 9, 2024
514fa96
printing clang version that is used to find inconsistencies between C…
riesentoaster Nov 10, 2024
18f0b71
some fixes according to the CI
riesentoaster Nov 10, 2024
19f9144
Specifying types
riesentoaster Nov 10, 2024
ba8a7d5
improved logging for formatter
riesentoaster Nov 10, 2024
80856a1
more attempts at logging for the CI formatting
riesentoaster Nov 10, 2024
27369af
fixing setting LLVM version in formatting in CI
riesentoaster Nov 10, 2024
69235b7
fixing cippy allows
riesentoaster Nov 10, 2024
6f808c1
renaming launcher's ClientID to ClientDescription
riesentoaster Nov 21, 2024
fd4bc2a
Lower capped RAND generators (#2671)
CowBoy4mH3LL Nov 11, 2024
a94ac6f
fix error '#' is not followed by a macro parameter (#2678)
jejuisland87654 Nov 11, 2024
42a8a68
Use version.workspace (#2682)
Marcondiro Nov 12, 2024
c253bfe
LibAFL_QEMU: Don't return a generic Address from Register reads (#2681)
domenukk Nov 13, 2024
195b20d
Add DrCovReader to read DrCov files and DrCov dumper and merge utils …
domenukk Nov 13, 2024
1977d7f
Fix build_all_fuzzers.sh for local runs (#2686)
tokatoka Nov 13, 2024
5817241
Add Intel PT tracing support (#2471)
Marcondiro Nov 13, 2024
6c0ef01
libafl-fuzz: introduce nyx_mode (#2503)
R9295 Nov 13, 2024
3854a2e
LibAFL: Remove `tui_monitor` from default features (#2685)
tokatoka Nov 13, 2024
e49c718
Actually make ConstMapObserver work, introduce `nonnull_raw_mut` macr…
domenukk Nov 13, 2024
20756b2
Feature: libafl-fuzzfuzzbench (#2689)
R9295 Nov 13, 2024
02c0b03
Move bitfields to bitbybit (#2688)
Marcondiro Nov 13, 2024
36bbdb7
Fix NautilusContext::from_file for python files (#2690)
jejuisland87654 Nov 13, 2024
492836b
Bump to 0.14.0 (#2692)
andreafioraldi Nov 13, 2024
73bd3f7
Fix versions in libafl and libafl_intelpt for crates.io (#2693)
andreafioraldi Nov 13, 2024
d8cf47c
StdMOptMutator::new: remove unused type parameter (#2695)
Mrmaxmeier Nov 14, 2024
9c67cc7
Move test_harness from source directory to OUT_DIR (#2694)
mineo333 Nov 14, 2024
7acc3a1
Add package.metadata.docs.rs for libafl_intelpt (#2696)
tokatoka Nov 15, 2024
9f195ff
libafl-fuzz: fix cmplog running on inputs more than once (#2697)
R9295 Nov 15, 2024
ce436ea
Libafl workspace internal deps in workspace Cargo.toml (#2691)
Marcondiro Nov 15, 2024
a87ad76
Fix tui monitor for example fuzzers (#2699)
domenukk Nov 16, 2024
29f47cd
Update pyo3-build-config requirement from 0.22.3 to 0.23.1 (#2701)
dependabot[bot] Nov 18, 2024
8897b5e
bolts: fix build for tiers 3 platforms. (#2700)
devnexen Nov 18, 2024
7526f2b
Pre init module hooks (#2704)
rmalmain Nov 18, 2024
80cb547
Fix edge module generators (#2702)
rmalmain Nov 18, 2024
9cf1420
fix metadata removal for ExecutionCountRestartHelper (#2705)
henryhchchc Nov 19, 2024
654f3ce
Ignore pyo3 update (#2709)
tokatoka Nov 19, 2024
686e7e3
libafl-fuzz: feature-flag nyx mode (#2712)
R9295 Nov 20, 2024
0c49e50
Bump ctor dependency to make nightly compile again (#2713)
domenukk Nov 20, 2024
a85798a
Batched timeout doc (#2716)
tokatoka Nov 21, 2024
33eb001
More batched timeout doc (#2717)
tokatoka Nov 21, 2024
e0a8082
Merge remote-tracking branch 'upstream/main' into overcommit
riesentoaster Nov 21, 2024
9be4407
fixing an overexited cast
riesentoaster Nov 21, 2024
eebdbc7
renaming variables
riesentoaster Nov 21, 2024
33b7d28
removing unnecessary brackets
riesentoaster Nov 21, 2024
95281ac
fixing imports
riesentoaster Nov 21, 2024
9e5fcf4
fixing imports
riesentoaster Nov 21, 2024
0dd380e
renaming more variables
riesentoaster Nov 21, 2024
b404d67
even more variable renaming
riesentoaster Nov 21, 2024
ef79761
Merge branch 'main' into overcommit
riesentoaster Nov 22, 2024
03e9c6d
Merge branch 'main' into overcommit
riesentoaster Nov 25, 2024
b2e3a98
removing duplicate clap short options
riesentoaster Nov 25, 2024
8d3ccf1
reverting mistaken variable renaming
riesentoaster Nov 25, 2024
75bc956
comparing the actual cores instead of an enumeration index
riesentoaster Nov 25, 2024
ecac53a
Merge branch 'main' into overcommit
riesentoaster Nov 26, 2024
81fa4e0
Merge branch 'main' into overcommit
riesentoaster Nov 26, 2024
8dbca0e
Merge branch 'main' into overcommit
riesentoaster Nov 26, 2024
7a3eba6
Merge branch 'main' into overcommit
riesentoaster Nov 26, 2024
b3de26f
Merge branch 'main' into overcommit
riesentoaster Nov 28, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/build_and_test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -194,7 +194,7 @@ jobs:
cargo-fmt:
runs-on: ubuntu-24.04
env:
MAIN_LLVM_VERSION: 19
MAIN_LLVM_VERSION: 19
steps:
- uses: actions/checkout@v4
- uses: ./.github/workflows/ubuntu-prepare
Expand Down
30 changes: 20 additions & 10 deletions fuzzers/binary_only/frida_executable_libpng/src/fuzzer.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,9 @@ use std::{path::PathBuf, ptr::null};
use frida_gum::Gum;
use libafl::{
corpus::{CachedOnDiskCorpus, Corpus, OnDiskCorpus},
events::{launcher::Launcher, llmp::LlmpRestartingEventManager, EventConfig},
events::{
launcher::Launcher, llmp::LlmpRestartingEventManager, ClientDescription, EventConfig,
},
executors::{inprocess::InProcessExecutor, ExitKind, ShadowExecutor},
feedback_or, feedback_or_fast,
feedbacks::{CrashFeedback, MaxMapFeedback, TimeFeedback, TimeoutFeedback},
Expand Down Expand Up @@ -93,13 +95,17 @@ unsafe fn fuzz(

let shmem_provider = StdShMemProvider::new()?;

let mut run_client = |state: Option<_>, mgr: LlmpRestartingEventManager<_, _, _>, core_id| {
let mut run_client = |state: Option<_>,
mgr: LlmpRestartingEventManager<_, _, _>,
client_description: ClientDescription| {
// The restarting state will spawn the same process again as child, then restarted it each time it crashes.

// println!("{:?}", mgr.mgr_id());

if options.asan && options.asan_cores.contains(core_id) {
(|state: Option<_>, mut mgr: LlmpRestartingEventManager<_, _, _>, _core_id| {
if options.asan && options.asan_cores.contains(client_description.core_id()) {
(|state: Option<_>,
mut mgr: LlmpRestartingEventManager<_, _, _>,
_client_description| {
let gum = Gum::obtain();

let coverage = CoverageRuntime::new();
Expand Down Expand Up @@ -222,9 +228,11 @@ unsafe fn fuzz(
fuzzer.fuzz_loop(&mut stages, &mut executor, &mut state, &mut mgr)?;

Ok(())
})(state, mgr, core_id)
} else if options.cmplog && options.cmplog_cores.contains(core_id) {
(|state: Option<_>, mut mgr: LlmpRestartingEventManager<_, _, _>, _core_id| {
})(state, mgr, client_description)
} else if options.cmplog && options.cmplog_cores.contains(client_description.core_id()) {
(|state: Option<_>,
mut mgr: LlmpRestartingEventManager<_, _, _>,
_client_description| {
let gum = Gum::obtain();

let coverage = CoverageRuntime::new();
Expand Down Expand Up @@ -356,9 +364,11 @@ unsafe fn fuzz(
fuzzer.fuzz_loop(&mut stages, &mut executor, &mut state, &mut mgr)?;

Ok(())
})(state, mgr, core_id)
})(state, mgr, client_description)
} else {
(|state: Option<_>, mut mgr: LlmpRestartingEventManager<_, _, _>, _core_id| {
(|state: Option<_>,
mut mgr: LlmpRestartingEventManager<_, _, _>,
_client_description| {
let gum = Gum::obtain();

let coverage = CoverageRuntime::new();
Expand Down Expand Up @@ -473,7 +483,7 @@ unsafe fn fuzz(
fuzzer.fuzz_loop(&mut stages, &mut executor, &mut state, &mut mgr)?;

Ok(())
})(state, mgr, core_id)
})(state, mgr, client_description)
}
};

Expand Down
30 changes: 20 additions & 10 deletions fuzzers/binary_only/frida_libpng/src/fuzzer.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,9 @@ use std::path::PathBuf;
use frida_gum::Gum;
use libafl::{
corpus::{CachedOnDiskCorpus, Corpus, OnDiskCorpus},
events::{launcher::Launcher, llmp::LlmpRestartingEventManager, EventConfig},
events::{
launcher::Launcher, llmp::LlmpRestartingEventManager, ClientDescription, EventConfig,
},
executors::{inprocess::InProcessExecutor, ExitKind, ShadowExecutor},
feedback_or, feedback_or_fast,
feedbacks::{CrashFeedback, MaxMapFeedback, TimeFeedback, TimeoutFeedback},
Expand Down Expand Up @@ -73,7 +75,9 @@ unsafe fn fuzz(options: &FuzzerOptions) -> Result<(), Error> {

let shmem_provider = StdShMemProvider::new()?;

let mut run_client = |state: Option<_>, mgr: LlmpRestartingEventManager<_, _, _>, core_id| {
let mut run_client = |state: Option<_>,
mgr: LlmpRestartingEventManager<_, _, _>,
client_description: ClientDescription| {
// The restarting state will spawn the same process again as child, then restarted it each time it crashes.

// println!("{:?}", mgr.mgr_id());
Expand All @@ -90,8 +94,10 @@ unsafe fn fuzz(options: &FuzzerOptions) -> Result<(), Error> {
ExitKind::Ok
};

if options.asan && options.asan_cores.contains(core_id) {
(|state: Option<_>, mut mgr: LlmpRestartingEventManager<_, _, _>, _core_id| {
if options.asan && options.asan_cores.contains(client_description.core_id()) {
(|state: Option<_>,
mut mgr: LlmpRestartingEventManager<_, _, _>,
_client_description| {
let gum = Gum::obtain();

let coverage = CoverageRuntime::new();
Expand Down Expand Up @@ -214,9 +220,11 @@ unsafe fn fuzz(options: &FuzzerOptions) -> Result<(), Error> {
fuzzer.fuzz_loop(&mut stages, &mut executor, &mut state, &mut mgr)?;

Ok(())
})(state, mgr, core_id)
} else if options.cmplog && options.cmplog_cores.contains(core_id) {
(|state: Option<_>, mut mgr: LlmpRestartingEventManager<_, _, _>, _core_id| {
})(state, mgr, client_description)
} else if options.cmplog && options.cmplog_cores.contains(client_description.core_id()) {
(|state: Option<_>,
mut mgr: LlmpRestartingEventManager<_, _, _>,
_client_description| {
let gum = Gum::obtain();

let coverage = CoverageRuntime::new();
Expand Down Expand Up @@ -349,9 +357,11 @@ unsafe fn fuzz(options: &FuzzerOptions) -> Result<(), Error> {
fuzzer.fuzz_loop(&mut stages, &mut executor, &mut state, &mut mgr)?;

Ok(())
})(state, mgr, core_id)
})(state, mgr, client_description)
} else {
(|state: Option<_>, mut mgr: LlmpRestartingEventManager<_, _, _>, _core_id| {
(|state: Option<_>,
mut mgr: LlmpRestartingEventManager<_, _, _>,
_client_description| {
let gum = Gum::obtain();

let coverage = CoverageRuntime::new();
Expand Down Expand Up @@ -466,7 +476,7 @@ unsafe fn fuzz(options: &FuzzerOptions) -> Result<(), Error> {
fuzzer.fuzz_loop(&mut stages, &mut executor, &mut state, &mut mgr)?;

Ok(())
})(state, mgr, core_id)
})(state, mgr, client_description)
}
};

Expand Down
30 changes: 20 additions & 10 deletions fuzzers/binary_only/frida_windows_gdiplus/src/fuzzer.rs
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,9 @@ use std::path::PathBuf;
use frida_gum::Gum;
use libafl::{
corpus::{CachedOnDiskCorpus, Corpus, OnDiskCorpus},
events::{launcher::Launcher, llmp::LlmpRestartingEventManager, EventConfig},
events::{
launcher::Launcher, llmp::LlmpRestartingEventManager, ClientDescription, EventConfig,
},
executors::{inprocess::InProcessExecutor, ExitKind, ShadowExecutor},
feedback_and_fast, feedback_or, feedback_or_fast,
feedbacks::{ConstFeedback, CrashFeedback, MaxMapFeedback, TimeFeedback, TimeoutFeedback},
Expand Down Expand Up @@ -82,7 +84,9 @@ unsafe fn fuzz(options: &FuzzerOptions) -> Result<(), Error> {

let shmem_provider = StdShMemProvider::new()?;

let mut run_client = |state: Option<_>, mgr: LlmpRestartingEventManager<_, _, _>, core_id| {
let mut run_client = |state: Option<_>,
mgr: LlmpRestartingEventManager<_, _, _>,
client_description: ClientDescription| {
// The restarting state will spawn the same process again as child, then restarted it each time it crashes.

// println!("{:?}", mgr.mgr_id());
Expand All @@ -99,8 +103,10 @@ unsafe fn fuzz(options: &FuzzerOptions) -> Result<(), Error> {
ExitKind::Ok
};

if options.asan && options.asan_cores.contains(core_id) {
(|state: Option<_>, mut mgr: LlmpRestartingEventManager<_, _, _>, _core_id| {
if options.asan && options.asan_cores.contains(client_description.core_id()) {
(|state: Option<_>,
mut mgr: LlmpRestartingEventManager<_, _, _>,
_client_description| {
let gum = Gum::obtain();

let coverage = CoverageRuntime::new();
Expand Down Expand Up @@ -212,9 +218,11 @@ unsafe fn fuzz(options: &FuzzerOptions) -> Result<(), Error> {
fuzzer.fuzz_loop(&mut stages, &mut executor, &mut state, &mut mgr)?;

Ok(())
})(state, mgr, core_id)
} else if options.cmplog && options.cmplog_cores.contains(core_id) {
(|state: Option<_>, mut mgr: LlmpRestartingEventManager<_, _, _>, _core_id| {
})(state, mgr, client_description)
} else if options.cmplog && options.cmplog_cores.contains(client_description.core_id()) {
(|state: Option<_>,
mut mgr: LlmpRestartingEventManager<_, _, _>,
_client_description| {
let gum = Gum::obtain();

let coverage = CoverageRuntime::new();
Expand Down Expand Up @@ -340,9 +348,11 @@ unsafe fn fuzz(options: &FuzzerOptions) -> Result<(), Error> {
fuzzer.fuzz_loop(&mut stages, &mut executor, &mut state, &mut mgr)?;

Ok(())
})(state, mgr, core_id)
})(state, mgr, client_description)
} else {
(|state: Option<_>, mut mgr: LlmpRestartingEventManager<_, _, _>, _core_id| {
(|state: Option<_>,
mut mgr: LlmpRestartingEventManager<_, _, _>,
_client_description| {
let gum = Gum::obtain();

let coverage = CoverageRuntime::new();
Expand Down Expand Up @@ -454,7 +464,7 @@ unsafe fn fuzz(options: &FuzzerOptions) -> Result<(), Error> {
.unwrap();

Ok(())
})(state, mgr, core_id)
})(state, mgr, client_description)
}
};

Expand Down
Loading
Loading