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: 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
2
.gitignore
vendored
@ -56,3 +56,5 @@ __pycache__
|
|||||||
|
|
||||||
libafl_nyx/QEMU-Nyx
|
libafl_nyx/QEMU-Nyx
|
||||||
libafl_nyx/packer
|
libafl_nyx/packer
|
||||||
|
|
||||||
|
.z3-trace
|
||||||
|
30
Cargo.toml
30
Cargo.toml
@ -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]
|
||||||
|
@ -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
|
||||||
|
@ -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" }
|
||||||
|
@ -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")?;
|
let qemu_module = PyModule::new(py, "qemu")?;
|
||||||
#[cfg(target_os = "linux")]
|
|
||||||
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)?;
|
||||||
|
|
||||||
#[cfg(target_os = "linux")]
|
|
||||||
modules.set_item("pylibafl.qemu", qemu_module)?;
|
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")?;
|
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(())
|
||||||
|
@ -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"
|
||||||
|
@ -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"
|
||||||
|
@ -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| {
|
||||||
|
@ -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"
|
||||||
|
@ -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 */
|
||||||
|
|
||||||
|
@ -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 */
|
||||||
|
|
||||||
|
@ -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"
|
||||||
|
@ -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 */
|
||||||
|
|
||||||
|
@ -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
|
||||||
|
|
||||||
|
@ -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.
|
||||||
|
@ -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"
|
||||||
|
@ -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;
|
||||||
|
@ -20,3 +20,4 @@ debug = true
|
|||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
libafl = { path = "../../libafl/" }
|
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 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];
|
||||||
|
@ -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"] }
|
||||||
|
@ -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];
|
||||||
|
@ -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/" }
|
||||||
|
@ -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;
|
||||||
|
@ -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 }
|
||||||
|
|
||||||
|
@ -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};
|
||||||
|
@ -20,3 +20,4 @@ debug = true
|
|||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
libafl = { path = "../../libafl/" }
|
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 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];
|
||||||
|
@ -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
|
||||||
|
@ -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};
|
||||||
|
|
||||||
|
@ -20,3 +20,4 @@ debug = true
|
|||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
libafl = { path = "../../libafl/" }
|
libafl = { path = "../../libafl/" }
|
||||||
|
libafl_bolts = { path = "../../libafl_bolts/" }
|
||||||
|
@ -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() {
|
||||||
|
@ -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]
|
||||||
|
@ -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;
|
||||||
|
@ -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]
|
||||||
|
@ -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;
|
||||||
|
|
||||||
|
@ -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]
|
||||||
|
@ -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;
|
||||||
|
|
||||||
|
@ -18,4 +18,4 @@ cc = "*"
|
|||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
libafl = { path = "../../../libafl/" }
|
libafl = { path = "../../../libafl/" }
|
||||||
|
libafl_bolts = { path = "../../../libafl_bolts/" }
|
||||||
|
@ -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() {
|
||||||
|
@ -15,3 +15,4 @@ opt-level = 3
|
|||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
libafl = { path = "../../../libafl/" }
|
libafl = { path = "../../../libafl/" }
|
||||||
|
libafl_bolts = { path = "../../../libafl_bolts/" }
|
||||||
|
@ -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() {
|
||||||
|
@ -19,3 +19,4 @@ debug = true
|
|||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
libafl = { path = "../../../libafl/" }
|
libafl = { path = "../../../libafl/" }
|
||||||
|
libafl_bolts = { path = "../../../libafl_bolts/" }
|
||||||
|
@ -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() {
|
||||||
|
@ -19,3 +19,4 @@ debug = true
|
|||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
libafl = { path = "../../../libafl/" }
|
libafl = { path = "../../../libafl/" }
|
||||||
|
libafl_bolts = { path = "../../../libafl_bolts/" }
|
||||||
|
@ -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];
|
||||||
|
@ -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"
|
||||||
|
@ -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
|
||||||
|
@ -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"
|
||||||
|
@ -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
|
||||||
|
@ -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"] }
|
||||||
|
@ -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,
|
||||||
|
@ -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"] }
|
||||||
|
@ -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)]
|
||||||
|
@ -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"] }
|
||||||
|
@ -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,
|
||||||
|
@ -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/" }
|
||||||
|
@ -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::{
|
||||||
|
@ -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"] }
|
||||||
|
@ -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},
|
||||||
|
@ -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"
|
||||||
|
@ -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() {
|
||||||
|
@ -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"
|
@ -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 =
|
||||||
|
@ -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"] }
|
||||||
|
@ -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},
|
||||||
|
@ -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/" }
|
||||||
|
@ -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::{
|
||||||
|
@ -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"] }
|
||||||
|
|
||||||
|
@ -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,
|
||||||
|
@ -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/" }
|
||||||
|
@ -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,
|
||||||
};
|
};
|
||||||
|
@ -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/" }
|
||||||
|
@ -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
|
||||||
|
@ -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/" }
|
||||||
|
@ -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,
|
||||||
};
|
};
|
||||||
|
@ -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/" }
|
||||||
|
@ -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.
|
||||||
|
@ -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/" }
|
||||||
|
@ -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
|
||||||
|
@ -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/" }
|
||||||
|
@ -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> {
|
||||||
|
@ -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/" }
|
||||||
|
@ -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.
|
||||||
|
@ -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/" }
|
||||||
|
@ -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.
|
||||||
|
@ -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/" }
|
||||||
|
@ -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
|
||||||
|
@ -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/" }
|
||||||
|
@ -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;
|
||||||
|
@ -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 }
|
||||||
|
|
||||||
|
@ -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,
|
||||||
};
|
};
|
||||||
|
@ -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 }
|
||||||
|
@ -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,
|
||||||
};
|
};
|
||||||
|
@ -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 }
|
||||||
|
@ -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};
|
||||||
|
|
||||||
|
@ -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/" }
|
||||||
|
|
||||||
|
@ -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() {
|
||||||
|
@ -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/" }
|
||||||
|
@ -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
Loading…
x
Reference in New Issue
Block a user