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
This commit is contained in:
Dominik Maier 2023-08-02 17:36:26 +02:00 committed by GitHub
parent d69cde896c
commit e9e9c457d6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
268 changed files with 2053 additions and 1837 deletions

View File

@ -163,7 +163,7 @@ jobs:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
- uses: Swatinem/rust-cache@v2 - uses: Swatinem/rust-cache@v2
- name: Run a maturin build - name: Run a maturin build
run: cd ./bindings/pylibafl && python3 -m venv .env && . .env/bin/activate && pip install . && ./test.sh run: cd ./bindings/pylibafl && python3 -m venv .env && . .env/bin/activate && pip install --upgrade --force-reinstall . && ./test.sh
- name: Run python test - name: Run python test
run: . ./bindings/pylibafl/.env/bin/activate && cd ./fuzzers/baby_fuzzer && python3 baby_fuzzer.py 2>&1 | grep "Bye" run: . ./bindings/pylibafl/.env/bin/activate && cd ./fuzzers/baby_fuzzer && python3 baby_fuzzer.py 2>&1 | grep "Bye"

2
.gitignore vendored
View File

@ -56,3 +56,5 @@ __pycache__
libafl_nyx/QEMU-Nyx libafl_nyx/QEMU-Nyx
libafl_nyx/packer libafl_nyx/packer
.z3-trace

View File

@ -2,35 +2,37 @@
resolver = "2" resolver = "2"
members = [ members = [
"libafl", "libafl",
"libafl_derive", "libafl_bolts",
"libafl_cc", "libafl_cc",
"libafl_targets",
"libafl_frida",
"libafl_qemu",
"libafl_tinyinst",
"libafl_sugar",
"libafl_nyx",
"libafl_concolic/symcc_runtime", "libafl_concolic/symcc_runtime",
"libafl_concolic/symcc_libafl", "libafl_concolic/symcc_libafl",
"libafl_concolic/test/dump_constraints", "libafl_concolic/test/dump_constraints",
"libafl_concolic/test/runtime_test", "libafl_concolic/test/runtime_test",
"utils/deexit", "libafl_derive",
"utils/gramatron/construct_automata", "libafl_frida",
"utils/libafl_benches", "libafl_nyx",
"libafl_qemu",
"libafl_sugar",
"libafl_targets",
"libafl_tinyinst",
"utils/build_and_test_fuzzers", "utils/build_and_test_fuzzers",
"utils/deexit",
"utils/libafl_benches",
"utils/gramatron/construct_automata",
] ]
default-members = [ default-members = [
"libafl", "libafl",
"libafl_derive", "libafl_bolts",
"libafl_cc", "libafl_cc",
"libafl_derive",
"libafl_targets", "libafl_targets",
] ]
exclude = [ exclude = [
"fuzzers",
"bindings", "bindings",
"scripts", "fuzzers",
"libafl_qemu/libafl_qemu_build", "libafl_qemu/libafl_qemu_build",
"libafl_qemu/libafl_qemu_sys" "libafl_qemu/libafl_qemu_sys",
"scripts",
] ]
[workspace.package] [workspace.package]

View File

@ -29,9 +29,12 @@ COPY libafl_derive/Cargo.toml libafl_derive/Cargo.toml
COPY scripts/dummy.rs libafl_derive/src/lib.rs COPY scripts/dummy.rs libafl_derive/src/lib.rs
COPY libafl/Cargo.toml libafl/build.rs libafl/ COPY libafl/Cargo.toml libafl/build.rs libafl/
COPY libafl/examples libafl/examples
COPY scripts/dummy.rs libafl/src/lib.rs COPY scripts/dummy.rs libafl/src/lib.rs
COPY libafl_bolts/Cargo.toml libafl_bolts/build.rs libafl_bolts/
COPY libafl_bolts/examples libafl_bolts/examples
COPY scripts/dummy.rs libafl_bolts/src/lib.rs
COPY libafl_frida/Cargo.toml libafl_frida/build.rs libafl_frida/ COPY libafl_frida/Cargo.toml libafl_frida/build.rs libafl_frida/
COPY scripts/dummy.rs libafl_frida/src/lib.rs COPY scripts/dummy.rs libafl_frida/src/lib.rs
COPY libafl_frida/src/gettls.c libafl_frida/src/gettls.c COPY libafl_frida/src/gettls.c libafl_frida/src/gettls.c
@ -95,6 +98,8 @@ COPY libafl_cc/src libafl_cc/src
RUN touch libafl_cc/src/lib.rs RUN touch libafl_cc/src/lib.rs
COPY libafl_derive/src libafl_derive/src COPY libafl_derive/src libafl_derive/src
RUN touch libafl_derive/src/lib.rs RUN touch libafl_derive/src/lib.rs
COPY libafl_bolts/src libafl_bolts/src
RUN touch libafl_bolts/src/lib.rs
COPY libafl/src libafl/src COPY libafl/src libafl/src
RUN touch libafl/src/lib.rs RUN touch libafl/src/lib.rs
COPY libafl_targets/src libafl_targets/src COPY libafl_targets/src libafl_targets/src

View File

@ -9,6 +9,7 @@ pyo3-log = "0.8.1"
libafl_qemu = { path = "../../libafl_qemu", version = "0.10.1", features = ["python"] } libafl_qemu = { path = "../../libafl_qemu", version = "0.10.1", features = ["python"] }
libafl_sugar = { path = "../../libafl_sugar", version = "0.10.1", features = ["python"] } libafl_sugar = { path = "../../libafl_sugar", version = "0.10.1", features = ["python"] }
libafl = { path = "../../libafl", version = "0.10.1", features = ["python"] } libafl = { path = "../../libafl", version = "0.10.1", features = ["python"] }
libafl_bolts = { path = "../../libafl_bolts", version = "0.10.1", features = ["python"] }
[build-dependencies] [build-dependencies]
pyo3-build-config = { version = "0.17" } pyo3-build-config = { version = "0.17" }

View File

@ -1,4 +1,5 @@
use libafl; use libafl;
use libafl_bolts;
#[cfg(target_os = "linux")] #[cfg(target_os = "linux")]
use libafl_qemu; use libafl_qemu;
use libafl_sugar; use libafl_sugar;
@ -91,18 +92,20 @@ pub fn python_module(py: Python, m: &PyModule) -> PyResult<()> {
let sugar_module = PyModule::new(py, "sugar")?; let sugar_module = PyModule::new(py, "sugar")?;
libafl_sugar::python_module(py, sugar_module)?; libafl_sugar::python_module(py, sugar_module)?;
m.add_submodule(sugar_module)?; m.add_submodule(sugar_module)?;
modules.set_item("pylibafl.sugar", sugar_module)?; modules.set_item("pylibafl.sugar", sugar_module)?;
#[cfg(target_os = "linux")] #[cfg(target_os = "linux")]
let qemu_module = PyModule::new(py, "qemu")?; {
#[cfg(target_os = "linux")] let qemu_module = PyModule::new(py, "qemu")?;
libafl_qemu::python_module(py, qemu_module)?; libafl_qemu::python_module(py, qemu_module)?;
#[cfg(target_os = "linux")] m.add_submodule(qemu_module)?;
m.add_submodule(qemu_module)?; modules.set_item("pylibafl.qemu", qemu_module)?;
}
#[cfg(target_os = "linux")] let bolts_module = PyModule::new(py, "libafl_bolts")?;
modules.set_item("pylibafl.qemu", qemu_module)?; libafl_bolts::pybind::python_module(py, bolts_module)?;
m.add_submodule(bolts_module)?;
modules.set_item("pylibafl.libafl_bolts", bolts_module)?;
let libafl_module = PyModule::new(py, "libafl")?; let libafl_module = PyModule::new(py, "libafl")?;
libafl::pybind::python_module(py, libafl_module)?; libafl::pybind::python_module(py, libafl_module)?;
@ -116,7 +119,6 @@ pub fn python_module(py: Python, m: &PyModule) -> PyResult<()> {
} }
m.add_submodule(libafl_module)?; m.add_submodule(libafl_module)?;
modules.set_item("pylibafl.libafl", libafl_module)?; modules.set_item("pylibafl.libafl", libafl_module)?;
Ok(()) Ok(())

View File

@ -8,6 +8,7 @@ edition = "2018"
[dependencies] [dependencies]
libafl = { path = "path/to/libafl/" } libafl = { path = "path/to/libafl/" }
libafl_bolts = { path = "path/to/libafl_bolts/" }
[profile.dev] [profile.dev]
panic = "abort" panic = "abort"

View File

@ -8,6 +8,7 @@ edition = "2018"
[dependencies] [dependencies]
libafl = { path = "path/to/libafl/" } libafl = { path = "path/to/libafl/" }
libafl_bolts = { path = "path/to/libafl_bolts/" }
[profile.dev] [profile.dev]
panic = "abort" panic = "abort"

View File

@ -1,9 +1,10 @@
extern crate libafl; extern crate libafl;
extern crate libafl_bolts;
use libafl::{ use libafl::{
bolts::AsSlice,
executors::ExitKind, executors::ExitKind,
inputs::{BytesInput, HasTargetBytes}, inputs::{BytesInput, HasTargetBytes},
}; };
use libafl_bolts::AsSlice;
fn main() { fn main() {
let mut harness = |input: &BytesInput| { let mut harness = |input: &BytesInput| {

View File

@ -8,6 +8,7 @@ edition = "2018"
[dependencies] [dependencies]
libafl = { path = "path/to/libafl/" } libafl = { path = "path/to/libafl/" }
libafl_bolts = { path = "path/to/libafl_bolts/" }
[profile.dev] [profile.dev]
panic = "abort" panic = "abort"

View File

@ -1,8 +1,8 @@
/* ANCHOR: use */ /* ANCHOR: use */
extern crate libafl; extern crate libafl;
extern crate libafl_bolts;
use libafl::{ use libafl::{
bolts::{current_nanos, rands::StdRand, AsSlice},
corpus::{InMemoryCorpus, OnDiskCorpus}, corpus::{InMemoryCorpus, OnDiskCorpus},
events::SimpleEventManager, events::SimpleEventManager,
executors::{inprocess::InProcessExecutor, ExitKind}, executors::{inprocess::InProcessExecutor, ExitKind},
@ -13,6 +13,7 @@ use libafl::{
schedulers::QueueScheduler, schedulers::QueueScheduler,
state::StdState, state::StdState,
}; };
use libafl_bolts::{current_nanos, rands::StdRand, AsSlice};
use std::path::PathBuf; use std::path::PathBuf;
/* ANCHOR_END: use */ /* ANCHOR_END: use */

View File

@ -1,8 +1,8 @@
/* ANCHOR: use */ /* ANCHOR: use */
extern crate libafl; extern crate libafl;
extern crate libafl_bolts;
use libafl::{ use libafl::{
bolts::{current_nanos, rands::StdRand, tuples::tuple_list, AsSlice},
corpus::{InMemoryCorpus, OnDiskCorpus}, corpus::{InMemoryCorpus, OnDiskCorpus},
events::SimpleEventManager, events::SimpleEventManager,
executors::{inprocess::InProcessExecutor, ExitKind}, executors::{inprocess::InProcessExecutor, ExitKind},
@ -15,6 +15,7 @@ use libafl::{
schedulers::QueueScheduler, schedulers::QueueScheduler,
state::StdState, state::StdState,
}; };
use libafl_bolts::{current_nanos, rands::StdRand, tuples::tuple_list, AsSlice};
use std::path::PathBuf; use std::path::PathBuf;
/* ANCHOR_END: use */ /* ANCHOR_END: use */

View File

@ -8,6 +8,7 @@ edition = "2018"
[dependencies] [dependencies]
libafl = { path = "path/to/libafl/" } libafl = { path = "path/to/libafl/" }
libafl_bolts = { path = "path/to/libafl_bolts/" }
[profile.dev] [profile.dev]
panic = "abort" panic = "abort"

View File

@ -1,8 +1,8 @@
/* ANCHOR: use */ /* ANCHOR: use */
extern crate libafl; extern crate libafl;
extern crate libafl_bolts;
use libafl::{ use libafl::{
bolts::{current_nanos, rands::StdRand, tuples::tuple_list, AsSlice},
corpus::{InMemoryCorpus, OnDiskCorpus}, corpus::{InMemoryCorpus, OnDiskCorpus},
events::SimpleEventManager, events::SimpleEventManager,
executors::{inprocess::InProcessExecutor, ExitKind}, executors::{inprocess::InProcessExecutor, ExitKind},
@ -17,6 +17,7 @@ use libafl::{
stages::mutational::StdMutationalStage, stages::mutational::StdMutationalStage,
state::StdState, state::StdState,
}; };
use libafl_bolts::{current_nanos, rands::StdRand, tuples::tuple_list, AsSlice};
use std::path::PathBuf; use std::path::PathBuf;
/* ANCHOR_END: use */ /* ANCHOR_END: use */

View File

@ -5,10 +5,10 @@ A metadata in LibAFL is a self-contained structure that holds associated data to
In terms of code, a metadata can be defined as a Rust struct registered in the SerdeAny register. In terms of code, a metadata can be defined as a Rust struct registered in the SerdeAny register.
```rust ```rust
extern crate libafl; # extern crate libafl_bolts;
extern crate serde; # extern crate serde;
use libafl::SerdeAny; use libafl_bolts::SerdeAny;
use serde::{Serialize, Deserialize}; use serde::{Serialize, Deserialize};
#[derive(Debug, Serialize, Deserialize, SerdeAny)] #[derive(Debug, Serialize, Deserialize, SerdeAny)]
@ -19,7 +19,7 @@ pub struct MyMetadata {
The struct must be static, so it cannot hold references to borrowed objects. The struct must be static, so it cannot hold references to borrowed objects.
As an alternative to `derive(SerdeAny)` which is a proc-macro in `libafl_derive` the user can use `libafl::impl_serdeany!(MyMetadata);`. As an alternative to `derive(SerdeAny)` which is a proc-macro in `libafl_derive` the user can use `libafl_bolts::impl_serdeany!(MyMetadata);`.
## Usage ## Usage

View File

@ -31,6 +31,21 @@ You can choose the features by using `features = ["feature1", "feature2", ...]`
Out of this list, by default, `std`, `derive`, and `rand_trait` are already set. Out of this list, by default, `std`, `derive`, and `rand_trait` are already set.
You can choose to disable them by setting `default-features = false` in your `Cargo.toml`. You can choose to disable them by setting `default-features = false` in your `Cargo.toml`.
## [`libafl_bolts](https://github.com/AFLplusplus/LibAFL/tree/main/libafl)
The `libafl_bolts` create is a minimal tool shed filled with useful low-level rust features, not necessarily related to fuzzers.
In it, you'll find highlights like:
- `core_affinity` to bind the current process to cores
- `SerdeAnyMap` a map that can store typed values in a serializable fashion
- `minibsod` to dump the current process state
- `LLMP`, "low level message passing", a lock-free IPC mechanism
- `Rand`, different fast (non-cryptographically secure) RNG implementations like RomuRand
- `ShMem`, a platform independent shard memory implementation
- `Tuples`, a compiletime tuple implementation
... and much more.
### libafl_sugar ### libafl_sugar
The sugar crate abstracts away most of the complexity of LibAFL's API. The sugar crate abstracts away most of the complexity of LibAFL's API.

View File

@ -20,4 +20,5 @@ debug = true
[dependencies] [dependencies]
libafl = { path = "../../libafl/" } libafl = { path = "../../libafl/" }
libafl_bolts = { path = "../../libafl_bolts/" }
postcard = "0.7" postcard = "0.7"

View File

@ -7,7 +7,6 @@ use std::{
}; };
use libafl::{ use libafl::{
bolts::{current_nanos, rands::StdRand, tuples::tuple_list},
corpus::{InMemoryCorpus, OnDiskCorpus}, corpus::{InMemoryCorpus, OnDiskCorpus},
events::SimpleEventManager, events::SimpleEventManager,
executors::{inprocess::InProcessExecutor, ExitKind}, executors::{inprocess::InProcessExecutor, ExitKind},
@ -25,6 +24,7 @@ use libafl::{
stages::mutational::StdMutationalStage, stages::mutational::StdMutationalStage,
state::StdState, state::StdState,
}; };
use libafl_bolts::{current_nanos, rands::StdRand, tuples::tuple_list};
/// Coverage map with explicit assignments due to the lack of instrumentation /// Coverage map with explicit assignments due to the lack of instrumentation
static mut SIGNALS: [u8; 16] = [0; 16]; static mut SIGNALS: [u8; 16] = [0; 16];
@ -123,7 +123,7 @@ pub fn main() {
} }
let mut set = HashSet::new(); let mut set = HashSet::new();
let st = libafl::bolts::current_milliseconds(); let st = libafl_bolts::current_milliseconds();
let mut b = vec![]; let mut b = vec![];
let mut c = 0; let mut c = 0;
for _ in 0..100000 { for _ in 0..100000 {
@ -132,7 +132,7 @@ pub fn main() {
set.insert(calculate_hash(&b)); set.insert(calculate_hash(&b));
c += b.len(); c += b.len();
} }
println!("{} / {}", c, libafl::bolts::current_milliseconds() - st); println!("{} / {}", c, libafl_bolts::current_milliseconds() - st);
println!("{} / 100000", set.len()); println!("{} / 100000", set.len());
return; return;

View File

@ -20,3 +20,4 @@ debug = true
[dependencies] [dependencies]
libafl = { path = "../../libafl/" } libafl = { path = "../../libafl/" }
libafl_bolts = { path = "../../libafl_bolts/" }

View File

@ -3,7 +3,6 @@ use std::ptr::write_volatile;
use std::{fs, io::Read, path::PathBuf, ptr::write}; use std::{fs, io::Read, path::PathBuf, ptr::write};
use libafl::{ use libafl::{
bolts::{current_nanos, rands::StdRand, tuples::tuple_list, AsSlice},
corpus::{InMemoryCorpus, OnDiskCorpus}, corpus::{InMemoryCorpus, OnDiskCorpus},
events::SimpleEventManager, events::SimpleEventManager,
executors::{inprocess::InProcessExecutor, ExitKind}, executors::{inprocess::InProcessExecutor, ExitKind},
@ -21,6 +20,7 @@ use libafl::{
stages::{mutational::StdMutationalStage, GeneralizationStage}, stages::{mutational::StdMutationalStage, GeneralizationStage},
state::{HasMetadata, StdState}, state::{HasMetadata, StdState},
}; };
use libafl_bolts::{current_nanos, rands::StdRand, tuples::tuple_list, AsSlice};
/// Coverage map with explicit assignments due to the lack of instrumentation /// Coverage map with explicit assignments due to the lack of instrumentation
static mut SIGNALS: [u8; 16] = [0; 16]; static mut SIGNALS: [u8; 16] = [0; 16];

View File

@ -21,3 +21,4 @@ debug = true
[dependencies] [dependencies]
libafl = { path = "../../libafl/", features = ["prelude"] } libafl = { path = "../../libafl/", features = ["prelude"] }
libafl_bolts = { path = "../../libafl_bolts/", features = ["prelude"] }

View File

@ -3,6 +3,7 @@ use std::ptr::write_volatile;
use std::{path::PathBuf, ptr::write}; use std::{path::PathBuf, ptr::write};
use libafl::prelude::*; use libafl::prelude::*;
use libafl_bolts::prelude::*;
/// Coverage map with explicit assignments due to the lack of instrumentation /// Coverage map with explicit assignments due to the lack of instrumentation
static mut SIGNALS: [u8; 16] = [0; 16]; static mut SIGNALS: [u8; 16] = [0; 16];

View File

@ -20,3 +20,4 @@ debug = true
[dependencies] [dependencies]
libafl = { path = "../../libafl/", features = ["default", "nautilus"] } libafl = { path = "../../libafl/", features = ["default", "nautilus"] }
libafl_bolts = { path = "../../libafl_bolts/" }

View File

@ -3,7 +3,6 @@ use std::path::PathBuf;
use std::ptr::write_volatile; use std::ptr::write_volatile;
use libafl::{ use libafl::{
bolts::{current_nanos, rands::StdRand, tuples::tuple_list},
corpus::{InMemoryCorpus, OnDiskCorpus}, corpus::{InMemoryCorpus, OnDiskCorpus},
events::SimpleEventManager, events::SimpleEventManager,
executors::{inprocess::InProcessExecutor, ExitKind}, executors::{inprocess::InProcessExecutor, ExitKind},
@ -21,6 +20,7 @@ use libafl::{
stages::mutational::StdMutationalStage, stages::mutational::StdMutationalStage,
state::{HasMetadata, StdState}, state::{HasMetadata, StdState},
}; };
use libafl_bolts::{current_nanos, rands::StdRand, tuples::tuple_list};
/// Coverage map with explicit assignments due to the lack of instrumentation /// Coverage map with explicit assignments due to the lack of instrumentation
static mut SIGNALS: [u8; 16] = [0; 16]; static mut SIGNALS: [u8; 16] = [0; 16];
@ -122,7 +122,7 @@ pub fn main() {
} }
let mut set = HashSet::new(); let mut set = HashSet::new();
let st = libafl::bolts::current_milliseconds(); let st = libafl_bolts::current_milliseconds();
let mut b = vec![]; let mut b = vec![];
let mut c = 0; let mut c = 0;
for _ in 0..100000 { for _ in 0..100000 {
@ -131,7 +131,7 @@ pub fn main() {
set.insert(calculate_hash(&b)); set.insert(calculate_hash(&b));
c += b.len(); c += b.len();
} }
println!("{} / {}", c, libafl::bolts::current_milliseconds() - st); println!("{} / {}", c, libafl_bolts::current_milliseconds() - st);
println!("{} / 100000", set.len()); println!("{} / 100000", set.len());
return; return;

View File

@ -26,6 +26,7 @@ cc = "1.0"
[dependencies] [dependencies]
libafl = { path = "../../libafl" } libafl = { path = "../../libafl" }
libafl_bolts = { path = "../../libafl_bolts" }
libafl_targets = { path = "../../libafl_targets", features = ["sancov_pcguard_hitcounts", "libfuzzer", "sancov_cmplog", "pointer_maps"] } libafl_targets = { path = "../../libafl_targets", features = ["sancov_pcguard_hitcounts", "libfuzzer", "sancov_cmplog", "pointer_maps"] }
mimalloc = { version = "*", default-features = false } mimalloc = { version = "*", default-features = false }

View File

@ -10,7 +10,6 @@ use libafl::monitors::tui::{ui::TuiUI, TuiMonitor};
#[cfg(not(feature = "tui"))] #[cfg(not(feature = "tui"))]
use libafl::monitors::SimpleMonitor; use libafl::monitors::SimpleMonitor;
use libafl::{ use libafl::{
bolts::{current_nanos, rands::StdRand, tuples::tuple_list, AsSlice},
corpus::{Corpus, InMemoryCorpus, InMemoryOnDiskCorpus}, corpus::{Corpus, InMemoryCorpus, InMemoryOnDiskCorpus},
events::SimpleEventManager, events::SimpleEventManager,
executors::{inprocess::InProcessExecutor, DiffExecutor, ExitKind}, executors::{inprocess::InProcessExecutor, DiffExecutor, ExitKind},
@ -24,6 +23,7 @@ use libafl::{
stages::mutational::StdMutationalStage, stages::mutational::StdMutationalStage,
state::{HasSolutions, StdState}, state::{HasSolutions, StdState},
}; };
use libafl_bolts::{current_nanos, rands::StdRand, tuples::tuple_list, AsSlice};
use libafl_targets::{edges_max_num, DifferentialAFLMapSwapObserver}; use libafl_targets::{edges_max_num, DifferentialAFLMapSwapObserver};
#[cfg(not(miri))] #[cfg(not(miri))]
use mimalloc::MiMalloc; use mimalloc::MiMalloc;
@ -46,10 +46,8 @@ use bindings::{inspect_first, inspect_second};
#[cfg(feature = "multimap")] #[cfg(feature = "multimap")]
mod multimap { mod multimap {
pub use libafl::{ pub use libafl::observers::{HitcountsIterableMapObserver, MultiMapObserver};
bolts::ownedref::OwnedMutSlice, pub use libafl_bolts::ownedref::OwnedMutSlice;
observers::{HitcountsIterableMapObserver, MultiMapObserver},
};
} }
#[cfg(feature = "multimap")] #[cfg(feature = "multimap")]
use multimap::{HitcountsIterableMapObserver, MultiMapObserver, OwnedMutSlice}; use multimap::{HitcountsIterableMapObserver, MultiMapObserver, OwnedMutSlice};

View File

@ -20,3 +20,4 @@ debug = true
[dependencies] [dependencies]
libafl = { path = "../../libafl/" } libafl = { path = "../../libafl/" }
libafl_bolts = { path = "../../libafl_bolts/" }

View File

@ -3,7 +3,6 @@ use std::ptr::write_volatile;
use std::{fs, io::Read, path::PathBuf, ptr::write}; use std::{fs, io::Read, path::PathBuf, ptr::write};
use libafl::{ use libafl::{
bolts::{current_nanos, rands::StdRand, tuples::tuple_list},
corpus::{InMemoryCorpus, OnDiskCorpus}, corpus::{InMemoryCorpus, OnDiskCorpus},
events::SimpleEventManager, events::SimpleEventManager,
executors::{inprocess::InProcessExecutor, ExitKind}, executors::{inprocess::InProcessExecutor, ExitKind},
@ -17,6 +16,7 @@ use libafl::{
stages::mutational::StdMutationalStage, stages::mutational::StdMutationalStage,
state::StdState, state::StdState,
}; };
use libafl_bolts::{current_nanos, rands::StdRand, tuples::tuple_list};
/// Coverage map with explicit assignments due to the lack of instrumentation /// Coverage map with explicit assignments due to the lack of instrumentation
static mut SIGNALS: [u8; 16] = [0; 16]; static mut SIGNALS: [u8; 16] = [0; 16];

View File

@ -15,6 +15,7 @@ js-sys = "0.3"
wasm-bindgen = "0.2.63" wasm-bindgen = "0.2.63"
libafl = { path = "../../libafl", default-features = false } libafl = { path = "../../libafl", default-features = false }
libafl_bolts = { path = "../../libafl_bolts", default-features = false }
# The `console_error_panic_hook` crate provides better debugging of panics by # The `console_error_panic_hook` crate provides better debugging of panics by
# logging them with `console.error`. This is great for development, but requires # logging them with `console.error`. This is great for development, but requires

View File

@ -1,7 +1,6 @@
mod utils; mod utils;
use libafl::{ use libafl::{
bolts::{current_nanos, rands::StdRand, tuples::tuple_list, AsSlice},
corpus::{Corpus, InMemoryCorpus}, corpus::{Corpus, InMemoryCorpus},
events::SimpleEventManager, events::SimpleEventManager,
executors::{ExitKind, InProcessExecutor}, executors::{ExitKind, InProcessExecutor},
@ -16,6 +15,7 @@ use libafl::{
state::{HasSolutions, StdState}, state::{HasSolutions, StdState},
Fuzzer, StdFuzzer, Fuzzer, StdFuzzer,
}; };
use libafl_bolts::{current_nanos, rands::StdRand, tuples::tuple_list, AsSlice};
use wasm_bindgen::prelude::*; use wasm_bindgen::prelude::*;
use web_sys::{Performance, Window}; use web_sys::{Performance, Window};

View File

@ -20,3 +20,4 @@ debug = true
[dependencies] [dependencies]
libafl = { path = "../../libafl/" } libafl = { path = "../../libafl/" }
libafl_bolts = { path = "../../libafl_bolts/" }

View File

@ -3,13 +3,6 @@ use std::ptr::write_volatile;
use std::{path::PathBuf, ptr::write}; use std::{path::PathBuf, ptr::write};
use libafl::{ use libafl::{
bolts::{
current_nanos,
rands::StdRand,
shmem::{unix_shmem, ShMemProvider},
tuples::tuple_list,
AsMutSlice, AsSlice,
},
corpus::{InMemoryCorpus, OnDiskCorpus}, corpus::{InMemoryCorpus, OnDiskCorpus},
events::SimpleEventManager, events::SimpleEventManager,
executors::{ExitKind, InProcessForkExecutor}, executors::{ExitKind, InProcessForkExecutor},
@ -24,6 +17,13 @@ use libafl::{
stages::mutational::StdMutationalStage, stages::mutational::StdMutationalStage,
state::StdState, state::StdState,
}; };
use libafl_bolts::{
current_nanos,
rands::StdRand,
shmem::{unix_shmem, ShMemProvider},
tuples::tuple_list,
AsMutSlice, AsSlice,
};
#[allow(clippy::similar_names)] #[allow(clippy::similar_names)]
pub fn main() { pub fn main() {

View File

@ -16,6 +16,7 @@ debug = true
[dependencies] [dependencies]
libafl = { default-features = false, path = "../../libafl/" } libafl = { default-features = false, path = "../../libafl/" }
libafl_bolts = { default-features = false, path = "../../libafl_bolts/" }
static-alloc = "0.2.3" static-alloc = "0.2.3"
[target.'cfg(unix)'.dependencies] [target.'cfg(unix)'.dependencies]

View File

@ -11,7 +11,6 @@ use core::panic::PanicInfo;
use core::ptr::write; use core::ptr::write;
use libafl::{ use libafl::{
bolts::{current_nanos, rands::StdRand, tuples::tuple_list, AsSlice},
corpus::InMemoryCorpus, corpus::InMemoryCorpus,
events::SimpleEventManager, events::SimpleEventManager,
executors::{inprocess::InProcessExecutor, ExitKind}, executors::{inprocess::InProcessExecutor, ExitKind},
@ -26,6 +25,7 @@ use libafl::{
stages::mutational::StdMutationalStage, stages::mutational::StdMutationalStage,
state::StdState, state::StdState,
}; };
use libafl_bolts::{current_nanos, rands::StdRand, tuples::tuple_list, AsSlice};
#[cfg(any(windows, unix))] #[cfg(any(windows, unix))]
use libc::{abort, printf}; use libc::{abort, printf};
use static_alloc::Bump; use static_alloc::Bump;

View File

@ -16,6 +16,7 @@ debug = true
[dependencies] [dependencies]
libafl = { path = "../../../libafl/" } libafl = { path = "../../../libafl/" }
libafl_bolts = { path = "../../../libafl_bolts/" }
libc = "0.2" libc = "0.2"
[build-dependencies] [build-dependencies]

View File

@ -1,13 +1,6 @@
use std::path::PathBuf; use std::path::PathBuf;
use libafl::{ use libafl::{
bolts::{
current_nanos,
rands::StdRand,
shmem::{ShMem, ShMemProvider, StdShMemProvider},
tuples::tuple_list,
AsSlice,
},
corpus::{InMemoryCorpus, OnDiskCorpus}, corpus::{InMemoryCorpus, OnDiskCorpus},
events::SimpleEventManager, events::SimpleEventManager,
executors::InProcessForkExecutor, executors::InProcessForkExecutor,
@ -23,6 +16,13 @@ use libafl::{
stages::mutational::StdMutationalStage, stages::mutational::StdMutationalStage,
state::StdState, state::StdState,
}; };
use libafl_bolts::{
current_nanos,
rands::StdRand,
shmem::{ShMem, ShMemProvider, StdShMemProvider},
tuples::tuple_list,
AsSlice,
};
use libc::{c_int, c_uchar}; use libc::{c_int, c_uchar};
extern crate libc; extern crate libc;

View File

@ -16,6 +16,7 @@ debug = true
[dependencies] [dependencies]
libafl = { path = "../../../libafl/" } libafl = { path = "../../../libafl/" }
libafl_bolts = { path = "../../../libafl_bolts/" }
libc = "0.2" libc = "0.2"
[build-dependencies] [build-dependencies]

View File

@ -1,7 +1,6 @@
use std::path::PathBuf; use std::path::PathBuf;
use libafl::{ use libafl::{
bolts::{current_nanos, rands::StdRand, tuples::tuple_list, AsSlice},
corpus::{InMemoryCorpus, OnDiskCorpus}, corpus::{InMemoryCorpus, OnDiskCorpus},
events::SimpleEventManager, events::SimpleEventManager,
executors::InProcessExecutor, executors::InProcessExecutor,
@ -17,6 +16,7 @@ use libafl::{
stages::mutational::StdMutationalStage, stages::mutational::StdMutationalStage,
state::StdState, state::StdState,
}; };
use libafl_bolts::{current_nanos, rands::StdRand, tuples::tuple_list, AsSlice};
use libc::c_uchar; use libc::c_uchar;
extern crate libc; extern crate libc;

View File

@ -18,4 +18,4 @@ cc = "*"
[dependencies] [dependencies]
libafl = { path = "../../../libafl/" } libafl = { path = "../../../libafl/" }
libafl_bolts = { path = "../../../libafl_bolts/" }

View File

@ -8,13 +8,6 @@ use std::{
}; };
use libafl::{ use libafl::{
bolts::{
current_nanos,
rands::StdRand,
shmem::{unix_shmem, ShMem, ShMemId, ShMemProvider},
tuples::tuple_list,
AsMutSlice, AsSlice,
},
corpus::{InMemoryCorpus, OnDiskCorpus}, corpus::{InMemoryCorpus, OnDiskCorpus},
events::SimpleEventManager, events::SimpleEventManager,
executors::command::CommandConfigurator, executors::command::CommandConfigurator,
@ -31,6 +24,13 @@ use libafl::{
state::StdState, state::StdState,
Error, Error,
}; };
use libafl_bolts::{
current_nanos,
rands::StdRand,
shmem::{unix_shmem, ShMem, ShMemId, ShMemProvider},
tuples::tuple_list,
AsMutSlice, AsSlice,
};
#[allow(clippy::similar_names)] #[allow(clippy::similar_names)]
pub fn main() { pub fn main() {

View File

@ -15,3 +15,4 @@ opt-level = 3
[dependencies] [dependencies]
libafl = { path = "../../../libafl/" } libafl = { path = "../../../libafl/" }
libafl_bolts = { path = "../../../libafl_bolts/" }

View File

@ -1,17 +1,6 @@
use std::path::PathBuf; use std::path::PathBuf;
#[cfg(not(target_vendor = "apple"))]
use libafl::bolts::shmem::StdShMemProvider;
#[cfg(target_vendor = "apple")]
use libafl::bolts::shmem::UnixShMemProvider;
use libafl::{ use libafl::{
bolts::{
current_nanos,
rands::StdRand,
shmem::{ShMem, ShMemProvider},
tuples::tuple_list,
AsMutSlice,
},
corpus::{InMemoryCorpus, OnDiskCorpus}, corpus::{InMemoryCorpus, OnDiskCorpus},
events::SimpleEventManager, events::SimpleEventManager,
executors::forkserver::ForkserverExecutor, executors::forkserver::ForkserverExecutor,
@ -27,6 +16,17 @@ use libafl::{
stages::mutational::StdMutationalStage, stages::mutational::StdMutationalStage,
state::StdState, state::StdState,
}; };
#[cfg(not(target_vendor = "apple"))]
use libafl_bolts::shmem::StdShMemProvider;
#[cfg(target_vendor = "apple")]
use libafl_bolts::shmem::UnixShMemProvider;
use libafl_bolts::{
current_nanos,
rands::StdRand,
shmem::{ShMem, ShMemProvider},
tuples::tuple_list,
AsMutSlice,
};
#[allow(clippy::similar_names)] #[allow(clippy::similar_names)]
pub fn main() { pub fn main() {

View File

@ -19,3 +19,4 @@ debug = true
[dependencies] [dependencies]
libafl = { path = "../../../libafl/" } libafl = { path = "../../../libafl/" }
libafl_bolts = { path = "../../../libafl_bolts/" }

View File

@ -3,13 +3,6 @@ use std::ptr::write_volatile;
use std::{path::PathBuf, ptr::write}; use std::{path::PathBuf, ptr::write};
use libafl::{ use libafl::{
bolts::{
current_nanos,
rands::StdRand,
shmem::{unix_shmem, ShMem, ShMemProvider},
tuples::tuple_list,
AsMutSlice, AsSlice,
},
corpus::{InMemoryCorpus, OnDiskCorpus}, corpus::{InMemoryCorpus, OnDiskCorpus},
events::SimpleEventManager, events::SimpleEventManager,
executors::{ExitKind, InProcessForkExecutor}, executors::{ExitKind, InProcessForkExecutor},
@ -25,6 +18,13 @@ use libafl::{
stages::mutational::StdMutationalStage, stages::mutational::StdMutationalStage,
state::StdState, state::StdState,
}; };
use libafl_bolts::{
current_nanos,
rands::StdRand,
shmem::{unix_shmem, ShMem, ShMemProvider},
tuples::tuple_list,
AsMutSlice, AsSlice,
};
#[allow(clippy::similar_names)] #[allow(clippy::similar_names)]
pub fn main() { pub fn main() {

View File

@ -19,3 +19,4 @@ debug = true
[dependencies] [dependencies]
libafl = { path = "../../../libafl/" } libafl = { path = "../../../libafl/" }
libafl_bolts = { path = "../../../libafl_bolts/" }

View File

@ -3,7 +3,6 @@ use std::ptr::write_volatile;
use std::{path::PathBuf, ptr::write}; use std::{path::PathBuf, ptr::write};
use libafl::{ use libafl::{
bolts::{current_nanos, rands::StdRand, tuples::tuple_list, AsSlice},
corpus::{InMemoryCorpus, OnDiskCorpus}, corpus::{InMemoryCorpus, OnDiskCorpus},
events::SimpleEventManager, events::SimpleEventManager,
executors::{inprocess::InProcessExecutor, ExitKind}, executors::{inprocess::InProcessExecutor, ExitKind},
@ -19,6 +18,7 @@ use libafl::{
stages::mutational::StdMutationalStage, stages::mutational::StdMutationalStage,
state::StdState, state::StdState,
}; };
use libafl_bolts::{current_nanos, rands::StdRand, tuples::tuple_list, AsSlice};
/// Coverage map with explicit assignments due to the lack of instrumentation /// Coverage map with explicit assignments due to the lack of instrumentation
static mut SIGNALS: [u8; 16] = [0; 16]; static mut SIGNALS: [u8; 16] = [0; 16];

View File

@ -21,11 +21,12 @@ cc = { version = "1.0", features = ["parallel"] }
which = { version = "4.0.2" } which = { version = "4.0.2" }
[dependencies] [dependencies]
libafl = { path = "../../libafl/", features = ["default"] }
clap = { version = "4.0", features = ["derive"] } clap = { version = "4.0", features = ["derive"] }
nix = "0.26" nix = "0.26"
libafl_targets = { path = "../../libafl_targets/" } libafl = { path = "../../libafl/" }
libafl_bolts = { path = "../../libafl_bolts/" }
libafl_cc = { path = "../../libafl_cc/" } libafl_cc = { path = "../../libafl_cc/" }
libafl_targets = { path = "../../libafl_targets/" }
[lib] [lib]
name = "libforkserver_libafl_cc" name = "libforkserver_libafl_cc"

View File

@ -3,13 +3,6 @@ use std::path::PathBuf;
use clap::{self, Parser}; use clap::{self, Parser};
use libafl::{ use libafl::{
bolts::{
current_nanos,
rands::StdRand,
shmem::{ShMem, ShMemProvider, UnixShMemProvider},
tuples::{tuple_list, MatchName, Merge},
AsMutSlice, Truncate,
},
corpus::{Corpus, InMemoryCorpus, OnDiskCorpus}, corpus::{Corpus, InMemoryCorpus, OnDiskCorpus},
events::SimpleEventManager, events::SimpleEventManager,
executors::{ executors::{
@ -27,6 +20,13 @@ use libafl::{
stages::mutational::StdMutationalStage, stages::mutational::StdMutationalStage,
state::{HasCorpus, HasMetadata, StdState}, state::{HasCorpus, HasMetadata, StdState},
}; };
use libafl_bolts::{
current_nanos,
rands::StdRand,
shmem::{ShMem, ShMemProvider, UnixShMemProvider},
tuples::{tuple_list, MatchName, Merge},
AsMutSlice, Truncate,
};
use nix::sys::signal::Signal; use nix::sys::signal::Signal;
/// The commandline args this fuzzer accepts /// The commandline args this fuzzer accepts

View File

@ -17,5 +17,6 @@ opt-level = 3
[dependencies] [dependencies]
libafl = { path = "../../libafl/", features = ["std", "derive"] } libafl = { path = "../../libafl/", features = ["std", "derive"] }
libafl_bolts = { path = "../../libafl_bolts/" }
clap = { version = "4.0", features = ["derive"] } clap = { version = "4.0", features = ["derive"] }
nix = "0.26" nix = "0.26"

View File

@ -3,13 +3,6 @@ use std::path::PathBuf;
use clap::{self, Parser}; use clap::{self, Parser};
use libafl::{ use libafl::{
bolts::{
current_nanos,
rands::StdRand,
shmem::{ShMem, ShMemProvider, UnixShMemProvider},
tuples::{tuple_list, MatchName, Merge},
AsMutSlice, Truncate,
},
corpus::{Corpus, InMemoryCorpus, OnDiskCorpus}, corpus::{Corpus, InMemoryCorpus, OnDiskCorpus},
events::SimpleEventManager, events::SimpleEventManager,
executors::{ executors::{
@ -27,6 +20,13 @@ use libafl::{
stages::mutational::StdMutationalStage, stages::mutational::StdMutationalStage,
state::{HasCorpus, HasMetadata, StdState}, state::{HasCorpus, HasMetadata, StdState},
}; };
use libafl_bolts::{
current_nanos,
rands::StdRand,
shmem::{ShMem, ShMemProvider, UnixShMemProvider},
tuples::{tuple_list, MatchName, Merge},
AsMutSlice, Truncate,
};
use nix::sys::signal::Signal; use nix::sys::signal::Signal;
/// The commandline args this fuzzer accepts /// The commandline args this fuzzer accepts

View File

@ -25,11 +25,9 @@ flate2 = "1.0.22"
tar = "0.4.37" tar = "0.4.37"
reqwest = { version = "0.11.4", features = ["blocking"] } reqwest = { version = "0.11.4", features = ["blocking"] }
[dependencies] [dependencies]
libafl = { path = "../../libafl/", features = [ "std", "llmp_compression", "llmp_bind_public", "frida_cli" ] } #, "llmp_small_maps", "llmp_debug"]} libafl = { path = "../../libafl/", features = [ "std", "llmp_compression", "llmp_bind_public", "frida_cli" ] } #, "llmp_small_maps", "llmp_debug"]}
libafl_bolts = { path = "../../libafl_bolts/" }
capstone = "0.11.0" capstone = "0.11.0"
frida-gum = { version = "0.8.1", features = [ "auto-download", "event-sink", "invocation-listener"] } frida-gum = { version = "0.8.1", features = [ "auto-download", "event-sink", "invocation-listener"] }
libafl_frida = { path = "../../libafl_frida", features = ["cmplog"] } libafl_frida = { path = "../../libafl_frida", features = ["cmplog"] }

View File

@ -8,17 +8,8 @@ use std::{path::PathBuf, ptr::null};
use frida_gum::Gum; use frida_gum::Gum;
use libafl::{ use libafl::{
bolts::{
cli::{parse_args, FuzzerOptions},
current_nanos,
launcher::Launcher,
rands::StdRand,
shmem::{ShMemProvider, StdShMemProvider},
tuples::{tuple_list, Merge},
AsSlice,
},
corpus::{CachedOnDiskCorpus, Corpus, OnDiskCorpus}, corpus::{CachedOnDiskCorpus, Corpus, OnDiskCorpus},
events::{llmp::LlmpRestartingEventManager, EventConfig}, events::{launcher::Launcher, llmp::LlmpRestartingEventManager, EventConfig},
executors::{inprocess::InProcessExecutor, ExitKind, ShadowExecutor}, executors::{inprocess::InProcessExecutor, ExitKind, ShadowExecutor},
feedback_or, feedback_or_fast, feedback_or, feedback_or_fast,
feedbacks::{CrashFeedback, MaxMapFeedback, TimeFeedback, TimeoutFeedback}, feedbacks::{CrashFeedback, MaxMapFeedback, TimeFeedback, TimeoutFeedback},
@ -37,6 +28,14 @@ use libafl::{
}; };
#[cfg(unix)] #[cfg(unix)]
use libafl::{feedback_and_fast, feedbacks::ConstFeedback}; use libafl::{feedback_and_fast, feedbacks::ConstFeedback};
use libafl_bolts::{
cli::{parse_args, FuzzerOptions},
current_nanos,
rands::StdRand,
shmem::{ShMemProvider, StdShMemProvider},
tuples::{tuple_list, Merge},
AsSlice,
};
#[cfg(unix)] #[cfg(unix)]
use libafl_frida::asan::{ use libafl_frida::asan::{
asan_rt::AsanRuntime, asan_rt::AsanRuntime,

View File

@ -25,6 +25,7 @@ reqwest = { version = "0.11.4", features = ["blocking"] }
[dependencies] [dependencies]
libafl = { path = "../../libafl/", features = [ "std", "llmp_compression", "llmp_bind_public", "frida_cli" ] } #, "llmp_small_maps", "llmp_debug"]} libafl = { path = "../../libafl/", features = [ "std", "llmp_compression", "llmp_bind_public", "frida_cli" ] } #, "llmp_small_maps", "llmp_debug"]}
libafl_bolts = { path = "../../libafl_bolts/" }
frida-gum = { version = "0.8.1", features = [ "auto-download", "event-sink", "invocation-listener"] } frida-gum = { version = "0.8.1", features = [ "auto-download", "event-sink", "invocation-listener"] }
libafl_frida = { path = "../../libafl_frida", features = ["cmplog"] } libafl_frida = { path = "../../libafl_frida", features = ["cmplog"] }
libafl_targets = { path = "../../libafl_targets", features = ["sancov_cmplog"] } libafl_targets = { path = "../../libafl_targets", features = ["sancov_cmplog"] }

View File

@ -14,17 +14,8 @@ use std::path::PathBuf;
use frida_gum::Gum; use frida_gum::Gum;
use libafl::{ use libafl::{
bolts::{
cli::{parse_args, FuzzerOptions},
current_nanos,
launcher::Launcher,
rands::StdRand,
shmem::{ShMemProvider, StdShMemProvider},
tuples::{tuple_list, Merge},
AsSlice,
},
corpus::{CachedOnDiskCorpus, Corpus, OnDiskCorpus}, corpus::{CachedOnDiskCorpus, Corpus, OnDiskCorpus},
events::{llmp::LlmpRestartingEventManager, EventConfig}, events::{launcher::Launcher, llmp::LlmpRestartingEventManager, EventConfig},
executors::{inprocess::InProcessExecutor, ExitKind, ShadowExecutor}, executors::{inprocess::InProcessExecutor, ExitKind, ShadowExecutor},
feedback_and_fast, feedback_or, feedback_or_fast, feedback_and_fast, feedback_or, feedback_or_fast,
feedbacks::{ConstFeedback, CrashFeedback, MaxMapFeedback, TimeFeedback, TimeoutFeedback}, feedbacks::{ConstFeedback, CrashFeedback, MaxMapFeedback, TimeFeedback, TimeoutFeedback},
@ -41,6 +32,14 @@ use libafl::{
state::{HasCorpus, HasMetadata, StdState}, state::{HasCorpus, HasMetadata, StdState},
Error, Error,
}; };
use libafl_bolts::{
cli::{parse_args, FuzzerOptions},
current_nanos,
rands::StdRand,
shmem::{ShMemProvider, StdShMemProvider},
tuples::{tuple_list, Merge},
AsSlice,
};
#[cfg(unix)] #[cfg(unix)]
use libafl_frida::asan::asan_rt::AsanRuntime; use libafl_frida::asan::asan_rt::AsanRuntime;
#[cfg(unix)] #[cfg(unix)]

View File

@ -27,6 +27,7 @@ reqwest = { version = "0.11.4", features = ["blocking"] }
[dependencies] [dependencies]
libafl = { path = "../../libafl/", features = [ "std", "llmp_compression", "llmp_bind_public", "frida_cli" ] } #, "llmp_small_maps", "llmp_debug"]} libafl = { path = "../../libafl/", features = [ "std", "llmp_compression", "llmp_bind_public", "frida_cli" ] } #, "llmp_small_maps", "llmp_debug"]}
libafl_bolts = { path = "../../libafl_bolts/" }
frida-gum = { version = "0.8.1", features = [ "auto-download", "event-sink", "invocation-listener"] } frida-gum = { version = "0.8.1", features = [ "auto-download", "event-sink", "invocation-listener"] }
libafl_frida = { path = "../../libafl_frida", features = ["cmplog"] } libafl_frida = { path = "../../libafl_frida", features = ["cmplog"] }
libafl_targets = { path = "../../libafl_targets", features = ["sancov_cmplog"] } libafl_targets = { path = "../../libafl_targets", features = ["sancov_cmplog"] }

View File

@ -8,17 +8,8 @@ use std::path::PathBuf;
use frida_gum::Gum; use frida_gum::Gum;
use libafl::{ use libafl::{
bolts::{
cli::{parse_args, FuzzerOptions},
current_nanos,
launcher::Launcher,
rands::StdRand,
shmem::{ShMemProvider, StdShMemProvider},
tuples::{tuple_list, Merge},
AsSlice,
},
corpus::{CachedOnDiskCorpus, Corpus, OnDiskCorpus}, corpus::{CachedOnDiskCorpus, Corpus, OnDiskCorpus},
events::{llmp::LlmpRestartingEventManager, EventConfig}, events::{launcher::Launcher, llmp::LlmpRestartingEventManager, EventConfig},
executors::{inprocess::InProcessExecutor, ExitKind, ShadowExecutor}, executors::{inprocess::InProcessExecutor, ExitKind, ShadowExecutor},
feedback_or, feedback_or_fast, feedback_or, feedback_or_fast,
feedbacks::{CrashFeedback, MaxMapFeedback, TimeFeedback, TimeoutFeedback}, feedbacks::{CrashFeedback, MaxMapFeedback, TimeFeedback, TimeoutFeedback},
@ -37,6 +28,14 @@ use libafl::{
}; };
#[cfg(unix)] #[cfg(unix)]
use libafl::{feedback_and_fast, feedbacks::ConstFeedback}; use libafl::{feedback_and_fast, feedbacks::ConstFeedback};
use libafl_bolts::{
cli::{parse_args, FuzzerOptions},
current_nanos,
rands::StdRand,
shmem::{ShMemProvider, StdShMemProvider},
tuples::{tuple_list, Merge},
AsSlice,
};
#[cfg(unix)] #[cfg(unix)]
use libafl_frida::asan::{ use libafl_frida::asan::{
asan_rt::AsanRuntime, asan_rt::AsanRuntime,

View File

@ -21,6 +21,7 @@ which = { version = "4.0.2" }
[dependencies] [dependencies]
libafl = { path = "../../libafl/" } libafl = { path = "../../libafl/" }
libafl_bolts = { path = "../../libafl_bolts/" }
libafl_targets = { path = "../../libafl_targets/", features = ["sancov_pcguard_hitcounts", "sancov_cmplog", "libfuzzer"] } libafl_targets = { path = "../../libafl_targets/", features = ["sancov_pcguard_hitcounts", "sancov_cmplog", "libfuzzer"] }
# TODO Include it only when building cc # TODO Include it only when building cc
libafl_cc = { path = "../../libafl_cc/" } libafl_cc = { path = "../../libafl_cc/" }

View File

@ -16,14 +16,6 @@ use std::{
use clap::{Arg, Command}; use clap::{Arg, Command};
use libafl::{ use libafl::{
bolts::{
current_nanos, current_time,
os::dup2,
rands::StdRand,
shmem::{ShMemProvider, StdShMemProvider},
tuples::{tuple_list, Merge},
AsSlice,
},
corpus::{Corpus, InMemoryOnDiskCorpus, OnDiskCorpus}, corpus::{Corpus, InMemoryOnDiskCorpus, OnDiskCorpus},
events::SimpleRestartingEventManager, events::SimpleRestartingEventManager,
executors::{inprocess::InProcessExecutor, ExitKind, TimeoutExecutor}, executors::{inprocess::InProcessExecutor, ExitKind, TimeoutExecutor},
@ -47,6 +39,14 @@ use libafl::{
state::{HasCorpus, HasMetadata, StdState}, state::{HasCorpus, HasMetadata, StdState},
Error, Error,
}; };
use libafl_bolts::{
current_nanos, current_time,
os::dup2,
rands::StdRand,
shmem::{ShMemProvider, StdShMemProvider},
tuples::{tuple_list, Merge},
AsSlice,
};
#[cfg(any(target_os = "linux", target_vendor = "apple"))] #[cfg(any(target_os = "linux", target_vendor = "apple"))]
use libafl_targets::autotokens; use libafl_targets::autotokens;
use libafl_targets::{ use libafl_targets::{

View File

@ -13,6 +13,7 @@ debug = true
[dependencies] [dependencies]
libafl = { path = "../../libafl/" } libafl = { path = "../../libafl/" }
libafl_bolts = { path = "../../libafl_bolts/" }
libafl_qemu = { path = "../../libafl_qemu/", features = ["x86_64", "usermode"] } libafl_qemu = { path = "../../libafl_qemu/", features = ["x86_64", "usermode"] }
clap = { version = "4.0", features = ["default"] } clap = { version = "4.0", features = ["default"] }

View File

@ -13,14 +13,6 @@ use std::{
use clap::{Arg, Command}; use clap::{Arg, Command};
use libafl::{ use libafl::{
bolts::{
current_nanos, current_time,
os::dup2,
rands::StdRand,
shmem::{ShMemProvider, StdShMemProvider},
tuples::{tuple_list, Merge},
AsMutSlice, AsSlice,
},
corpus::{Corpus, InMemoryOnDiskCorpus, OnDiskCorpus}, corpus::{Corpus, InMemoryOnDiskCorpus, OnDiskCorpus},
events::SimpleRestartingEventManager, events::SimpleRestartingEventManager,
executors::{ExitKind, ShadowExecutor}, executors::{ExitKind, ShadowExecutor},
@ -44,6 +36,14 @@ use libafl::{
state::{HasCorpus, HasMetadata, StdState}, state::{HasCorpus, HasMetadata, StdState},
Error, Error,
}; };
use libafl_bolts::{
current_nanos, current_time,
os::dup2,
rands::StdRand,
shmem::{ShMemProvider, StdShMemProvider},
tuples::{tuple_list, Merge},
AsMutSlice, AsSlice,
};
use libafl_qemu::{ use libafl_qemu::{
cmplog::{CmpLogMap, CmpLogObserver, QemuCmpLogChildHelper}, cmplog::{CmpLogMap, CmpLogObserver, QemuCmpLogChildHelper},
edges::{QemuEdgeCoverageChildHelper, EDGES_MAP_PTR, EDGES_MAP_SIZE}, edges::{QemuEdgeCoverageChildHelper, EDGES_MAP_PTR, EDGES_MAP_SIZE},

View File

@ -16,5 +16,6 @@ which = { version = "4.0.2" }
[dependencies] [dependencies]
libafl = { path = "../../libafl/" } libafl = { path = "../../libafl/" }
libafl_bolts = { path = "../../libafl_bolts/" }
clap = { version = "4.0", features = ["default"] } clap = { version = "4.0", features = ["default"] }
nix = "0.26" nix = "0.26"

View File

@ -9,13 +9,6 @@ use std::{
use clap::{Arg, ArgAction, Command}; use clap::{Arg, ArgAction, Command};
use libafl::{ use libafl::{
bolts::{
current_nanos, current_time,
rands::StdRand,
shmem::{ShMem, ShMemProvider, UnixShMemProvider},
tuples::{tuple_list, Merge},
AsMutSlice,
},
corpus::{Corpus, InMemoryOnDiskCorpus, OnDiskCorpus}, corpus::{Corpus, InMemoryOnDiskCorpus, OnDiskCorpus},
events::SimpleEventManager, events::SimpleEventManager,
executors::forkserver::{ForkserverExecutor, TimeoutForkserverExecutor}, executors::forkserver::{ForkserverExecutor, TimeoutForkserverExecutor},
@ -41,6 +34,13 @@ use libafl::{
state::{HasCorpus, HasMetadata, StdState}, state::{HasCorpus, HasMetadata, StdState},
Error, Error,
}; };
use libafl_bolts::{
current_nanos, current_time,
rands::StdRand,
shmem::{ShMem, ShMemProvider, UnixShMemProvider},
tuples::{tuple_list, Merge},
AsMutSlice,
};
use nix::sys::signal::Signal; use nix::sys::signal::Signal;
pub fn main() { pub fn main() {

View File

@ -16,5 +16,6 @@ which = { version = "4.0.2" }
[dependencies] [dependencies]
libafl = { path = "../../libafl/" } libafl = { path = "../../libafl/" }
libafl_bolts = { path = "../../libafl_bolts/" }
clap = { version = "4.0", features = ["default"] } clap = { version = "4.0", features = ["default"] }
nix = "0.26" nix = "0.26"

View File

@ -9,13 +9,6 @@ use std::{
use clap::{Arg, ArgAction, Command}; use clap::{Arg, ArgAction, Command};
use libafl::{ use libafl::{
bolts::{
current_nanos, current_time,
rands::StdRand,
shmem::{ShMem, ShMemProvider, UnixShMemProvider},
tuples::{tuple_list, Merge},
AsMutSlice,
},
corpus::{Corpus, CorpusId, InMemoryOnDiskCorpus, OnDiskCorpus}, corpus::{Corpus, CorpusId, InMemoryOnDiskCorpus, OnDiskCorpus},
events::SimpleEventManager, events::SimpleEventManager,
executors::forkserver::{ForkserverExecutor, TimeoutForkserverExecutor}, executors::forkserver::{ForkserverExecutor, TimeoutForkserverExecutor},
@ -42,6 +35,13 @@ use libafl::{
state::{HasCorpus, HasMetadata, StdState}, state::{HasCorpus, HasMetadata, StdState},
Error, Error,
}; };
use libafl_bolts::{
current_nanos, current_time,
rands::StdRand,
shmem::{ShMem, ShMemProvider, UnixShMemProvider},
tuples::{tuple_list, Merge},
AsMutSlice,
};
use nix::sys::signal::Signal; use nix::sys::signal::Signal;
pub fn main() { pub fn main() {
@ -245,7 +245,7 @@ fn fuzz(
shmem.write_to_env("__AFL_SHM_ID").unwrap(); shmem.write_to_env("__AFL_SHM_ID").unwrap();
let shmem_buf = shmem.as_mut_slice(); let shmem_buf = shmem.as_mut_slice();
// To let know the AFL++ binary that we have a big map // To let know the AFL++ binary that we have a big map
std::env::set_var("AFL_MAP_SIZE", format!("{}", MAP_SIZE)); std::env::set_var("AFL_MAP_SIZE", format!("{MAP_SIZE}"));
// Create an observation channel using the hitcounts map of AFL++ // Create an observation channel using the hitcounts map of AFL++
let edges_observer = let edges_observer =

View File

@ -13,6 +13,7 @@ debug = true
[dependencies] [dependencies]
libafl = { path = "../../libafl/" } libafl = { path = "../../libafl/" }
libafl_bolts = { path = "../../libafl_bolts/" }
libafl_qemu = { path = "../../libafl_qemu/", features = ["x86_64", "usermode"] } libafl_qemu = { path = "../../libafl_qemu/", features = ["x86_64", "usermode"] }
clap = { version = "4.0", features = ["default"] } clap = { version = "4.0", features = ["default"] }

View File

@ -13,14 +13,6 @@ use std::{
use clap::{Arg, Command}; use clap::{Arg, Command};
use libafl::{ use libafl::{
bolts::{
current_nanos, current_time,
os::dup2,
rands::StdRand,
shmem::{ShMemProvider, StdShMemProvider},
tuples::{tuple_list, Merge},
AsSlice,
},
corpus::{Corpus, InMemoryOnDiskCorpus, OnDiskCorpus}, corpus::{Corpus, InMemoryOnDiskCorpus, OnDiskCorpus},
events::SimpleRestartingEventManager, events::SimpleRestartingEventManager,
executors::{ExitKind, ShadowExecutor, TimeoutExecutor}, executors::{ExitKind, ShadowExecutor, TimeoutExecutor},
@ -44,6 +36,14 @@ use libafl::{
state::{HasCorpus, HasMetadata, StdState}, state::{HasCorpus, HasMetadata, StdState},
Error, Error,
}; };
use libafl_bolts::{
current_nanos, current_time,
os::dup2,
rands::StdRand,
shmem::{ShMemProvider, StdShMemProvider},
tuples::{tuple_list, Merge},
AsSlice,
};
use libafl_qemu::{ use libafl_qemu::{
cmplog::{CmpLogObserver, QemuCmpLogHelper}, cmplog::{CmpLogObserver, QemuCmpLogHelper},
//asan::{init_with_asan, QemuAsanHelper}, //asan::{init_with_asan, QemuAsanHelper},

View File

@ -21,6 +21,7 @@ which = { version = "4.0.2" }
[dependencies] [dependencies]
libafl = { path = "../../libafl/" } libafl = { path = "../../libafl/" }
libafl_bolts = { path = "../../libafl_bolts/" }
libafl_targets = { path = "../../libafl_targets/", features = ["sancov_pcguard_hitcounts", "sancov_cmplog", "libfuzzer"] } libafl_targets = { path = "../../libafl_targets/", features = ["sancov_pcguard_hitcounts", "sancov_cmplog", "libfuzzer"] }
# TODO Include it only when building cc # TODO Include it only when building cc
libafl_cc = { path = "../../libafl_cc/" } libafl_cc = { path = "../../libafl_cc/" }

View File

@ -17,14 +17,6 @@ use std::{
use clap::{Arg, Command}; use clap::{Arg, Command};
use content_inspector::inspect; use content_inspector::inspect;
use libafl::{ use libafl::{
bolts::{
current_nanos, current_time,
os::dup2,
rands::StdRand,
shmem::{ShMemProvider, StdShMemProvider},
tuples::{tuple_list, Merge},
AsSlice,
},
corpus::{Corpus, InMemoryOnDiskCorpus, OnDiskCorpus}, corpus::{Corpus, InMemoryOnDiskCorpus, OnDiskCorpus},
events::SimpleRestartingEventManager, events::SimpleRestartingEventManager,
executors::{inprocess::InProcessExecutor, ExitKind, TimeoutExecutor}, executors::{inprocess::InProcessExecutor, ExitKind, TimeoutExecutor},
@ -53,6 +45,14 @@ use libafl::{
state::{HasCorpus, HasMetadata, StdState}, state::{HasCorpus, HasMetadata, StdState},
Error, Error,
}; };
use libafl_bolts::{
current_nanos, current_time,
os::dup2,
rands::StdRand,
shmem::{ShMemProvider, StdShMemProvider},
tuples::{tuple_list, Merge},
AsSlice,
};
#[cfg(any(target_os = "linux", target_vendor = "apple"))] #[cfg(any(target_os = "linux", target_vendor = "apple"))]
use libafl_targets::autotokens; use libafl_targets::autotokens;
use libafl_targets::{ use libafl_targets::{

View File

@ -20,6 +20,7 @@ which = { version = "4.0.2" }
[dependencies] [dependencies]
libafl = { path = "../../libafl/" } libafl = { path = "../../libafl/" }
libafl_bolts = { path = "../../libafl_bolts/" }
libafl_targets = { path = "../../libafl_targets/", features = ["pointer_maps", "sancov_cmplog", "libfuzzer"] } libafl_targets = { path = "../../libafl_targets/", features = ["pointer_maps", "sancov_cmplog", "libfuzzer"] }
clap = { version = "4.0", features = ["default"] } clap = { version = "4.0", features = ["default"] }

View File

@ -12,17 +12,8 @@ use std::{
use clap::{Arg, ArgAction, Command}; use clap::{Arg, ArgAction, Command};
use libafl::{ use libafl::{
bolts::{
core_affinity::Cores,
current_nanos,
launcher::Launcher,
rands::StdRand,
shmem::{ShMemProvider, StdShMemProvider},
tuples::{tuple_list, Merge},
AsSlice,
},
corpus::{Corpus, InMemoryCorpus, OnDiskCorpus}, corpus::{Corpus, InMemoryCorpus, OnDiskCorpus},
events::EventConfig, events::{launcher::Launcher, EventConfig},
executors::{inprocess::InProcessExecutor, ExitKind, TimeoutExecutor}, executors::{inprocess::InProcessExecutor, ExitKind, TimeoutExecutor},
feedback_or, feedback_or,
feedbacks::{CrashFeedback, MaxMapFeedback, TimeFeedback, TimeoutFeedback}, feedbacks::{CrashFeedback, MaxMapFeedback, TimeFeedback, TimeoutFeedback},
@ -40,6 +31,14 @@ use libafl::{
state::{HasCorpus, HasMetadata, StdState}, state::{HasCorpus, HasMetadata, StdState},
Error, Error,
}; };
use libafl_bolts::{
core_affinity::Cores,
current_nanos,
rands::StdRand,
shmem::{ShMemProvider, StdShMemProvider},
tuples::{tuple_list, Merge},
AsSlice,
};
use libafl_targets::{ use libafl_targets::{
CmpLogObserver, __sanitizer_cov_trace_cmp1, __sanitizer_cov_trace_cmp2, CmpLogObserver, __sanitizer_cov_trace_cmp1, __sanitizer_cov_trace_cmp2,
__sanitizer_cov_trace_cmp4, __sanitizer_cov_trace_cmp8, std_edges_map_observer, EDGES_MAP_PTR, __sanitizer_cov_trace_cmp4, __sanitizer_cov_trace_cmp8, std_edges_map_observer, EDGES_MAP_PTR,

View File

@ -16,6 +16,7 @@ debug = true
[dependencies] [dependencies]
libafl = { path = "../../libafl/" } libafl = { path = "../../libafl/" }
libafl_bolts = { path = "../../libafl_bolts/" }
libafl_targets = { path = "../../libafl_targets/", features = ["sancov_pcguard_edges", "sancov_value_profile", "libfuzzer"] } libafl_targets = { path = "../../libafl_targets/", features = ["sancov_pcguard_edges", "sancov_value_profile", "libfuzzer"] }
# TODO Include it only when building cc # TODO Include it only when building cc
libafl_cc = { path = "../../libafl_cc/" } libafl_cc = { path = "../../libafl_cc/" }

View File

@ -7,12 +7,6 @@ static GLOBAL: MiMalloc = MiMalloc;
use std::{env, path::PathBuf}; use std::{env, path::PathBuf};
use libafl::{ use libafl::{
bolts::{
current_nanos,
rands::StdRand,
tuples::{tuple_list, Merge},
AsSlice,
},
corpus::{Corpus, InMemoryCorpus, OnDiskCorpus}, corpus::{Corpus, InMemoryCorpus, OnDiskCorpus},
events::{setup_restarting_mgr_std, EventConfig}, events::{setup_restarting_mgr_std, EventConfig},
executors::{inprocess::InProcessExecutor, ExitKind}, executors::{inprocess::InProcessExecutor, ExitKind},
@ -31,6 +25,12 @@ use libafl::{
state::{HasCorpus, HasMetadata, StdState}, state::{HasCorpus, HasMetadata, StdState},
Error, Error,
}; };
use libafl_bolts::{
current_nanos,
rands::StdRand,
tuples::{tuple_list, Merge},
AsSlice,
};
use libafl_targets::{ use libafl_targets::{
libfuzzer_initialize, libfuzzer_test_one_input, std_edges_map_observer, CMP_MAP, libfuzzer_initialize, libfuzzer_test_one_input, std_edges_map_observer, CMP_MAP,
}; };

View File

@ -23,6 +23,7 @@ which = { version = "4.0.2" }
[dependencies] [dependencies]
libafl = { path = "../../libafl/", features = ["default"] } libafl = { path = "../../libafl/", features = ["default"] }
# libafl = { path = "../../libafl/", features = ["default"] } # libafl = { path = "../../libafl/", features = ["default"] }
libafl_bolts = { path = "../../libafl_bolts/" }
libafl_targets = { path = "../../libafl_targets/", features = ["sancov_pcguard_hitcounts", "libfuzzer", "sancov_cmplog"] } libafl_targets = { path = "../../libafl_targets/", features = ["sancov_pcguard_hitcounts", "libfuzzer", "sancov_cmplog"] }
# TODO Include it only when building cc # TODO Include it only when building cc
libafl_cc = { path = "../../libafl_cc/" } libafl_cc = { path = "../../libafl_cc/" }

View File

@ -10,12 +10,6 @@ use std::ptr;
use std::{env, path::PathBuf}; use std::{env, path::PathBuf};
use libafl::{ use libafl::{
bolts::{
current_nanos,
rands::StdRand,
tuples::{tuple_list, Merge},
AsSlice,
},
corpus::{Corpus, InMemoryCorpus, OnDiskCorpus}, corpus::{Corpus, InMemoryCorpus, OnDiskCorpus},
events::{setup_restarting_mgr_std, EventConfig, EventRestarter}, events::{setup_restarting_mgr_std, EventConfig, EventRestarter},
executors::{inprocess::InProcessExecutor, ExitKind, TimeoutExecutor}, executors::{inprocess::InProcessExecutor, ExitKind, TimeoutExecutor},
@ -36,6 +30,12 @@ use libafl::{
state::{HasCorpus, HasMetadata, StdState}, state::{HasCorpus, HasMetadata, StdState},
Error, Error,
}; };
use libafl_bolts::{
current_nanos,
rands::StdRand,
tuples::{tuple_list, Merge},
AsSlice,
};
use libafl_targets::{libfuzzer_initialize, libfuzzer_test_one_input, EDGES_MAP, MAX_EDGES_NUM}; use libafl_targets::{libfuzzer_initialize, libfuzzer_test_one_input, EDGES_MAP, MAX_EDGES_NUM};
/// The main fn, `no_mangle` as it is a C main /// The main fn, `no_mangle` as it is a C main

View File

@ -20,6 +20,7 @@ which = { version = "4.0.2" }
[dependencies] [dependencies]
libafl = { path = "../../libafl/", features = ["std", "derive", "llmp_compression", "introspection"] } libafl = { path = "../../libafl/", features = ["std", "derive", "llmp_compression", "introspection"] }
libafl_bolts = { path = "../../libafl_bolts/", features = ["std", "derive", "llmp_compression"] }
libafl_targets = { path = "../../libafl_targets/", features = ["sancov_pcguard_hitcounts", "libfuzzer"] } libafl_targets = { path = "../../libafl_targets/", features = ["sancov_pcguard_hitcounts", "libfuzzer"] }
# TODO Include it only when building cc # TODO Include it only when building cc
libafl_cc = { path = "../../libafl_cc/" } libafl_cc = { path = "../../libafl_cc/" }

View File

@ -11,17 +11,8 @@ use std::{env, net::SocketAddr, path::PathBuf};
use clap::Parser; use clap::Parser;
use libafl::{ use libafl::{
bolts::{
core_affinity::Cores,
current_nanos,
launcher::Launcher,
rands::StdRand,
shmem::{ShMemProvider, StdShMemProvider},
tuples::{tuple_list, Merge},
AsSlice,
},
corpus::{Corpus, InMemoryCorpus, OnDiskCorpus}, corpus::{Corpus, InMemoryCorpus, OnDiskCorpus},
events::EventConfig, events::{EventConfig, Launcher},
executors::{inprocess::InProcessExecutor, ExitKind, TimeoutExecutor}, executors::{inprocess::InProcessExecutor, ExitKind, TimeoutExecutor},
feedback_or, feedback_or_fast, feedback_or, feedback_or_fast,
feedbacks::{CrashFeedback, MaxMapFeedback, TimeFeedback, TimeoutFeedback}, feedbacks::{CrashFeedback, MaxMapFeedback, TimeFeedback, TimeoutFeedback},
@ -38,6 +29,14 @@ use libafl::{
state::{HasCorpus, HasMetadata, StdState}, state::{HasCorpus, HasMetadata, StdState},
Error, Error,
}; };
use libafl_bolts::{
core_affinity::Cores,
current_nanos,
rands::StdRand,
shmem::{ShMemProvider, StdShMemProvider},
tuples::{tuple_list, Merge},
AsSlice,
};
use libafl_targets::{ use libafl_targets::{
libfuzzer_initialize, libfuzzer_test_one_input, ACCOUNTING_MEMOP_MAP, EDGES_MAP, MAX_EDGES_NUM, libfuzzer_initialize, libfuzzer_test_one_input, ACCOUNTING_MEMOP_MAP, EDGES_MAP, MAX_EDGES_NUM,
}; };

View File

@ -20,6 +20,7 @@ which = { version = "4.0.2" }
[dependencies] [dependencies]
libafl = { path = "../../libafl/", features = ["std", "derive", "rand_trait", "fork", "prelude", "gzip", "regex"] } libafl = { path = "../../libafl/", features = ["std", "derive", "rand_trait", "fork", "prelude", "gzip", "regex"] }
libafl_bolts = { path = "../../libafl_bolts/" }
libafl_targets = { path = "../../libafl_targets/", features = ["sancov_pcguard_hitcounts", "libfuzzer"] } libafl_targets = { path = "../../libafl_targets/", features = ["sancov_pcguard_hitcounts", "libfuzzer"] }
# TODO Include it only when building cc # TODO Include it only when building cc
libafl_cc = { path = "../../libafl_cc/" } libafl_cc = { path = "../../libafl_cc/" }

View File

@ -11,18 +11,8 @@ use std::{env, net::SocketAddr, path::PathBuf};
use clap::{self, Parser}; use clap::{self, Parser};
use libafl::{ use libafl::{
bolts::{
core_affinity::{CoreId, Cores},
current_nanos,
launcher::Launcher,
llmp::{LlmpReceiver, LlmpSender},
rands::StdRand,
shmem::{ShMemProvider, StdShMemProvider},
tuples::{tuple_list, Merge},
AsSlice, ClientId,
},
corpus::{Corpus, InMemoryCorpus, OnDiskCorpus}, corpus::{Corpus, InMemoryCorpus, OnDiskCorpus},
events::{CentralizedEventManager, EventConfig}, events::{launcher::Launcher, CentralizedEventManager, EventConfig},
executors::{inprocess::InProcessExecutor, ExitKind, TimeoutExecutor}, executors::{inprocess::InProcessExecutor, ExitKind, TimeoutExecutor},
feedback_or, feedback_or_fast, feedback_or, feedback_or_fast,
feedbacks::{CrashFeedback, MaxMapFeedback, TimeFeedback, TimeoutFeedback}, feedbacks::{CrashFeedback, MaxMapFeedback, TimeFeedback, TimeoutFeedback},
@ -39,6 +29,15 @@ use libafl::{
state::{HasCorpus, HasMetadata, StdState}, state::{HasCorpus, HasMetadata, StdState},
Error, Error,
}; };
use libafl_bolts::{
core_affinity::{CoreId, Cores},
current_nanos,
llmp::{LlmpReceiver, LlmpSender},
rands::StdRand,
shmem::{ShMemProvider, StdShMemProvider},
tuples::{tuple_list, Merge},
AsSlice, ClientId,
};
use libafl_targets::{libfuzzer_initialize, libfuzzer_test_one_input, std_edges_map_observer}; use libafl_targets::{libfuzzer_initialize, libfuzzer_test_one_input, std_edges_map_observer};
/// Parse a millis string to a [`Duration`]. Used for arg parsing. /// Parse a millis string to a [`Duration`]. Used for arg parsing.

View File

@ -23,6 +23,7 @@ which = { version = "4.0.2" }
[dependencies] [dependencies]
libafl = { path = "../../libafl/", features = ["default", "cmin"] } libafl = { path = "../../libafl/", features = ["default", "cmin"] }
# libafl = { path = "../../libafl/", features = ["default"] } # libafl = { path = "../../libafl/", features = ["default"] }
libafl_bolts = { path = "../../libafl_bolts/" }
libafl_targets = { path = "../../libafl_targets/", features = ["sancov_pcguard_hitcounts", "libfuzzer", "sancov_cmplog"] } libafl_targets = { path = "../../libafl_targets/", features = ["sancov_pcguard_hitcounts", "libfuzzer", "sancov_cmplog"] }
# TODO Include it only when building cc # TODO Include it only when building cc
libafl_cc = { path = "../../libafl_cc/" } libafl_cc = { path = "../../libafl_cc/" }

View File

@ -10,12 +10,6 @@ use std::ptr;
use std::{env, path::PathBuf}; use std::{env, path::PathBuf};
use libafl::{ use libafl::{
bolts::{
current_nanos,
rands::StdRand,
tuples::{tuple_list, Merge},
AsSlice,
},
corpus::{ corpus::{
minimizer::{CorpusMinimizer, StdCorpusMinimizer}, minimizer::{CorpusMinimizer, StdCorpusMinimizer},
Corpus, InMemoryCorpus, OnDiskCorpus, Corpus, InMemoryCorpus, OnDiskCorpus,
@ -39,6 +33,12 @@ use libafl::{
state::{HasCorpus, HasMetadata, StdState}, state::{HasCorpus, HasMetadata, StdState},
Error, Error,
}; };
use libafl_bolts::{
current_nanos,
rands::StdRand,
tuples::{tuple_list, Merge},
AsSlice,
};
use libafl_targets::{libfuzzer_initialize, libfuzzer_test_one_input, std_edges_map_observer}; use libafl_targets::{libfuzzer_initialize, libfuzzer_test_one_input, std_edges_map_observer};
/// The main fn, `no_mangle` as it is a C main /// The main fn, `no_mangle` as it is a C main

View File

@ -20,6 +20,7 @@ which = { version = "4.0.2" }
[dependencies] [dependencies]
libafl = { path = "../../libafl/", features = ["std", "derive", "llmp_compression", "introspection"] } libafl = { path = "../../libafl/", features = ["std", "derive", "llmp_compression", "introspection"] }
libafl_bolts = { path = "../../libafl_bolts/" }
libafl_targets = { path = "../../libafl_targets/", features = ["libfuzzer"] } libafl_targets = { path = "../../libafl_targets/", features = ["libfuzzer"] }
# TODO Include it only when building cc # TODO Include it only when building cc
libafl_cc = { path = "../../libafl_cc/" } libafl_cc = { path = "../../libafl_cc/" }

View File

@ -11,17 +11,8 @@ use std::{env, net::SocketAddr, path::PathBuf};
use clap::{self, Parser}; use clap::{self, Parser};
use libafl::{ use libafl::{
bolts::{
core_affinity::Cores,
current_nanos,
launcher::Launcher,
rands::StdRand,
shmem::{ShMemProvider, StdShMemProvider},
tuples::{tuple_list, Merge},
AsSlice,
},
corpus::{Corpus, InMemoryCorpus, OnDiskCorpus}, corpus::{Corpus, InMemoryCorpus, OnDiskCorpus},
events::EventConfig, events::{launcher::Launcher, EventConfig},
executors::{inprocess::InProcessExecutor, ExitKind, TimeoutExecutor}, executors::{inprocess::InProcessExecutor, ExitKind, TimeoutExecutor},
feedback_or, feedback_or_fast, feedback_or, feedback_or_fast,
feedbacks::{CrashFeedback, MaxMapFeedback, TimeFeedback, TimeoutFeedback}, feedbacks::{CrashFeedback, MaxMapFeedback, TimeFeedback, TimeoutFeedback},
@ -38,6 +29,14 @@ use libafl::{
state::{HasCorpus, HasMetadata, StdState}, state::{HasCorpus, HasMetadata, StdState},
Error, Error,
}; };
use libafl_bolts::{
core_affinity::Cores,
current_nanos,
rands::StdRand,
shmem::{ShMemProvider, StdShMemProvider},
tuples::{tuple_list, Merge},
AsSlice,
};
use libafl_targets::{libfuzzer_initialize, libfuzzer_test_one_input, std_edges_map_observer}; use libafl_targets::{libfuzzer_initialize, libfuzzer_test_one_input, std_edges_map_observer};
fn timeout_from_millis_str(time: &str) -> Result<Duration, Error> { fn timeout_from_millis_str(time: &str) -> Result<Duration, Error> {

View File

@ -20,6 +20,7 @@ which = { version = "4.0.2" }
[dependencies] [dependencies]
libafl = { path = "../../libafl/", features = ["std", "derive", "llmp_compression", "introspection"] } libafl = { path = "../../libafl/", features = ["std", "derive", "llmp_compression", "introspection"] }
libafl_bolts = { path = "../../libafl_bolts/" }
libafl_targets = { path = "../../libafl_targets/", features = ["sancov_pcguard_hitcounts", "libfuzzer"] } libafl_targets = { path = "../../libafl_targets/", features = ["sancov_pcguard_hitcounts", "libfuzzer"] }
# TODO Include it only when building cc # TODO Include it only when building cc
libafl_cc = { path = "../../libafl_cc/" } libafl_cc = { path = "../../libafl_cc/" }

View File

@ -11,17 +11,8 @@ use std::{env, net::SocketAddr, path::PathBuf};
use clap::{self, Parser}; use clap::{self, Parser};
use libafl::{ use libafl::{
bolts::{
core_affinity::Cores,
current_nanos,
launcher::Launcher,
rands::StdRand,
shmem::{ShMemProvider, StdShMemProvider},
tuples::{tuple_list, Merge},
AsSlice,
},
corpus::{Corpus, InMemoryCorpus, OnDiskCorpus}, corpus::{Corpus, InMemoryCorpus, OnDiskCorpus},
events::EventConfig, events::{launcher::Launcher, EventConfig},
executors::{inprocess::InProcessExecutor, ExitKind, TimeoutExecutor}, executors::{inprocess::InProcessExecutor, ExitKind, TimeoutExecutor},
feedback_or, feedback_or_fast, feedback_or, feedback_or_fast,
feedbacks::{CrashFeedback, MaxMapFeedback, TimeFeedback, TimeoutFeedback}, feedbacks::{CrashFeedback, MaxMapFeedback, TimeFeedback, TimeoutFeedback},
@ -38,6 +29,14 @@ use libafl::{
state::{HasCorpus, HasMetadata, StdState}, state::{HasCorpus, HasMetadata, StdState},
Error, Error,
}; };
use libafl_bolts::{
core_affinity::Cores,
current_nanos,
rands::StdRand,
shmem::{ShMemProvider, StdShMemProvider},
tuples::{tuple_list, Merge},
AsSlice,
};
use libafl_targets::{libfuzzer_initialize, libfuzzer_test_one_input, std_edges_map_observer}; use libafl_targets::{libfuzzer_initialize, libfuzzer_test_one_input, std_edges_map_observer};
/// Parse a millis string to a [`Duration`]. Used for arg parsing. /// Parse a millis string to a [`Duration`]. Used for arg parsing.

View File

@ -20,6 +20,7 @@ which = { version = "4.0.2" }
[dependencies] [dependencies]
libafl = { path = "../../libafl/" } libafl = { path = "../../libafl/" }
libafl_bolts = { path = "../../libafl_bolts/" }
libafl_targets = { path = "../../libafl_targets/", features = ["sancov_pcguard_hitcounts", "libfuzzer"] } libafl_targets = { path = "../../libafl_targets/", features = ["sancov_pcguard_hitcounts", "libfuzzer"] }
# TODO Include it only when building cc # TODO Include it only when building cc
libafl_cc = { path = "../../libafl_cc/" } libafl_cc = { path = "../../libafl_cc/" }

View File

@ -11,17 +11,8 @@ use std::{env, net::SocketAddr, path::PathBuf};
use clap::{self, Parser}; use clap::{self, Parser};
use libafl::{ use libafl::{
bolts::{
core_affinity::Cores,
current_nanos,
launcher::Launcher,
rands::StdRand,
shmem::{ShMemProvider, StdShMemProvider},
tuples::{tuple_list, Merge},
AsSlice,
},
corpus::{Corpus, InMemoryOnDiskCorpus, OnDiskCorpus}, corpus::{Corpus, InMemoryOnDiskCorpus, OnDiskCorpus},
events::{EventConfig, EventRestarter, LlmpRestartingEventManager}, events::{launcher::Launcher, EventConfig, EventRestarter, LlmpRestartingEventManager},
executors::{inprocess::InProcessExecutor, ExitKind, TimeoutExecutor}, executors::{inprocess::InProcessExecutor, ExitKind, TimeoutExecutor},
feedback_or, feedback_or_fast, feedback_or, feedback_or_fast,
feedbacks::{CrashFeedback, MaxMapFeedback, TimeFeedback, TimeoutFeedback}, feedbacks::{CrashFeedback, MaxMapFeedback, TimeFeedback, TimeoutFeedback},
@ -38,6 +29,14 @@ use libafl::{
state::{HasCorpus, HasMetadata, StdState}, state::{HasCorpus, HasMetadata, StdState},
Error, Error,
}; };
use libafl_bolts::{
core_affinity::Cores,
current_nanos,
rands::StdRand,
shmem::{ShMemProvider, StdShMemProvider},
tuples::{tuple_list, Merge},
AsSlice,
};
use libafl_targets::{libfuzzer_initialize, libfuzzer_test_one_input, std_edges_map_observer}; use libafl_targets::{libfuzzer_initialize, libfuzzer_test_one_input, std_edges_map_observer};
/// Parse a millis string to a [`Duration`]. Used for arg parsing. /// Parse a millis string to a [`Duration`]. Used for arg parsing.

View File

@ -23,6 +23,7 @@ which = { version = "4.0.2" }
[dependencies] [dependencies]
libafl = { path = "../../libafl/", features = ["default", "tcp_manager"] } libafl = { path = "../../libafl/", features = ["default", "tcp_manager"] }
# libafl = { path = "../../libafl/", features = ["default"] } # libafl = { path = "../../libafl/", features = ["default"] }
libafl_bolts = { path = "../../libafl_bolts/" }
libafl_targets = { path = "../../libafl_targets/", features = ["sancov_pcguard_hitcounts", "libfuzzer", "sancov_cmplog"] } libafl_targets = { path = "../../libafl_targets/", features = ["sancov_pcguard_hitcounts", "libfuzzer", "sancov_cmplog"] }
# TODO Include it only when building cc # TODO Include it only when building cc
libafl_cc = { path = "../../libafl_cc/" } libafl_cc = { path = "../../libafl_cc/" }

View File

@ -10,12 +10,6 @@ use std::ptr;
use std::{env, path::PathBuf}; use std::{env, path::PathBuf};
use libafl::{ use libafl::{
bolts::{
current_nanos,
rands::StdRand,
tuples::{tuple_list, Merge},
AsSlice,
},
corpus::{Corpus, InMemoryCorpus, OnDiskCorpus}, corpus::{Corpus, InMemoryCorpus, OnDiskCorpus},
events::{tcp::setup_restarting_mgr_tcp, EventConfig, EventRestarter}, events::{tcp::setup_restarting_mgr_tcp, EventConfig, EventRestarter},
executors::{inprocess::InProcessExecutor, ExitKind, TimeoutExecutor}, executors::{inprocess::InProcessExecutor, ExitKind, TimeoutExecutor},
@ -36,6 +30,12 @@ use libafl::{
state::{HasCorpus, HasMetadata, StdState}, state::{HasCorpus, HasMetadata, StdState},
Error, Error,
}; };
use libafl_bolts::{
current_nanos,
rands::StdRand,
tuples::{tuple_list, Merge},
AsSlice,
};
use libafl_targets::{libfuzzer_initialize, libfuzzer_test_one_input, EDGES_MAP, MAX_EDGES_NUM}; use libafl_targets::{libfuzzer_initialize, libfuzzer_test_one_input, EDGES_MAP, MAX_EDGES_NUM};
/// The main fn, `no_mangle` as it is a C main /// The main fn, `no_mangle` as it is a C main

View File

@ -20,6 +20,7 @@ which = { version = "4.0.2" }
[dependencies] [dependencies]
libafl = { path = "../../libafl/" } libafl = { path = "../../libafl/" }
libafl_bolts = { path = "../../libafl_bolts/" }
libafl_targets = { path = "../../libafl_targets/", features = ["sancov_pcguard_hitcounts", "libfuzzer"] } libafl_targets = { path = "../../libafl_targets/", features = ["sancov_pcguard_hitcounts", "libfuzzer"] }
# TODO Include it only when building cc # TODO Include it only when building cc
libafl_cc = { path = "../../libafl_cc/" } libafl_cc = { path = "../../libafl_cc/" }

View File

@ -7,7 +7,6 @@ static GLOBAL: MiMalloc = MiMalloc;
use std::{env, path::PathBuf}; use std::{env, path::PathBuf};
use libafl::{ use libafl::{
bolts::{current_nanos, rands::StdRand, tuples::tuple_list, AsSlice},
corpus::{Corpus, InMemoryCorpus, OnDiskCorpus}, corpus::{Corpus, InMemoryCorpus, OnDiskCorpus},
events::{setup_restarting_mgr_std, EventConfig, EventRestarter}, events::{setup_restarting_mgr_std, EventConfig, EventRestarter},
executors::{inprocess::InProcessExecutor, ExitKind}, executors::{inprocess::InProcessExecutor, ExitKind},
@ -22,6 +21,7 @@ use libafl::{
state::{HasCorpus, StdState}, state::{HasCorpus, StdState},
Error, Error,
}; };
use libafl_bolts::{current_nanos, rands::StdRand, tuples::tuple_list, AsSlice};
use libafl_targets::{libfuzzer_initialize, libfuzzer_test_one_input, std_edges_map_observer}; use libafl_targets::{libfuzzer_initialize, libfuzzer_test_one_input, std_edges_map_observer};
const TARGET_SIZE: usize = 4; const TARGET_SIZE: usize = 4;

View File

@ -17,6 +17,7 @@ debug = true
[dependencies] [dependencies]
libafl = { path = "../../libafl/" } libafl = { path = "../../libafl/" }
libafl_bolts = { path = "../../libafl_bolts/" }
libafl_targets = { path = "../../libafl_targets/", features = ["sancov_pcguard_edges", "sancov_cmplog", "libfuzzer"] } libafl_targets = { path = "../../libafl_targets/", features = ["sancov_pcguard_edges", "sancov_cmplog", "libfuzzer"] }
mimalloc = { version = "*", default-features = false } mimalloc = { version = "*", default-features = false }

View File

@ -7,7 +7,6 @@ static GLOBAL: MiMalloc = MiMalloc;
use std::{env, path::PathBuf}; use std::{env, path::PathBuf};
use libafl::{ use libafl::{
bolts::{current_nanos, rands::StdRand, tuples::tuple_list, AsSlice},
corpus::{Corpus, InMemoryCorpus, OnDiskCorpus}, corpus::{Corpus, InMemoryCorpus, OnDiskCorpus},
events::{setup_restarting_mgr_std, EventConfig}, events::{setup_restarting_mgr_std, EventConfig},
executors::{inprocess::InProcessExecutor, ExitKind, ShadowExecutor}, executors::{inprocess::InProcessExecutor, ExitKind, ShadowExecutor},
@ -26,6 +25,7 @@ use libafl::{
state::{HasCorpus, StdState}, state::{HasCorpus, StdState},
Error, Error,
}; };
use libafl_bolts::{current_nanos, rands::StdRand, tuples::tuple_list, AsSlice};
use libafl_targets::{ use libafl_targets::{
libfuzzer_initialize, libfuzzer_test_one_input, std_edges_map_observer, CmpLogObserver, libfuzzer_initialize, libfuzzer_test_one_input, std_edges_map_observer, CmpLogObserver,
}; };

View File

@ -17,6 +17,7 @@ debug = true
[dependencies] [dependencies]
libafl = { path = "../../../libafl/", features = ["concolic_mutation"] } libafl = { path = "../../../libafl/", features = ["concolic_mutation"] }
libafl_bolts = { path = "../../../libafl_bolts/" }
libafl_targets = { path = "../../../libafl_targets/", features = ["sancov_pcguard_edges", "sancov_cmplog", "libfuzzer"] } libafl_targets = { path = "../../../libafl_targets/", features = ["sancov_pcguard_edges", "sancov_cmplog", "libfuzzer"] }
clap = { version = "4.0", features = ["derive"]} clap = { version = "4.0", features = ["derive"]}
mimalloc = { version = "*", default-features = false } mimalloc = { version = "*", default-features = false }

View File

@ -13,13 +13,6 @@ use std::{
use clap::{self, Parser}; use clap::{self, Parser};
use libafl::{ use libafl::{
bolts::{
current_nanos,
rands::StdRand,
shmem::{ShMem, ShMemProvider, StdShMemProvider},
tuples::{tuple_list, Named},
AsMutSlice, AsSlice,
},
corpus::{Corpus, InMemoryCorpus, OnDiskCorpus}, corpus::{Corpus, InMemoryCorpus, OnDiskCorpus},
events::{setup_restarting_mgr_std, EventConfig}, events::{setup_restarting_mgr_std, EventConfig},
executors::{ executors::{
@ -49,6 +42,13 @@ use libafl::{
state::{HasCorpus, StdState}, state::{HasCorpus, StdState},
Error, Error,
}; };
use libafl_bolts::{
current_nanos,
rands::StdRand,
shmem::{ShMem, ShMemProvider, StdShMemProvider},
tuples::tuple_list,
AsMutSlice, AsSlice, Named,
};
use libafl_targets::{ use libafl_targets::{
libfuzzer_initialize, libfuzzer_test_one_input, std_edges_map_observer, CmpLogObserver, libfuzzer_initialize, libfuzzer_test_one_input, std_edges_map_observer, CmpLogObserver,
}; };

View File

@ -18,6 +18,7 @@ debug = true
[dependencies] [dependencies]
libafl = { path = "../../libafl/" } libafl = { path = "../../libafl/" }
libafl_bolts = { path = "../../libafl_bolts/" }
libafl_targets = { path = "../../libafl_targets/", features = ["sancov_pcguard_edges", "sancov_cmplog", "libfuzzer"] } libafl_targets = { path = "../../libafl_targets/", features = ["sancov_pcguard_edges", "sancov_cmplog", "libfuzzer"] }
libafl_sugar = { path = "../../libafl_sugar/" } libafl_sugar = { path = "../../libafl_sugar/" }
mimalloc = { version = "*", default-features = false } mimalloc = { version = "*", default-features = false }

View File

@ -6,7 +6,7 @@ static GLOBAL: MiMalloc = MiMalloc;
use std::{env, path::PathBuf}; use std::{env, path::PathBuf};
use libafl::bolts::core_affinity::Cores; use libafl_bolts::core_affinity::Cores;
use libafl_sugar::InMemoryBytesCoverageSugar; use libafl_sugar::InMemoryBytesCoverageSugar;
use libafl_targets::{libfuzzer_initialize, libfuzzer_test_one_input}; use libafl_targets::{libfuzzer_initialize, libfuzzer_test_one_input};

View File

@ -15,6 +15,7 @@ debug = true
[dependencies] [dependencies]
libafl = { path = "../../libafl/" } libafl = { path = "../../libafl/" }
libafl_bolts = { path = "../../libafl_bolts/" }
libafl_targets = { path = "../../libafl_targets/", features = ["libfuzzer", "sancov_pcguard_edges"] } libafl_targets = { path = "../../libafl_targets/", features = ["libfuzzer", "sancov_pcguard_edges"] }
libafl_cc = { path = "../../libafl_cc/" } libafl_cc = { path = "../../libafl_cc/" }

View File

@ -2,12 +2,6 @@ use core::time::Duration;
use std::{env, path::PathBuf}; use std::{env, path::PathBuf};
use libafl::{ use libafl::{
bolts::{
current_nanos,
rands::StdRand,
tuples::{tuple_list, Merge},
AsSlice,
},
corpus::{Corpus, InMemoryCorpus, OnDiskCorpus}, corpus::{Corpus, InMemoryCorpus, OnDiskCorpus},
events::{setup_restarting_mgr_std, EventConfig, EventRestarter}, events::{setup_restarting_mgr_std, EventConfig, EventRestarter},
executors::{inprocess::InProcessExecutor, ExitKind, TimeoutExecutor}, executors::{inprocess::InProcessExecutor, ExitKind, TimeoutExecutor},
@ -25,6 +19,12 @@ use libafl::{
state::{HasCorpus, StdState}, state::{HasCorpus, StdState},
Error, Error,
}; };
use libafl_bolts::{
current_nanos,
rands::StdRand,
tuples::{tuple_list, Merge},
AsSlice,
};
use libafl_targets::{libfuzzer_initialize, libfuzzer_test_one_input, std_edges_map_observer}; use libafl_targets::{libfuzzer_initialize, libfuzzer_test_one_input, std_edges_map_observer};
#[no_mangle] #[no_mangle]
pub extern "C" fn libafl_main() { pub extern "C" fn libafl_main() {

View File

@ -21,6 +21,7 @@ debug = true
[dependencies] [dependencies]
libafl = { path = "../../libafl/", features = ["default", "nautilus"] } libafl = { path = "../../libafl/", features = ["default", "nautilus"] }
libafl_bolts = { path = "../../libafl_bolts/" }
libafl_targets = { path = "../../libafl_targets/", features = ["sancov_pcguard_hitcounts", "libfuzzer"] } libafl_targets = { path = "../../libafl_targets/", features = ["sancov_pcguard_hitcounts", "libfuzzer"] }
# TODO Include it only when building cc # TODO Include it only when building cc
libafl_cc = { path = "../../libafl_cc/" } libafl_cc = { path = "../../libafl_cc/" }

View File

@ -8,16 +8,8 @@ use std::{env, net::SocketAddr, path::PathBuf, time::Duration};
use clap::{self, Parser}; use clap::{self, Parser};
use libafl::{ use libafl::{
bolts::{
core_affinity::Cores,
current_nanos,
launcher::Launcher,
rands::StdRand,
shmem::{ShMemProvider, StdShMemProvider},
tuples::tuple_list,
},
corpus::{InMemoryCorpus, OnDiskCorpus}, corpus::{InMemoryCorpus, OnDiskCorpus},
events::{llmp::LlmpEventConverter, EventConfig}, events::{launcher::Launcher, llmp::LlmpEventConverter, EventConfig},
executors::{inprocess::InProcessExecutor, ExitKind}, executors::{inprocess::InProcessExecutor, ExitKind},
feedback_or, feedback_or,
feedbacks::{CrashFeedback, MaxMapFeedback, NautilusChunksMetadata, NautilusFeedback}, feedbacks::{CrashFeedback, MaxMapFeedback, NautilusChunksMetadata, NautilusFeedback},
@ -34,6 +26,13 @@ use libafl::{
state::{HasMetadata, StdState}, state::{HasMetadata, StdState},
Error, Error,
}; };
use libafl_bolts::{
core_affinity::Cores,
current_nanos,
rands::StdRand,
shmem::{ShMemProvider, StdShMemProvider},
tuples::tuple_list,
};
use libafl_targets::{libfuzzer_initialize, libfuzzer_test_one_input, std_edges_map_observer}; use libafl_targets::{libfuzzer_initialize, libfuzzer_test_one_input, std_edges_map_observer};
/// Parse a millis string to a [`Duration`]. Used for arg parsing. /// Parse a millis string to a [`Duration`]. Used for arg parsing.

Some files were not shown because too many files have changed in this diff Show More