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:
parent
d69cde896c
commit
e9e9c457d6
2
.github/workflows/build_and_test.yml
vendored
2
.github/workflows/build_and_test.yml
vendored
@ -163,7 +163,7 @@ jobs:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: Swatinem/rust-cache@v2
|
||||
- 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
|
||||
run: . ./bindings/pylibafl/.env/bin/activate && cd ./fuzzers/baby_fuzzer && python3 baby_fuzzer.py 2>&1 | grep "Bye"
|
||||
|
||||
|
2
.gitignore
vendored
2
.gitignore
vendored
@ -56,3 +56,5 @@ __pycache__
|
||||
|
||||
libafl_nyx/QEMU-Nyx
|
||||
libafl_nyx/packer
|
||||
|
||||
.z3-trace
|
||||
|
30
Cargo.toml
30
Cargo.toml
@ -2,35 +2,37 @@
|
||||
resolver = "2"
|
||||
members = [
|
||||
"libafl",
|
||||
"libafl_derive",
|
||||
"libafl_bolts",
|
||||
"libafl_cc",
|
||||
"libafl_targets",
|
||||
"libafl_frida",
|
||||
"libafl_qemu",
|
||||
"libafl_tinyinst",
|
||||
"libafl_sugar",
|
||||
"libafl_nyx",
|
||||
"libafl_concolic/symcc_runtime",
|
||||
"libafl_concolic/symcc_libafl",
|
||||
"libafl_concolic/test/dump_constraints",
|
||||
"libafl_concolic/test/runtime_test",
|
||||
"utils/deexit",
|
||||
"utils/gramatron/construct_automata",
|
||||
"utils/libafl_benches",
|
||||
"libafl_derive",
|
||||
"libafl_frida",
|
||||
"libafl_nyx",
|
||||
"libafl_qemu",
|
||||
"libafl_sugar",
|
||||
"libafl_targets",
|
||||
"libafl_tinyinst",
|
||||
"utils/build_and_test_fuzzers",
|
||||
"utils/deexit",
|
||||
"utils/libafl_benches",
|
||||
"utils/gramatron/construct_automata",
|
||||
]
|
||||
default-members = [
|
||||
"libafl",
|
||||
"libafl_derive",
|
||||
"libafl_bolts",
|
||||
"libafl_cc",
|
||||
"libafl_derive",
|
||||
"libafl_targets",
|
||||
]
|
||||
exclude = [
|
||||
"fuzzers",
|
||||
"bindings",
|
||||
"scripts",
|
||||
"fuzzers",
|
||||
"libafl_qemu/libafl_qemu_build",
|
||||
"libafl_qemu/libafl_qemu_sys"
|
||||
"libafl_qemu/libafl_qemu_sys",
|
||||
"scripts",
|
||||
]
|
||||
|
||||
[workspace.package]
|
||||
|
@ -29,9 +29,12 @@ COPY libafl_derive/Cargo.toml libafl_derive/Cargo.toml
|
||||
COPY scripts/dummy.rs libafl_derive/src/lib.rs
|
||||
|
||||
COPY libafl/Cargo.toml libafl/build.rs libafl/
|
||||
COPY libafl/examples libafl/examples
|
||||
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 scripts/dummy.rs libafl_frida/src/lib.rs
|
||||
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
|
||||
COPY libafl_derive/src libafl_derive/src
|
||||
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
|
||||
RUN touch libafl/src/lib.rs
|
||||
COPY libafl_targets/src libafl_targets/src
|
||||
|
@ -9,6 +9,7 @@ pyo3-log = "0.8.1"
|
||||
libafl_qemu = { path = "../../libafl_qemu", 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_bolts = { path = "../../libafl_bolts", version = "0.10.1", features = ["python"] }
|
||||
|
||||
[build-dependencies]
|
||||
pyo3-build-config = { version = "0.17" }
|
||||
|
@ -1,4 +1,5 @@
|
||||
use libafl;
|
||||
use libafl_bolts;
|
||||
#[cfg(target_os = "linux")]
|
||||
use libafl_qemu;
|
||||
use libafl_sugar;
|
||||
@ -91,18 +92,20 @@ pub fn python_module(py: Python, m: &PyModule) -> PyResult<()> {
|
||||
let sugar_module = PyModule::new(py, "sugar")?;
|
||||
libafl_sugar::python_module(py, sugar_module)?;
|
||||
m.add_submodule(sugar_module)?;
|
||||
|
||||
modules.set_item("pylibafl.sugar", sugar_module)?;
|
||||
|
||||
#[cfg(target_os = "linux")]
|
||||
{
|
||||
let qemu_module = PyModule::new(py, "qemu")?;
|
||||
#[cfg(target_os = "linux")]
|
||||
libafl_qemu::python_module(py, qemu_module)?;
|
||||
#[cfg(target_os = "linux")]
|
||||
m.add_submodule(qemu_module)?;
|
||||
|
||||
#[cfg(target_os = "linux")]
|
||||
modules.set_item("pylibafl.qemu", qemu_module)?;
|
||||
}
|
||||
|
||||
let bolts_module = PyModule::new(py, "libafl_bolts")?;
|
||||
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")?;
|
||||
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)?;
|
||||
|
||||
modules.set_item("pylibafl.libafl", libafl_module)?;
|
||||
|
||||
Ok(())
|
||||
|
@ -8,6 +8,7 @@ edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
libafl = { path = "path/to/libafl/" }
|
||||
libafl_bolts = { path = "path/to/libafl_bolts/" }
|
||||
|
||||
[profile.dev]
|
||||
panic = "abort"
|
||||
|
@ -8,6 +8,7 @@ edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
libafl = { path = "path/to/libafl/" }
|
||||
libafl_bolts = { path = "path/to/libafl_bolts/" }
|
||||
|
||||
[profile.dev]
|
||||
panic = "abort"
|
||||
|
@ -1,9 +1,10 @@
|
||||
extern crate libafl;
|
||||
extern crate libafl_bolts;
|
||||
use libafl::{
|
||||
bolts::AsSlice,
|
||||
executors::ExitKind,
|
||||
inputs::{BytesInput, HasTargetBytes},
|
||||
};
|
||||
use libafl_bolts::AsSlice;
|
||||
|
||||
fn main() {
|
||||
let mut harness = |input: &BytesInput| {
|
||||
|
@ -8,6 +8,7 @@ edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
libafl = { path = "path/to/libafl/" }
|
||||
libafl_bolts = { path = "path/to/libafl_bolts/" }
|
||||
|
||||
[profile.dev]
|
||||
panic = "abort"
|
||||
|
@ -1,8 +1,8 @@
|
||||
/* ANCHOR: use */
|
||||
extern crate libafl;
|
||||
extern crate libafl_bolts;
|
||||
|
||||
use libafl::{
|
||||
bolts::{current_nanos, rands::StdRand, AsSlice},
|
||||
corpus::{InMemoryCorpus, OnDiskCorpus},
|
||||
events::SimpleEventManager,
|
||||
executors::{inprocess::InProcessExecutor, ExitKind},
|
||||
@ -13,6 +13,7 @@ use libafl::{
|
||||
schedulers::QueueScheduler,
|
||||
state::StdState,
|
||||
};
|
||||
use libafl_bolts::{current_nanos, rands::StdRand, AsSlice};
|
||||
use std::path::PathBuf;
|
||||
/* ANCHOR_END: use */
|
||||
|
||||
|
@ -1,8 +1,8 @@
|
||||
/* ANCHOR: use */
|
||||
extern crate libafl;
|
||||
extern crate libafl_bolts;
|
||||
|
||||
use libafl::{
|
||||
bolts::{current_nanos, rands::StdRand, tuples::tuple_list, AsSlice},
|
||||
corpus::{InMemoryCorpus, OnDiskCorpus},
|
||||
events::SimpleEventManager,
|
||||
executors::{inprocess::InProcessExecutor, ExitKind},
|
||||
@ -15,6 +15,7 @@ use libafl::{
|
||||
schedulers::QueueScheduler,
|
||||
state::StdState,
|
||||
};
|
||||
use libafl_bolts::{current_nanos, rands::StdRand, tuples::tuple_list, AsSlice};
|
||||
use std::path::PathBuf;
|
||||
/* ANCHOR_END: use */
|
||||
|
||||
|
@ -8,6 +8,7 @@ edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
libafl = { path = "path/to/libafl/" }
|
||||
libafl_bolts = { path = "path/to/libafl_bolts/" }
|
||||
|
||||
[profile.dev]
|
||||
panic = "abort"
|
||||
|
@ -1,8 +1,8 @@
|
||||
/* ANCHOR: use */
|
||||
extern crate libafl;
|
||||
extern crate libafl_bolts;
|
||||
|
||||
use libafl::{
|
||||
bolts::{current_nanos, rands::StdRand, tuples::tuple_list, AsSlice},
|
||||
corpus::{InMemoryCorpus, OnDiskCorpus},
|
||||
events::SimpleEventManager,
|
||||
executors::{inprocess::InProcessExecutor, ExitKind},
|
||||
@ -17,6 +17,7 @@ use libafl::{
|
||||
stages::mutational::StdMutationalStage,
|
||||
state::StdState,
|
||||
};
|
||||
use libafl_bolts::{current_nanos, rands::StdRand, tuples::tuple_list, AsSlice};
|
||||
use std::path::PathBuf;
|
||||
/* ANCHOR_END: use */
|
||||
|
||||
|
@ -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.
|
||||
|
||||
```rust
|
||||
extern crate libafl;
|
||||
extern crate serde;
|
||||
# extern crate libafl_bolts;
|
||||
# extern crate serde;
|
||||
|
||||
use libafl::SerdeAny;
|
||||
use libafl_bolts::SerdeAny;
|
||||
use serde::{Serialize, Deserialize};
|
||||
|
||||
#[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.
|
||||
|
||||
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
|
||||
|
||||
|
@ -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.
|
||||
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
|
||||
|
||||
The sugar crate abstracts away most of the complexity of LibAFL's API.
|
||||
|
@ -20,4 +20,5 @@ debug = true
|
||||
|
||||
[dependencies]
|
||||
libafl = { path = "../../libafl/" }
|
||||
libafl_bolts = { path = "../../libafl_bolts/" }
|
||||
postcard = "0.7"
|
||||
|
@ -7,7 +7,6 @@ use std::{
|
||||
};
|
||||
|
||||
use libafl::{
|
||||
bolts::{current_nanos, rands::StdRand, tuples::tuple_list},
|
||||
corpus::{InMemoryCorpus, OnDiskCorpus},
|
||||
events::SimpleEventManager,
|
||||
executors::{inprocess::InProcessExecutor, ExitKind},
|
||||
@ -25,6 +24,7 @@ use libafl::{
|
||||
stages::mutational::StdMutationalStage,
|
||||
state::StdState,
|
||||
};
|
||||
use libafl_bolts::{current_nanos, rands::StdRand, tuples::tuple_list};
|
||||
|
||||
/// Coverage map with explicit assignments due to the lack of instrumentation
|
||||
static mut SIGNALS: [u8; 16] = [0; 16];
|
||||
@ -123,7 +123,7 @@ pub fn main() {
|
||||
}
|
||||
|
||||
let mut set = HashSet::new();
|
||||
let st = libafl::bolts::current_milliseconds();
|
||||
let st = libafl_bolts::current_milliseconds();
|
||||
let mut b = vec![];
|
||||
let mut c = 0;
|
||||
for _ in 0..100000 {
|
||||
@ -132,7 +132,7 @@ pub fn main() {
|
||||
set.insert(calculate_hash(&b));
|
||||
c += b.len();
|
||||
}
|
||||
println!("{} / {}", c, libafl::bolts::current_milliseconds() - st);
|
||||
println!("{} / {}", c, libafl_bolts::current_milliseconds() - st);
|
||||
println!("{} / 100000", set.len());
|
||||
|
||||
return;
|
||||
|
@ -20,3 +20,4 @@ debug = true
|
||||
|
||||
[dependencies]
|
||||
libafl = { path = "../../libafl/" }
|
||||
libafl_bolts = { path = "../../libafl_bolts/" }
|
||||
|
@ -3,7 +3,6 @@ use std::ptr::write_volatile;
|
||||
use std::{fs, io::Read, path::PathBuf, ptr::write};
|
||||
|
||||
use libafl::{
|
||||
bolts::{current_nanos, rands::StdRand, tuples::tuple_list, AsSlice},
|
||||
corpus::{InMemoryCorpus, OnDiskCorpus},
|
||||
events::SimpleEventManager,
|
||||
executors::{inprocess::InProcessExecutor, ExitKind},
|
||||
@ -21,6 +20,7 @@ use libafl::{
|
||||
stages::{mutational::StdMutationalStage, GeneralizationStage},
|
||||
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
|
||||
static mut SIGNALS: [u8; 16] = [0; 16];
|
||||
|
@ -21,3 +21,4 @@ debug = true
|
||||
|
||||
[dependencies]
|
||||
libafl = { path = "../../libafl/", features = ["prelude"] }
|
||||
libafl_bolts = { path = "../../libafl_bolts/", features = ["prelude"] }
|
||||
|
@ -3,6 +3,7 @@ use std::ptr::write_volatile;
|
||||
use std::{path::PathBuf, ptr::write};
|
||||
|
||||
use libafl::prelude::*;
|
||||
use libafl_bolts::prelude::*;
|
||||
|
||||
/// Coverage map with explicit assignments due to the lack of instrumentation
|
||||
static mut SIGNALS: [u8; 16] = [0; 16];
|
||||
|
@ -20,3 +20,4 @@ debug = true
|
||||
|
||||
[dependencies]
|
||||
libafl = { path = "../../libafl/", features = ["default", "nautilus"] }
|
||||
libafl_bolts = { path = "../../libafl_bolts/" }
|
||||
|
@ -3,7 +3,6 @@ use std::path::PathBuf;
|
||||
use std::ptr::write_volatile;
|
||||
|
||||
use libafl::{
|
||||
bolts::{current_nanos, rands::StdRand, tuples::tuple_list},
|
||||
corpus::{InMemoryCorpus, OnDiskCorpus},
|
||||
events::SimpleEventManager,
|
||||
executors::{inprocess::InProcessExecutor, ExitKind},
|
||||
@ -21,6 +20,7 @@ use libafl::{
|
||||
stages::mutational::StdMutationalStage,
|
||||
state::{HasMetadata, StdState},
|
||||
};
|
||||
use libafl_bolts::{current_nanos, rands::StdRand, tuples::tuple_list};
|
||||
|
||||
/// Coverage map with explicit assignments due to the lack of instrumentation
|
||||
static mut SIGNALS: [u8; 16] = [0; 16];
|
||||
@ -122,7 +122,7 @@ pub fn main() {
|
||||
}
|
||||
|
||||
let mut set = HashSet::new();
|
||||
let st = libafl::bolts::current_milliseconds();
|
||||
let st = libafl_bolts::current_milliseconds();
|
||||
let mut b = vec![];
|
||||
let mut c = 0;
|
||||
for _ in 0..100000 {
|
||||
@ -131,7 +131,7 @@ pub fn main() {
|
||||
set.insert(calculate_hash(&b));
|
||||
c += b.len();
|
||||
}
|
||||
println!("{} / {}", c, libafl::bolts::current_milliseconds() - st);
|
||||
println!("{} / {}", c, libafl_bolts::current_milliseconds() - st);
|
||||
println!("{} / 100000", set.len());
|
||||
|
||||
return;
|
||||
|
@ -26,6 +26,7 @@ cc = "1.0"
|
||||
|
||||
[dependencies]
|
||||
libafl = { path = "../../libafl" }
|
||||
libafl_bolts = { path = "../../libafl_bolts" }
|
||||
libafl_targets = { path = "../../libafl_targets", features = ["sancov_pcguard_hitcounts", "libfuzzer", "sancov_cmplog", "pointer_maps"] }
|
||||
mimalloc = { version = "*", default-features = false }
|
||||
|
||||
|
@ -10,7 +10,6 @@ use libafl::monitors::tui::{ui::TuiUI, TuiMonitor};
|
||||
#[cfg(not(feature = "tui"))]
|
||||
use libafl::monitors::SimpleMonitor;
|
||||
use libafl::{
|
||||
bolts::{current_nanos, rands::StdRand, tuples::tuple_list, AsSlice},
|
||||
corpus::{Corpus, InMemoryCorpus, InMemoryOnDiskCorpus},
|
||||
events::SimpleEventManager,
|
||||
executors::{inprocess::InProcessExecutor, DiffExecutor, ExitKind},
|
||||
@ -24,6 +23,7 @@ use libafl::{
|
||||
stages::mutational::StdMutationalStage,
|
||||
state::{HasSolutions, StdState},
|
||||
};
|
||||
use libafl_bolts::{current_nanos, rands::StdRand, tuples::tuple_list, AsSlice};
|
||||
use libafl_targets::{edges_max_num, DifferentialAFLMapSwapObserver};
|
||||
#[cfg(not(miri))]
|
||||
use mimalloc::MiMalloc;
|
||||
@ -46,10 +46,8 @@ use bindings::{inspect_first, inspect_second};
|
||||
|
||||
#[cfg(feature = "multimap")]
|
||||
mod multimap {
|
||||
pub use libafl::{
|
||||
bolts::ownedref::OwnedMutSlice,
|
||||
observers::{HitcountsIterableMapObserver, MultiMapObserver},
|
||||
};
|
||||
pub use libafl::observers::{HitcountsIterableMapObserver, MultiMapObserver};
|
||||
pub use libafl_bolts::ownedref::OwnedMutSlice;
|
||||
}
|
||||
#[cfg(feature = "multimap")]
|
||||
use multimap::{HitcountsIterableMapObserver, MultiMapObserver, OwnedMutSlice};
|
||||
|
@ -20,3 +20,4 @@ debug = true
|
||||
|
||||
[dependencies]
|
||||
libafl = { path = "../../libafl/" }
|
||||
libafl_bolts = { path = "../../libafl_bolts/" }
|
||||
|
@ -3,7 +3,6 @@ use std::ptr::write_volatile;
|
||||
use std::{fs, io::Read, path::PathBuf, ptr::write};
|
||||
|
||||
use libafl::{
|
||||
bolts::{current_nanos, rands::StdRand, tuples::tuple_list},
|
||||
corpus::{InMemoryCorpus, OnDiskCorpus},
|
||||
events::SimpleEventManager,
|
||||
executors::{inprocess::InProcessExecutor, ExitKind},
|
||||
@ -17,6 +16,7 @@ use libafl::{
|
||||
stages::mutational::StdMutationalStage,
|
||||
state::StdState,
|
||||
};
|
||||
use libafl_bolts::{current_nanos, rands::StdRand, tuples::tuple_list};
|
||||
|
||||
/// Coverage map with explicit assignments due to the lack of instrumentation
|
||||
static mut SIGNALS: [u8; 16] = [0; 16];
|
||||
|
@ -15,6 +15,7 @@ js-sys = "0.3"
|
||||
wasm-bindgen = "0.2.63"
|
||||
|
||||
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
|
||||
# logging them with `console.error`. This is great for development, but requires
|
||||
|
@ -1,7 +1,6 @@
|
||||
mod utils;
|
||||
|
||||
use libafl::{
|
||||
bolts::{current_nanos, rands::StdRand, tuples::tuple_list, AsSlice},
|
||||
corpus::{Corpus, InMemoryCorpus},
|
||||
events::SimpleEventManager,
|
||||
executors::{ExitKind, InProcessExecutor},
|
||||
@ -16,6 +15,7 @@ use libafl::{
|
||||
state::{HasSolutions, StdState},
|
||||
Fuzzer, StdFuzzer,
|
||||
};
|
||||
use libafl_bolts::{current_nanos, rands::StdRand, tuples::tuple_list, AsSlice};
|
||||
use wasm_bindgen::prelude::*;
|
||||
use web_sys::{Performance, Window};
|
||||
|
||||
|
@ -20,3 +20,4 @@ debug = true
|
||||
|
||||
[dependencies]
|
||||
libafl = { path = "../../libafl/" }
|
||||
libafl_bolts = { path = "../../libafl_bolts/" }
|
||||
|
@ -3,13 +3,6 @@ use std::ptr::write_volatile;
|
||||
use std::{path::PathBuf, ptr::write};
|
||||
|
||||
use libafl::{
|
||||
bolts::{
|
||||
current_nanos,
|
||||
rands::StdRand,
|
||||
shmem::{unix_shmem, ShMemProvider},
|
||||
tuples::tuple_list,
|
||||
AsMutSlice, AsSlice,
|
||||
},
|
||||
corpus::{InMemoryCorpus, OnDiskCorpus},
|
||||
events::SimpleEventManager,
|
||||
executors::{ExitKind, InProcessForkExecutor},
|
||||
@ -24,6 +17,13 @@ use libafl::{
|
||||
stages::mutational::StdMutationalStage,
|
||||
state::StdState,
|
||||
};
|
||||
use libafl_bolts::{
|
||||
current_nanos,
|
||||
rands::StdRand,
|
||||
shmem::{unix_shmem, ShMemProvider},
|
||||
tuples::tuple_list,
|
||||
AsMutSlice, AsSlice,
|
||||
};
|
||||
|
||||
#[allow(clippy::similar_names)]
|
||||
pub fn main() {
|
||||
|
@ -16,6 +16,7 @@ debug = true
|
||||
|
||||
[dependencies]
|
||||
libafl = { default-features = false, path = "../../libafl/" }
|
||||
libafl_bolts = { default-features = false, path = "../../libafl_bolts/" }
|
||||
static-alloc = "0.2.3"
|
||||
|
||||
[target.'cfg(unix)'.dependencies]
|
||||
|
@ -11,7 +11,6 @@ use core::panic::PanicInfo;
|
||||
use core::ptr::write;
|
||||
|
||||
use libafl::{
|
||||
bolts::{current_nanos, rands::StdRand, tuples::tuple_list, AsSlice},
|
||||
corpus::InMemoryCorpus,
|
||||
events::SimpleEventManager,
|
||||
executors::{inprocess::InProcessExecutor, ExitKind},
|
||||
@ -26,6 +25,7 @@ use libafl::{
|
||||
stages::mutational::StdMutationalStage,
|
||||
state::StdState,
|
||||
};
|
||||
use libafl_bolts::{current_nanos, rands::StdRand, tuples::tuple_list, AsSlice};
|
||||
#[cfg(any(windows, unix))]
|
||||
use libc::{abort, printf};
|
||||
use static_alloc::Bump;
|
||||
|
@ -16,6 +16,7 @@ debug = true
|
||||
|
||||
[dependencies]
|
||||
libafl = { path = "../../../libafl/" }
|
||||
libafl_bolts = { path = "../../../libafl_bolts/" }
|
||||
libc = "0.2"
|
||||
|
||||
[build-dependencies]
|
||||
|
@ -1,13 +1,6 @@
|
||||
use std::path::PathBuf;
|
||||
|
||||
use libafl::{
|
||||
bolts::{
|
||||
current_nanos,
|
||||
rands::StdRand,
|
||||
shmem::{ShMem, ShMemProvider, StdShMemProvider},
|
||||
tuples::tuple_list,
|
||||
AsSlice,
|
||||
},
|
||||
corpus::{InMemoryCorpus, OnDiskCorpus},
|
||||
events::SimpleEventManager,
|
||||
executors::InProcessForkExecutor,
|
||||
@ -23,6 +16,13 @@ use libafl::{
|
||||
stages::mutational::StdMutationalStage,
|
||||
state::StdState,
|
||||
};
|
||||
use libafl_bolts::{
|
||||
current_nanos,
|
||||
rands::StdRand,
|
||||
shmem::{ShMem, ShMemProvider, StdShMemProvider},
|
||||
tuples::tuple_list,
|
||||
AsSlice,
|
||||
};
|
||||
use libc::{c_int, c_uchar};
|
||||
extern crate libc;
|
||||
|
||||
|
@ -16,6 +16,7 @@ debug = true
|
||||
|
||||
[dependencies]
|
||||
libafl = { path = "../../../libafl/" }
|
||||
libafl_bolts = { path = "../../../libafl_bolts/" }
|
||||
libc = "0.2"
|
||||
|
||||
[build-dependencies]
|
||||
|
@ -1,7 +1,6 @@
|
||||
use std::path::PathBuf;
|
||||
|
||||
use libafl::{
|
||||
bolts::{current_nanos, rands::StdRand, tuples::tuple_list, AsSlice},
|
||||
corpus::{InMemoryCorpus, OnDiskCorpus},
|
||||
events::SimpleEventManager,
|
||||
executors::InProcessExecutor,
|
||||
@ -17,6 +16,7 @@ use libafl::{
|
||||
stages::mutational::StdMutationalStage,
|
||||
state::StdState,
|
||||
};
|
||||
use libafl_bolts::{current_nanos, rands::StdRand, tuples::tuple_list, AsSlice};
|
||||
use libc::c_uchar;
|
||||
extern crate libc;
|
||||
|
||||
|
@ -18,4 +18,4 @@ cc = "*"
|
||||
|
||||
[dependencies]
|
||||
libafl = { path = "../../../libafl/" }
|
||||
|
||||
libafl_bolts = { path = "../../../libafl_bolts/" }
|
||||
|
@ -8,13 +8,6 @@ use std::{
|
||||
};
|
||||
|
||||
use libafl::{
|
||||
bolts::{
|
||||
current_nanos,
|
||||
rands::StdRand,
|
||||
shmem::{unix_shmem, ShMem, ShMemId, ShMemProvider},
|
||||
tuples::tuple_list,
|
||||
AsMutSlice, AsSlice,
|
||||
},
|
||||
corpus::{InMemoryCorpus, OnDiskCorpus},
|
||||
events::SimpleEventManager,
|
||||
executors::command::CommandConfigurator,
|
||||
@ -31,6 +24,13 @@ use libafl::{
|
||||
state::StdState,
|
||||
Error,
|
||||
};
|
||||
use libafl_bolts::{
|
||||
current_nanos,
|
||||
rands::StdRand,
|
||||
shmem::{unix_shmem, ShMem, ShMemId, ShMemProvider},
|
||||
tuples::tuple_list,
|
||||
AsMutSlice, AsSlice,
|
||||
};
|
||||
|
||||
#[allow(clippy::similar_names)]
|
||||
pub fn main() {
|
||||
|
@ -15,3 +15,4 @@ opt-level = 3
|
||||
|
||||
[dependencies]
|
||||
libafl = { path = "../../../libafl/" }
|
||||
libafl_bolts = { path = "../../../libafl_bolts/" }
|
||||
|
@ -1,17 +1,6 @@
|
||||
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::{
|
||||
bolts::{
|
||||
current_nanos,
|
||||
rands::StdRand,
|
||||
shmem::{ShMem, ShMemProvider},
|
||||
tuples::tuple_list,
|
||||
AsMutSlice,
|
||||
},
|
||||
corpus::{InMemoryCorpus, OnDiskCorpus},
|
||||
events::SimpleEventManager,
|
||||
executors::forkserver::ForkserverExecutor,
|
||||
@ -27,6 +16,17 @@ use libafl::{
|
||||
stages::mutational::StdMutationalStage,
|
||||
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)]
|
||||
pub fn main() {
|
||||
|
@ -19,3 +19,4 @@ debug = true
|
||||
|
||||
[dependencies]
|
||||
libafl = { path = "../../../libafl/" }
|
||||
libafl_bolts = { path = "../../../libafl_bolts/" }
|
||||
|
@ -3,13 +3,6 @@ use std::ptr::write_volatile;
|
||||
use std::{path::PathBuf, ptr::write};
|
||||
|
||||
use libafl::{
|
||||
bolts::{
|
||||
current_nanos,
|
||||
rands::StdRand,
|
||||
shmem::{unix_shmem, ShMem, ShMemProvider},
|
||||
tuples::tuple_list,
|
||||
AsMutSlice, AsSlice,
|
||||
},
|
||||
corpus::{InMemoryCorpus, OnDiskCorpus},
|
||||
events::SimpleEventManager,
|
||||
executors::{ExitKind, InProcessForkExecutor},
|
||||
@ -25,6 +18,13 @@ use libafl::{
|
||||
stages::mutational::StdMutationalStage,
|
||||
state::StdState,
|
||||
};
|
||||
use libafl_bolts::{
|
||||
current_nanos,
|
||||
rands::StdRand,
|
||||
shmem::{unix_shmem, ShMem, ShMemProvider},
|
||||
tuples::tuple_list,
|
||||
AsMutSlice, AsSlice,
|
||||
};
|
||||
|
||||
#[allow(clippy::similar_names)]
|
||||
pub fn main() {
|
||||
|
@ -19,3 +19,4 @@ debug = true
|
||||
|
||||
[dependencies]
|
||||
libafl = { path = "../../../libafl/" }
|
||||
libafl_bolts = { path = "../../../libafl_bolts/" }
|
||||
|
@ -3,7 +3,6 @@ use std::ptr::write_volatile;
|
||||
use std::{path::PathBuf, ptr::write};
|
||||
|
||||
use libafl::{
|
||||
bolts::{current_nanos, rands::StdRand, tuples::tuple_list, AsSlice},
|
||||
corpus::{InMemoryCorpus, OnDiskCorpus},
|
||||
events::SimpleEventManager,
|
||||
executors::{inprocess::InProcessExecutor, ExitKind},
|
||||
@ -19,6 +18,7 @@ use libafl::{
|
||||
stages::mutational::StdMutationalStage,
|
||||
state::StdState,
|
||||
};
|
||||
use libafl_bolts::{current_nanos, rands::StdRand, tuples::tuple_list, AsSlice};
|
||||
|
||||
/// Coverage map with explicit assignments due to the lack of instrumentation
|
||||
static mut SIGNALS: [u8; 16] = [0; 16];
|
||||
|
@ -21,11 +21,12 @@ cc = { version = "1.0", features = ["parallel"] }
|
||||
which = { version = "4.0.2" }
|
||||
|
||||
[dependencies]
|
||||
libafl = { path = "../../libafl/", features = ["default"] }
|
||||
clap = { version = "4.0", features = ["derive"] }
|
||||
nix = "0.26"
|
||||
libafl_targets = { path = "../../libafl_targets/" }
|
||||
libafl = { path = "../../libafl/" }
|
||||
libafl_bolts = { path = "../../libafl_bolts/" }
|
||||
libafl_cc = { path = "../../libafl_cc/" }
|
||||
libafl_targets = { path = "../../libafl_targets/" }
|
||||
|
||||
[lib]
|
||||
name = "libforkserver_libafl_cc"
|
||||
|
@ -3,13 +3,6 @@ use std::path::PathBuf;
|
||||
|
||||
use clap::{self, Parser};
|
||||
use libafl::{
|
||||
bolts::{
|
||||
current_nanos,
|
||||
rands::StdRand,
|
||||
shmem::{ShMem, ShMemProvider, UnixShMemProvider},
|
||||
tuples::{tuple_list, MatchName, Merge},
|
||||
AsMutSlice, Truncate,
|
||||
},
|
||||
corpus::{Corpus, InMemoryCorpus, OnDiskCorpus},
|
||||
events::SimpleEventManager,
|
||||
executors::{
|
||||
@ -27,6 +20,13 @@ use libafl::{
|
||||
stages::mutational::StdMutationalStage,
|
||||
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;
|
||||
|
||||
/// The commandline args this fuzzer accepts
|
||||
|
@ -17,5 +17,6 @@ opt-level = 3
|
||||
|
||||
[dependencies]
|
||||
libafl = { path = "../../libafl/", features = ["std", "derive"] }
|
||||
libafl_bolts = { path = "../../libafl_bolts/" }
|
||||
clap = { version = "4.0", features = ["derive"] }
|
||||
nix = "0.26"
|
||||
|
@ -3,13 +3,6 @@ use std::path::PathBuf;
|
||||
|
||||
use clap::{self, Parser};
|
||||
use libafl::{
|
||||
bolts::{
|
||||
current_nanos,
|
||||
rands::StdRand,
|
||||
shmem::{ShMem, ShMemProvider, UnixShMemProvider},
|
||||
tuples::{tuple_list, MatchName, Merge},
|
||||
AsMutSlice, Truncate,
|
||||
},
|
||||
corpus::{Corpus, InMemoryCorpus, OnDiskCorpus},
|
||||
events::SimpleEventManager,
|
||||
executors::{
|
||||
@ -27,6 +20,13 @@ use libafl::{
|
||||
stages::mutational::StdMutationalStage,
|
||||
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;
|
||||
|
||||
/// The commandline args this fuzzer accepts
|
||||
|
@ -25,11 +25,9 @@ flate2 = "1.0.22"
|
||||
tar = "0.4.37"
|
||||
reqwest = { version = "0.11.4", features = ["blocking"] }
|
||||
|
||||
|
||||
|
||||
|
||||
[dependencies]
|
||||
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"
|
||||
frida-gum = { version = "0.8.1", features = [ "auto-download", "event-sink", "invocation-listener"] }
|
||||
libafl_frida = { path = "../../libafl_frida", features = ["cmplog"] }
|
||||
|
@ -8,17 +8,8 @@ use std::{path::PathBuf, ptr::null};
|
||||
|
||||
use frida_gum::Gum;
|
||||
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},
|
||||
events::{llmp::LlmpRestartingEventManager, EventConfig},
|
||||
events::{launcher::Launcher, llmp::LlmpRestartingEventManager, EventConfig},
|
||||
executors::{inprocess::InProcessExecutor, ExitKind, ShadowExecutor},
|
||||
feedback_or, feedback_or_fast,
|
||||
feedbacks::{CrashFeedback, MaxMapFeedback, TimeFeedback, TimeoutFeedback},
|
||||
@ -37,6 +28,14 @@ use libafl::{
|
||||
};
|
||||
#[cfg(unix)]
|
||||
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)]
|
||||
use libafl_frida::asan::{
|
||||
asan_rt::AsanRuntime,
|
||||
|
@ -25,6 +25,7 @@ reqwest = { version = "0.11.4", features = ["blocking"] }
|
||||
|
||||
[dependencies]
|
||||
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"] }
|
||||
libafl_frida = { path = "../../libafl_frida", features = ["cmplog"] }
|
||||
libafl_targets = { path = "../../libafl_targets", features = ["sancov_cmplog"] }
|
||||
|
@ -14,17 +14,8 @@ use std::path::PathBuf;
|
||||
|
||||
use frida_gum::Gum;
|
||||
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},
|
||||
events::{llmp::LlmpRestartingEventManager, EventConfig},
|
||||
events::{launcher::Launcher, llmp::LlmpRestartingEventManager, EventConfig},
|
||||
executors::{inprocess::InProcessExecutor, ExitKind, ShadowExecutor},
|
||||
feedback_and_fast, feedback_or, feedback_or_fast,
|
||||
feedbacks::{ConstFeedback, CrashFeedback, MaxMapFeedback, TimeFeedback, TimeoutFeedback},
|
||||
@ -41,6 +32,14 @@ use libafl::{
|
||||
state::{HasCorpus, HasMetadata, StdState},
|
||||
Error,
|
||||
};
|
||||
use libafl_bolts::{
|
||||
cli::{parse_args, FuzzerOptions},
|
||||
current_nanos,
|
||||
rands::StdRand,
|
||||
shmem::{ShMemProvider, StdShMemProvider},
|
||||
tuples::{tuple_list, Merge},
|
||||
AsSlice,
|
||||
};
|
||||
#[cfg(unix)]
|
||||
use libafl_frida::asan::asan_rt::AsanRuntime;
|
||||
#[cfg(unix)]
|
||||
|
@ -27,6 +27,7 @@ reqwest = { version = "0.11.4", features = ["blocking"] }
|
||||
|
||||
[dependencies]
|
||||
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"] }
|
||||
libafl_frida = { path = "../../libafl_frida", features = ["cmplog"] }
|
||||
libafl_targets = { path = "../../libafl_targets", features = ["sancov_cmplog"] }
|
||||
|
@ -8,17 +8,8 @@ use std::path::PathBuf;
|
||||
|
||||
use frida_gum::Gum;
|
||||
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},
|
||||
events::{llmp::LlmpRestartingEventManager, EventConfig},
|
||||
events::{launcher::Launcher, llmp::LlmpRestartingEventManager, EventConfig},
|
||||
executors::{inprocess::InProcessExecutor, ExitKind, ShadowExecutor},
|
||||
feedback_or, feedback_or_fast,
|
||||
feedbacks::{CrashFeedback, MaxMapFeedback, TimeFeedback, TimeoutFeedback},
|
||||
@ -37,6 +28,14 @@ use libafl::{
|
||||
};
|
||||
#[cfg(unix)]
|
||||
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)]
|
||||
use libafl_frida::asan::{
|
||||
asan_rt::AsanRuntime,
|
||||
|
@ -21,6 +21,7 @@ which = { version = "4.0.2" }
|
||||
|
||||
[dependencies]
|
||||
libafl = { path = "../../libafl/" }
|
||||
libafl_bolts = { path = "../../libafl_bolts/" }
|
||||
libafl_targets = { path = "../../libafl_targets/", features = ["sancov_pcguard_hitcounts", "sancov_cmplog", "libfuzzer"] }
|
||||
# TODO Include it only when building cc
|
||||
libafl_cc = { path = "../../libafl_cc/" }
|
||||
|
@ -16,14 +16,6 @@ use std::{
|
||||
|
||||
use clap::{Arg, Command};
|
||||
use libafl::{
|
||||
bolts::{
|
||||
current_nanos, current_time,
|
||||
os::dup2,
|
||||
rands::StdRand,
|
||||
shmem::{ShMemProvider, StdShMemProvider},
|
||||
tuples::{tuple_list, Merge},
|
||||
AsSlice,
|
||||
},
|
||||
corpus::{Corpus, InMemoryOnDiskCorpus, OnDiskCorpus},
|
||||
events::SimpleRestartingEventManager,
|
||||
executors::{inprocess::InProcessExecutor, ExitKind, TimeoutExecutor},
|
||||
@ -47,6 +39,14 @@ use libafl::{
|
||||
state::{HasCorpus, HasMetadata, StdState},
|
||||
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"))]
|
||||
use libafl_targets::autotokens;
|
||||
use libafl_targets::{
|
||||
|
@ -13,6 +13,7 @@ debug = true
|
||||
|
||||
[dependencies]
|
||||
libafl = { path = "../../libafl/" }
|
||||
libafl_bolts = { path = "../../libafl_bolts/" }
|
||||
libafl_qemu = { path = "../../libafl_qemu/", features = ["x86_64", "usermode"] }
|
||||
|
||||
clap = { version = "4.0", features = ["default"] }
|
||||
|
@ -13,14 +13,6 @@ use std::{
|
||||
|
||||
use clap::{Arg, Command};
|
||||
use libafl::{
|
||||
bolts::{
|
||||
current_nanos, current_time,
|
||||
os::dup2,
|
||||
rands::StdRand,
|
||||
shmem::{ShMemProvider, StdShMemProvider},
|
||||
tuples::{tuple_list, Merge},
|
||||
AsMutSlice, AsSlice,
|
||||
},
|
||||
corpus::{Corpus, InMemoryOnDiskCorpus, OnDiskCorpus},
|
||||
events::SimpleRestartingEventManager,
|
||||
executors::{ExitKind, ShadowExecutor},
|
||||
@ -44,6 +36,14 @@ use libafl::{
|
||||
state::{HasCorpus, HasMetadata, StdState},
|
||||
Error,
|
||||
};
|
||||
use libafl_bolts::{
|
||||
current_nanos, current_time,
|
||||
os::dup2,
|
||||
rands::StdRand,
|
||||
shmem::{ShMemProvider, StdShMemProvider},
|
||||
tuples::{tuple_list, Merge},
|
||||
AsMutSlice, AsSlice,
|
||||
};
|
||||
use libafl_qemu::{
|
||||
cmplog::{CmpLogMap, CmpLogObserver, QemuCmpLogChildHelper},
|
||||
edges::{QemuEdgeCoverageChildHelper, EDGES_MAP_PTR, EDGES_MAP_SIZE},
|
||||
|
@ -16,5 +16,6 @@ which = { version = "4.0.2" }
|
||||
|
||||
[dependencies]
|
||||
libafl = { path = "../../libafl/" }
|
||||
libafl_bolts = { path = "../../libafl_bolts/" }
|
||||
clap = { version = "4.0", features = ["default"] }
|
||||
nix = "0.26"
|
||||
|
@ -9,13 +9,6 @@ use std::{
|
||||
|
||||
use clap::{Arg, ArgAction, Command};
|
||||
use libafl::{
|
||||
bolts::{
|
||||
current_nanos, current_time,
|
||||
rands::StdRand,
|
||||
shmem::{ShMem, ShMemProvider, UnixShMemProvider},
|
||||
tuples::{tuple_list, Merge},
|
||||
AsMutSlice,
|
||||
},
|
||||
corpus::{Corpus, InMemoryOnDiskCorpus, OnDiskCorpus},
|
||||
events::SimpleEventManager,
|
||||
executors::forkserver::{ForkserverExecutor, TimeoutForkserverExecutor},
|
||||
@ -41,6 +34,13 @@ use libafl::{
|
||||
state::{HasCorpus, HasMetadata, StdState},
|
||||
Error,
|
||||
};
|
||||
use libafl_bolts::{
|
||||
current_nanos, current_time,
|
||||
rands::StdRand,
|
||||
shmem::{ShMem, ShMemProvider, UnixShMemProvider},
|
||||
tuples::{tuple_list, Merge},
|
||||
AsMutSlice,
|
||||
};
|
||||
use nix::sys::signal::Signal;
|
||||
|
||||
pub fn main() {
|
||||
|
@ -16,5 +16,6 @@ which = { version = "4.0.2" }
|
||||
|
||||
[dependencies]
|
||||
libafl = { path = "../../libafl/" }
|
||||
libafl_bolts = { path = "../../libafl_bolts/" }
|
||||
clap = { version = "4.0", features = ["default"] }
|
||||
nix = "0.26"
|
@ -9,13 +9,6 @@ use std::{
|
||||
|
||||
use clap::{Arg, ArgAction, Command};
|
||||
use libafl::{
|
||||
bolts::{
|
||||
current_nanos, current_time,
|
||||
rands::StdRand,
|
||||
shmem::{ShMem, ShMemProvider, UnixShMemProvider},
|
||||
tuples::{tuple_list, Merge},
|
||||
AsMutSlice,
|
||||
},
|
||||
corpus::{Corpus, CorpusId, InMemoryOnDiskCorpus, OnDiskCorpus},
|
||||
events::SimpleEventManager,
|
||||
executors::forkserver::{ForkserverExecutor, TimeoutForkserverExecutor},
|
||||
@ -42,6 +35,13 @@ use libafl::{
|
||||
state::{HasCorpus, HasMetadata, StdState},
|
||||
Error,
|
||||
};
|
||||
use libafl_bolts::{
|
||||
current_nanos, current_time,
|
||||
rands::StdRand,
|
||||
shmem::{ShMem, ShMemProvider, UnixShMemProvider},
|
||||
tuples::{tuple_list, Merge},
|
||||
AsMutSlice,
|
||||
};
|
||||
use nix::sys::signal::Signal;
|
||||
|
||||
pub fn main() {
|
||||
@ -245,7 +245,7 @@ fn fuzz(
|
||||
shmem.write_to_env("__AFL_SHM_ID").unwrap();
|
||||
let shmem_buf = shmem.as_mut_slice();
|
||||
// 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++
|
||||
let edges_observer =
|
||||
|
@ -13,6 +13,7 @@ debug = true
|
||||
|
||||
[dependencies]
|
||||
libafl = { path = "../../libafl/" }
|
||||
libafl_bolts = { path = "../../libafl_bolts/" }
|
||||
libafl_qemu = { path = "../../libafl_qemu/", features = ["x86_64", "usermode"] }
|
||||
|
||||
clap = { version = "4.0", features = ["default"] }
|
||||
|
@ -13,14 +13,6 @@ use std::{
|
||||
|
||||
use clap::{Arg, Command};
|
||||
use libafl::{
|
||||
bolts::{
|
||||
current_nanos, current_time,
|
||||
os::dup2,
|
||||
rands::StdRand,
|
||||
shmem::{ShMemProvider, StdShMemProvider},
|
||||
tuples::{tuple_list, Merge},
|
||||
AsSlice,
|
||||
},
|
||||
corpus::{Corpus, InMemoryOnDiskCorpus, OnDiskCorpus},
|
||||
events::SimpleRestartingEventManager,
|
||||
executors::{ExitKind, ShadowExecutor, TimeoutExecutor},
|
||||
@ -44,6 +36,14 @@ use libafl::{
|
||||
state::{HasCorpus, HasMetadata, StdState},
|
||||
Error,
|
||||
};
|
||||
use libafl_bolts::{
|
||||
current_nanos, current_time,
|
||||
os::dup2,
|
||||
rands::StdRand,
|
||||
shmem::{ShMemProvider, StdShMemProvider},
|
||||
tuples::{tuple_list, Merge},
|
||||
AsSlice,
|
||||
};
|
||||
use libafl_qemu::{
|
||||
cmplog::{CmpLogObserver, QemuCmpLogHelper},
|
||||
//asan::{init_with_asan, QemuAsanHelper},
|
||||
|
@ -21,6 +21,7 @@ which = { version = "4.0.2" }
|
||||
|
||||
[dependencies]
|
||||
libafl = { path = "../../libafl/" }
|
||||
libafl_bolts = { path = "../../libafl_bolts/" }
|
||||
libafl_targets = { path = "../../libafl_targets/", features = ["sancov_pcguard_hitcounts", "sancov_cmplog", "libfuzzer"] }
|
||||
# TODO Include it only when building cc
|
||||
libafl_cc = { path = "../../libafl_cc/" }
|
||||
|
@ -17,14 +17,6 @@ use std::{
|
||||
use clap::{Arg, Command};
|
||||
use content_inspector::inspect;
|
||||
use libafl::{
|
||||
bolts::{
|
||||
current_nanos, current_time,
|
||||
os::dup2,
|
||||
rands::StdRand,
|
||||
shmem::{ShMemProvider, StdShMemProvider},
|
||||
tuples::{tuple_list, Merge},
|
||||
AsSlice,
|
||||
},
|
||||
corpus::{Corpus, InMemoryOnDiskCorpus, OnDiskCorpus},
|
||||
events::SimpleRestartingEventManager,
|
||||
executors::{inprocess::InProcessExecutor, ExitKind, TimeoutExecutor},
|
||||
@ -53,6 +45,14 @@ use libafl::{
|
||||
state::{HasCorpus, HasMetadata, StdState},
|
||||
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"))]
|
||||
use libafl_targets::autotokens;
|
||||
use libafl_targets::{
|
||||
|
@ -20,6 +20,7 @@ which = { version = "4.0.2" }
|
||||
|
||||
[dependencies]
|
||||
libafl = { path = "../../libafl/" }
|
||||
libafl_bolts = { path = "../../libafl_bolts/" }
|
||||
libafl_targets = { path = "../../libafl_targets/", features = ["pointer_maps", "sancov_cmplog", "libfuzzer"] }
|
||||
clap = { version = "4.0", features = ["default"] }
|
||||
|
||||
|
@ -12,17 +12,8 @@ use std::{
|
||||
|
||||
use clap::{Arg, ArgAction, Command};
|
||||
use libafl::{
|
||||
bolts::{
|
||||
core_affinity::Cores,
|
||||
current_nanos,
|
||||
launcher::Launcher,
|
||||
rands::StdRand,
|
||||
shmem::{ShMemProvider, StdShMemProvider},
|
||||
tuples::{tuple_list, Merge},
|
||||
AsSlice,
|
||||
},
|
||||
corpus::{Corpus, InMemoryCorpus, OnDiskCorpus},
|
||||
events::EventConfig,
|
||||
events::{launcher::Launcher, EventConfig},
|
||||
executors::{inprocess::InProcessExecutor, ExitKind, TimeoutExecutor},
|
||||
feedback_or,
|
||||
feedbacks::{CrashFeedback, MaxMapFeedback, TimeFeedback, TimeoutFeedback},
|
||||
@ -40,6 +31,14 @@ use libafl::{
|
||||
state::{HasCorpus, HasMetadata, StdState},
|
||||
Error,
|
||||
};
|
||||
use libafl_bolts::{
|
||||
core_affinity::Cores,
|
||||
current_nanos,
|
||||
rands::StdRand,
|
||||
shmem::{ShMemProvider, StdShMemProvider},
|
||||
tuples::{tuple_list, Merge},
|
||||
AsSlice,
|
||||
};
|
||||
use libafl_targets::{
|
||||
CmpLogObserver, __sanitizer_cov_trace_cmp1, __sanitizer_cov_trace_cmp2,
|
||||
__sanitizer_cov_trace_cmp4, __sanitizer_cov_trace_cmp8, std_edges_map_observer, EDGES_MAP_PTR,
|
||||
|
@ -16,6 +16,7 @@ debug = true
|
||||
|
||||
[dependencies]
|
||||
libafl = { path = "../../libafl/" }
|
||||
libafl_bolts = { path = "../../libafl_bolts/" }
|
||||
libafl_targets = { path = "../../libafl_targets/", features = ["sancov_pcguard_edges", "sancov_value_profile", "libfuzzer"] }
|
||||
# TODO Include it only when building cc
|
||||
libafl_cc = { path = "../../libafl_cc/" }
|
||||
|
@ -7,12 +7,6 @@ static GLOBAL: MiMalloc = MiMalloc;
|
||||
use std::{env, path::PathBuf};
|
||||
|
||||
use libafl::{
|
||||
bolts::{
|
||||
current_nanos,
|
||||
rands::StdRand,
|
||||
tuples::{tuple_list, Merge},
|
||||
AsSlice,
|
||||
},
|
||||
corpus::{Corpus, InMemoryCorpus, OnDiskCorpus},
|
||||
events::{setup_restarting_mgr_std, EventConfig},
|
||||
executors::{inprocess::InProcessExecutor, ExitKind},
|
||||
@ -31,6 +25,12 @@ use libafl::{
|
||||
state::{HasCorpus, HasMetadata, StdState},
|
||||
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, CMP_MAP,
|
||||
};
|
||||
|
@ -23,6 +23,7 @@ which = { version = "4.0.2" }
|
||||
[dependencies]
|
||||
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"] }
|
||||
# TODO Include it only when building cc
|
||||
libafl_cc = { path = "../../libafl_cc/" }
|
||||
|
@ -10,12 +10,6 @@ use std::ptr;
|
||||
use std::{env, path::PathBuf};
|
||||
|
||||
use libafl::{
|
||||
bolts::{
|
||||
current_nanos,
|
||||
rands::StdRand,
|
||||
tuples::{tuple_list, Merge},
|
||||
AsSlice,
|
||||
},
|
||||
corpus::{Corpus, InMemoryCorpus, OnDiskCorpus},
|
||||
events::{setup_restarting_mgr_std, EventConfig, EventRestarter},
|
||||
executors::{inprocess::InProcessExecutor, ExitKind, TimeoutExecutor},
|
||||
@ -36,6 +30,12 @@ use libafl::{
|
||||
state::{HasCorpus, HasMetadata, StdState},
|
||||
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};
|
||||
|
||||
/// The main fn, `no_mangle` as it is a C main
|
||||
|
@ -20,6 +20,7 @@ which = { version = "4.0.2" }
|
||||
|
||||
[dependencies]
|
||||
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"] }
|
||||
# TODO Include it only when building cc
|
||||
libafl_cc = { path = "../../libafl_cc/" }
|
||||
|
@ -11,17 +11,8 @@ use std::{env, net::SocketAddr, path::PathBuf};
|
||||
|
||||
use clap::Parser;
|
||||
use libafl::{
|
||||
bolts::{
|
||||
core_affinity::Cores,
|
||||
current_nanos,
|
||||
launcher::Launcher,
|
||||
rands::StdRand,
|
||||
shmem::{ShMemProvider, StdShMemProvider},
|
||||
tuples::{tuple_list, Merge},
|
||||
AsSlice,
|
||||
},
|
||||
corpus::{Corpus, InMemoryCorpus, OnDiskCorpus},
|
||||
events::EventConfig,
|
||||
events::{EventConfig, Launcher},
|
||||
executors::{inprocess::InProcessExecutor, ExitKind, TimeoutExecutor},
|
||||
feedback_or, feedback_or_fast,
|
||||
feedbacks::{CrashFeedback, MaxMapFeedback, TimeFeedback, TimeoutFeedback},
|
||||
@ -38,6 +29,14 @@ use libafl::{
|
||||
state::{HasCorpus, HasMetadata, StdState},
|
||||
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, ACCOUNTING_MEMOP_MAP, EDGES_MAP, MAX_EDGES_NUM,
|
||||
};
|
||||
|
@ -20,6 +20,7 @@ which = { version = "4.0.2" }
|
||||
|
||||
[dependencies]
|
||||
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"] }
|
||||
# TODO Include it only when building cc
|
||||
libafl_cc = { path = "../../libafl_cc/" }
|
||||
|
@ -11,18 +11,8 @@ use std::{env, net::SocketAddr, path::PathBuf};
|
||||
|
||||
use clap::{self, Parser};
|
||||
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},
|
||||
events::{CentralizedEventManager, EventConfig},
|
||||
events::{launcher::Launcher, CentralizedEventManager, EventConfig},
|
||||
executors::{inprocess::InProcessExecutor, ExitKind, TimeoutExecutor},
|
||||
feedback_or, feedback_or_fast,
|
||||
feedbacks::{CrashFeedback, MaxMapFeedback, TimeFeedback, TimeoutFeedback},
|
||||
@ -39,6 +29,15 @@ use libafl::{
|
||||
state::{HasCorpus, HasMetadata, StdState},
|
||||
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};
|
||||
|
||||
/// Parse a millis string to a [`Duration`]. Used for arg parsing.
|
||||
|
@ -23,6 +23,7 @@ which = { version = "4.0.2" }
|
||||
[dependencies]
|
||||
libafl = { path = "../../libafl/", features = ["default", "cmin"] }
|
||||
# libafl = { path = "../../libafl/", features = ["default"] }
|
||||
libafl_bolts = { path = "../../libafl_bolts/" }
|
||||
libafl_targets = { path = "../../libafl_targets/", features = ["sancov_pcguard_hitcounts", "libfuzzer", "sancov_cmplog"] }
|
||||
# TODO Include it only when building cc
|
||||
libafl_cc = { path = "../../libafl_cc/" }
|
||||
|
@ -10,12 +10,6 @@ use std::ptr;
|
||||
use std::{env, path::PathBuf};
|
||||
|
||||
use libafl::{
|
||||
bolts::{
|
||||
current_nanos,
|
||||
rands::StdRand,
|
||||
tuples::{tuple_list, Merge},
|
||||
AsSlice,
|
||||
},
|
||||
corpus::{
|
||||
minimizer::{CorpusMinimizer, StdCorpusMinimizer},
|
||||
Corpus, InMemoryCorpus, OnDiskCorpus,
|
||||
@ -39,6 +33,12 @@ use libafl::{
|
||||
state::{HasCorpus, HasMetadata, StdState},
|
||||
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};
|
||||
|
||||
/// The main fn, `no_mangle` as it is a C main
|
||||
|
@ -20,6 +20,7 @@ which = { version = "4.0.2" }
|
||||
|
||||
[dependencies]
|
||||
libafl = { path = "../../libafl/", features = ["std", "derive", "llmp_compression", "introspection"] }
|
||||
libafl_bolts = { path = "../../libafl_bolts/" }
|
||||
libafl_targets = { path = "../../libafl_targets/", features = ["libfuzzer"] }
|
||||
# TODO Include it only when building cc
|
||||
libafl_cc = { path = "../../libafl_cc/" }
|
||||
|
@ -11,17 +11,8 @@ use std::{env, net::SocketAddr, path::PathBuf};
|
||||
|
||||
use clap::{self, Parser};
|
||||
use libafl::{
|
||||
bolts::{
|
||||
core_affinity::Cores,
|
||||
current_nanos,
|
||||
launcher::Launcher,
|
||||
rands::StdRand,
|
||||
shmem::{ShMemProvider, StdShMemProvider},
|
||||
tuples::{tuple_list, Merge},
|
||||
AsSlice,
|
||||
},
|
||||
corpus::{Corpus, InMemoryCorpus, OnDiskCorpus},
|
||||
events::EventConfig,
|
||||
events::{launcher::Launcher, EventConfig},
|
||||
executors::{inprocess::InProcessExecutor, ExitKind, TimeoutExecutor},
|
||||
feedback_or, feedback_or_fast,
|
||||
feedbacks::{CrashFeedback, MaxMapFeedback, TimeFeedback, TimeoutFeedback},
|
||||
@ -38,6 +29,14 @@ use libafl::{
|
||||
state::{HasCorpus, HasMetadata, StdState},
|
||||
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};
|
||||
|
||||
fn timeout_from_millis_str(time: &str) -> Result<Duration, Error> {
|
||||
|
@ -20,6 +20,7 @@ which = { version = "4.0.2" }
|
||||
|
||||
[dependencies]
|
||||
libafl = { path = "../../libafl/", features = ["std", "derive", "llmp_compression", "introspection"] }
|
||||
libafl_bolts = { path = "../../libafl_bolts/" }
|
||||
libafl_targets = { path = "../../libafl_targets/", features = ["sancov_pcguard_hitcounts", "libfuzzer"] }
|
||||
# TODO Include it only when building cc
|
||||
libafl_cc = { path = "../../libafl_cc/" }
|
||||
|
@ -11,17 +11,8 @@ use std::{env, net::SocketAddr, path::PathBuf};
|
||||
|
||||
use clap::{self, Parser};
|
||||
use libafl::{
|
||||
bolts::{
|
||||
core_affinity::Cores,
|
||||
current_nanos,
|
||||
launcher::Launcher,
|
||||
rands::StdRand,
|
||||
shmem::{ShMemProvider, StdShMemProvider},
|
||||
tuples::{tuple_list, Merge},
|
||||
AsSlice,
|
||||
},
|
||||
corpus::{Corpus, InMemoryCorpus, OnDiskCorpus},
|
||||
events::EventConfig,
|
||||
events::{launcher::Launcher, EventConfig},
|
||||
executors::{inprocess::InProcessExecutor, ExitKind, TimeoutExecutor},
|
||||
feedback_or, feedback_or_fast,
|
||||
feedbacks::{CrashFeedback, MaxMapFeedback, TimeFeedback, TimeoutFeedback},
|
||||
@ -38,6 +29,14 @@ use libafl::{
|
||||
state::{HasCorpus, HasMetadata, StdState},
|
||||
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};
|
||||
|
||||
/// Parse a millis string to a [`Duration`]. Used for arg parsing.
|
||||
|
@ -20,6 +20,7 @@ which = { version = "4.0.2" }
|
||||
|
||||
[dependencies]
|
||||
libafl = { path = "../../libafl/" }
|
||||
libafl_bolts = { path = "../../libafl_bolts/" }
|
||||
libafl_targets = { path = "../../libafl_targets/", features = ["sancov_pcguard_hitcounts", "libfuzzer"] }
|
||||
# TODO Include it only when building cc
|
||||
libafl_cc = { path = "../../libafl_cc/" }
|
||||
|
@ -11,17 +11,8 @@ use std::{env, net::SocketAddr, path::PathBuf};
|
||||
|
||||
use clap::{self, Parser};
|
||||
use libafl::{
|
||||
bolts::{
|
||||
core_affinity::Cores,
|
||||
current_nanos,
|
||||
launcher::Launcher,
|
||||
rands::StdRand,
|
||||
shmem::{ShMemProvider, StdShMemProvider},
|
||||
tuples::{tuple_list, Merge},
|
||||
AsSlice,
|
||||
},
|
||||
corpus::{Corpus, InMemoryOnDiskCorpus, OnDiskCorpus},
|
||||
events::{EventConfig, EventRestarter, LlmpRestartingEventManager},
|
||||
events::{launcher::Launcher, EventConfig, EventRestarter, LlmpRestartingEventManager},
|
||||
executors::{inprocess::InProcessExecutor, ExitKind, TimeoutExecutor},
|
||||
feedback_or, feedback_or_fast,
|
||||
feedbacks::{CrashFeedback, MaxMapFeedback, TimeFeedback, TimeoutFeedback},
|
||||
@ -38,6 +29,14 @@ use libafl::{
|
||||
state::{HasCorpus, HasMetadata, StdState},
|
||||
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};
|
||||
|
||||
/// Parse a millis string to a [`Duration`]. Used for arg parsing.
|
||||
|
@ -23,6 +23,7 @@ which = { version = "4.0.2" }
|
||||
[dependencies]
|
||||
libafl = { path = "../../libafl/", features = ["default", "tcp_manager"] }
|
||||
# libafl = { path = "../../libafl/", features = ["default"] }
|
||||
libafl_bolts = { path = "../../libafl_bolts/" }
|
||||
libafl_targets = { path = "../../libafl_targets/", features = ["sancov_pcguard_hitcounts", "libfuzzer", "sancov_cmplog"] }
|
||||
# TODO Include it only when building cc
|
||||
libafl_cc = { path = "../../libafl_cc/" }
|
||||
|
@ -10,12 +10,6 @@ use std::ptr;
|
||||
use std::{env, path::PathBuf};
|
||||
|
||||
use libafl::{
|
||||
bolts::{
|
||||
current_nanos,
|
||||
rands::StdRand,
|
||||
tuples::{tuple_list, Merge},
|
||||
AsSlice,
|
||||
},
|
||||
corpus::{Corpus, InMemoryCorpus, OnDiskCorpus},
|
||||
events::{tcp::setup_restarting_mgr_tcp, EventConfig, EventRestarter},
|
||||
executors::{inprocess::InProcessExecutor, ExitKind, TimeoutExecutor},
|
||||
@ -36,6 +30,12 @@ use libafl::{
|
||||
state::{HasCorpus, HasMetadata, StdState},
|
||||
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};
|
||||
|
||||
/// The main fn, `no_mangle` as it is a C main
|
||||
|
@ -20,6 +20,7 @@ which = { version = "4.0.2" }
|
||||
|
||||
[dependencies]
|
||||
libafl = { path = "../../libafl/" }
|
||||
libafl_bolts = { path = "../../libafl_bolts/" }
|
||||
libafl_targets = { path = "../../libafl_targets/", features = ["sancov_pcguard_hitcounts", "libfuzzer"] }
|
||||
# TODO Include it only when building cc
|
||||
libafl_cc = { path = "../../libafl_cc/" }
|
||||
|
@ -7,7 +7,6 @@ static GLOBAL: MiMalloc = MiMalloc;
|
||||
use std::{env, path::PathBuf};
|
||||
|
||||
use libafl::{
|
||||
bolts::{current_nanos, rands::StdRand, tuples::tuple_list, AsSlice},
|
||||
corpus::{Corpus, InMemoryCorpus, OnDiskCorpus},
|
||||
events::{setup_restarting_mgr_std, EventConfig, EventRestarter},
|
||||
executors::{inprocess::InProcessExecutor, ExitKind},
|
||||
@ -22,6 +21,7 @@ use libafl::{
|
||||
state::{HasCorpus, StdState},
|
||||
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};
|
||||
|
||||
const TARGET_SIZE: usize = 4;
|
||||
|
@ -17,6 +17,7 @@ debug = true
|
||||
|
||||
[dependencies]
|
||||
libafl = { path = "../../libafl/" }
|
||||
libafl_bolts = { path = "../../libafl_bolts/" }
|
||||
libafl_targets = { path = "../../libafl_targets/", features = ["sancov_pcguard_edges", "sancov_cmplog", "libfuzzer"] }
|
||||
mimalloc = { version = "*", default-features = false }
|
||||
|
||||
|
@ -7,7 +7,6 @@ static GLOBAL: MiMalloc = MiMalloc;
|
||||
use std::{env, path::PathBuf};
|
||||
|
||||
use libafl::{
|
||||
bolts::{current_nanos, rands::StdRand, tuples::tuple_list, AsSlice},
|
||||
corpus::{Corpus, InMemoryCorpus, OnDiskCorpus},
|
||||
events::{setup_restarting_mgr_std, EventConfig},
|
||||
executors::{inprocess::InProcessExecutor, ExitKind, ShadowExecutor},
|
||||
@ -26,6 +25,7 @@ use libafl::{
|
||||
state::{HasCorpus, StdState},
|
||||
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, CmpLogObserver,
|
||||
};
|
||||
|
@ -17,6 +17,7 @@ debug = true
|
||||
|
||||
[dependencies]
|
||||
libafl = { path = "../../../libafl/", features = ["concolic_mutation"] }
|
||||
libafl_bolts = { path = "../../../libafl_bolts/" }
|
||||
libafl_targets = { path = "../../../libafl_targets/", features = ["sancov_pcguard_edges", "sancov_cmplog", "libfuzzer"] }
|
||||
clap = { version = "4.0", features = ["derive"]}
|
||||
mimalloc = { version = "*", default-features = false }
|
||||
|
@ -13,13 +13,6 @@ use std::{
|
||||
|
||||
use clap::{self, Parser};
|
||||
use libafl::{
|
||||
bolts::{
|
||||
current_nanos,
|
||||
rands::StdRand,
|
||||
shmem::{ShMem, ShMemProvider, StdShMemProvider},
|
||||
tuples::{tuple_list, Named},
|
||||
AsMutSlice, AsSlice,
|
||||
},
|
||||
corpus::{Corpus, InMemoryCorpus, OnDiskCorpus},
|
||||
events::{setup_restarting_mgr_std, EventConfig},
|
||||
executors::{
|
||||
@ -49,6 +42,13 @@ use libafl::{
|
||||
state::{HasCorpus, StdState},
|
||||
Error,
|
||||
};
|
||||
use libafl_bolts::{
|
||||
current_nanos,
|
||||
rands::StdRand,
|
||||
shmem::{ShMem, ShMemProvider, StdShMemProvider},
|
||||
tuples::tuple_list,
|
||||
AsMutSlice, AsSlice, Named,
|
||||
};
|
||||
use libafl_targets::{
|
||||
libfuzzer_initialize, libfuzzer_test_one_input, std_edges_map_observer, CmpLogObserver,
|
||||
};
|
||||
|
@ -18,6 +18,7 @@ debug = true
|
||||
|
||||
[dependencies]
|
||||
libafl = { path = "../../libafl/" }
|
||||
libafl_bolts = { path = "../../libafl_bolts/" }
|
||||
libafl_targets = { path = "../../libafl_targets/", features = ["sancov_pcguard_edges", "sancov_cmplog", "libfuzzer"] }
|
||||
libafl_sugar = { path = "../../libafl_sugar/" }
|
||||
mimalloc = { version = "*", default-features = false }
|
||||
|
@ -6,7 +6,7 @@ static GLOBAL: MiMalloc = MiMalloc;
|
||||
|
||||
use std::{env, path::PathBuf};
|
||||
|
||||
use libafl::bolts::core_affinity::Cores;
|
||||
use libafl_bolts::core_affinity::Cores;
|
||||
use libafl_sugar::InMemoryBytesCoverageSugar;
|
||||
use libafl_targets::{libfuzzer_initialize, libfuzzer_test_one_input};
|
||||
|
||||
|
@ -15,6 +15,7 @@ debug = true
|
||||
|
||||
[dependencies]
|
||||
libafl = { path = "../../libafl/" }
|
||||
libafl_bolts = { path = "../../libafl_bolts/" }
|
||||
libafl_targets = { path = "../../libafl_targets/", features = ["libfuzzer", "sancov_pcguard_edges"] }
|
||||
libafl_cc = { path = "../../libafl_cc/" }
|
||||
|
||||
|
@ -2,12 +2,6 @@ use core::time::Duration;
|
||||
use std::{env, path::PathBuf};
|
||||
|
||||
use libafl::{
|
||||
bolts::{
|
||||
current_nanos,
|
||||
rands::StdRand,
|
||||
tuples::{tuple_list, Merge},
|
||||
AsSlice,
|
||||
},
|
||||
corpus::{Corpus, InMemoryCorpus, OnDiskCorpus},
|
||||
events::{setup_restarting_mgr_std, EventConfig, EventRestarter},
|
||||
executors::{inprocess::InProcessExecutor, ExitKind, TimeoutExecutor},
|
||||
@ -25,6 +19,12 @@ use libafl::{
|
||||
state::{HasCorpus, StdState},
|
||||
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};
|
||||
#[no_mangle]
|
||||
pub extern "C" fn libafl_main() {
|
||||
|
@ -21,6 +21,7 @@ debug = true
|
||||
|
||||
[dependencies]
|
||||
libafl = { path = "../../libafl/", features = ["default", "nautilus"] }
|
||||
libafl_bolts = { path = "../../libafl_bolts/" }
|
||||
libafl_targets = { path = "../../libafl_targets/", features = ["sancov_pcguard_hitcounts", "libfuzzer"] }
|
||||
# TODO Include it only when building cc
|
||||
libafl_cc = { path = "../../libafl_cc/" }
|
||||
|
@ -8,16 +8,8 @@ use std::{env, net::SocketAddr, path::PathBuf, time::Duration};
|
||||
|
||||
use clap::{self, Parser};
|
||||
use libafl::{
|
||||
bolts::{
|
||||
core_affinity::Cores,
|
||||
current_nanos,
|
||||
launcher::Launcher,
|
||||
rands::StdRand,
|
||||
shmem::{ShMemProvider, StdShMemProvider},
|
||||
tuples::tuple_list,
|
||||
},
|
||||
corpus::{InMemoryCorpus, OnDiskCorpus},
|
||||
events::{llmp::LlmpEventConverter, EventConfig},
|
||||
events::{launcher::Launcher, llmp::LlmpEventConverter, EventConfig},
|
||||
executors::{inprocess::InProcessExecutor, ExitKind},
|
||||
feedback_or,
|
||||
feedbacks::{CrashFeedback, MaxMapFeedback, NautilusChunksMetadata, NautilusFeedback},
|
||||
@ -34,6 +26,13 @@ use libafl::{
|
||||
state::{HasMetadata, StdState},
|
||||
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};
|
||||
|
||||
/// 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
Loading…
x
Reference in New Issue
Block a user