parent
02c6cab744
commit
76e4f6031d
@ -1,6 +1,6 @@
|
|||||||
#[cfg(windows)]
|
#[cfg(windows)]
|
||||||
use std::ptr::write_volatile;
|
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},
|
bolts::{current_nanos, rands::StdRand, tuples::tuple_list, AsSlice},
|
||||||
@ -24,10 +24,10 @@ use libafl::{
|
|||||||
|
|
||||||
/// 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];
|
||||||
static mut SIGNALS_PTR: *mut u8=unsafe{SIGNALS.as_mut_ptr()};
|
static mut SIGNALS_PTR: *mut u8 = unsafe { SIGNALS.as_mut_ptr() };
|
||||||
/// Assign a signal to the signals map
|
/// Assign a signal to the signals map
|
||||||
fn signals_set(idx: usize) {
|
fn signals_set(idx: usize) {
|
||||||
unsafe{write(SIGNALS_PTR.add(idx),1)};
|
unsafe { write(SIGNALS_PTR.add(idx), 1) };
|
||||||
}
|
}
|
||||||
|
|
||||||
fn is_sub<T: PartialEq>(mut haystack: &[T], needle: &[T]) -> bool {
|
fn is_sub<T: PartialEq>(mut haystack: &[T], needle: &[T]) -> bool {
|
||||||
@ -82,7 +82,7 @@ pub fn main() {
|
|||||||
};
|
};
|
||||||
|
|
||||||
// Create an observation channel using the signals map
|
// Create an observation channel using the signals map
|
||||||
let observer=unsafe{StdMapObserver::from_mut_ptr("signals",SIGNALS_PTR,SIGNALS.len())};
|
let observer = unsafe { StdMapObserver::from_mut_ptr("signals", SIGNALS_PTR, SIGNALS.len()) };
|
||||||
// Feedback to rate the interestingness of an input
|
// Feedback to rate the interestingness of an input
|
||||||
let mut feedback = MaxMapFeedback::tracking(&observer, false, true);
|
let mut feedback = MaxMapFeedback::tracking(&observer, false, true);
|
||||||
|
|
||||||
|
@ -67,7 +67,7 @@ pub fn main() {
|
|||||||
let mgr = SimpleEventManager::new(monitor);
|
let mgr = SimpleEventManager::new(monitor);
|
||||||
|
|
||||||
// A queue policy to get testcasess from the corpus
|
// A queue policy to get testcasess from the corpus
|
||||||
let scheduler = QueueScheduler::new();
|
let mut scheduler = QueueScheduler::new();
|
||||||
|
|
||||||
// Create the executor for an in-process function with just one observer
|
// Create the executor for an in-process function with just one observer
|
||||||
//let mut executor = InProcessExecutor::new(&mut harness, &mut fuzzer, &mut state, &mut mgr)
|
//let mut executor = InProcessExecutor::new(&mut harness, &mut fuzzer, &mut state, &mut mgr)
|
||||||
|
@ -2,10 +2,10 @@
|
|||||||
//! (As opposed to other, more abstract, inputs, like an Grammar-Based AST Input)
|
//! (As opposed to other, more abstract, inputs, like an Grammar-Based AST Input)
|
||||||
//! See also [the paper on token-level fuzzing](https://www.usenix.org/system/files/sec21-salls.pdf)
|
//! See also [the paper on token-level fuzzing](https://www.usenix.org/system/files/sec21-salls.pdf)
|
||||||
|
|
||||||
#[cfg(feature = "std")]
|
#[cfg(feature = "regex")]
|
||||||
use alloc::string::ToString;
|
use alloc::string::ToString;
|
||||||
use alloc::{borrow::ToOwned, rc::Rc, string::String, vec::Vec};
|
use alloc::{borrow::ToOwned, rc::Rc, string::String, vec::Vec};
|
||||||
#[cfg(feature = "std")]
|
#[cfg(feature = "regex")]
|
||||||
use core::str::from_utf8;
|
use core::str::from_utf8;
|
||||||
use core::{
|
use core::{
|
||||||
cell::RefCell,
|
cell::RefCell,
|
||||||
|
@ -24,7 +24,7 @@ Welcome to `LibAFL`
|
|||||||
clippy::ptr_as_ptr,
|
clippy::ptr_as_ptr,
|
||||||
clippy::missing_panics_doc,
|
clippy::missing_panics_doc,
|
||||||
clippy::missing_docs_in_private_items,
|
clippy::missing_docs_in_private_items,
|
||||||
clippy::module_name_repetitions,
|
clippy::module_name_repetitions
|
||||||
)]
|
)]
|
||||||
#![cfg_attr(not(test), warn(
|
#![cfg_attr(not(test), warn(
|
||||||
missing_debug_implementations,
|
missing_debug_implementations,
|
||||||
|
@ -317,14 +317,15 @@ impl Default for NopMonitor {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(feature = "std")]
|
|
||||||
/// Tracking monitor during fuzzing that just prints to `stdout`.
|
/// Tracking monitor during fuzzing that just prints to `stdout`.
|
||||||
|
#[cfg(feature = "std")]
|
||||||
#[derive(Debug, Clone)]
|
#[derive(Debug, Clone)]
|
||||||
pub struct SimplePrintingMonitor {
|
pub struct SimplePrintingMonitor {
|
||||||
start_time: Duration,
|
start_time: Duration,
|
||||||
client_stats: Vec<ClientStats>,
|
client_stats: Vec<ClientStats>,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[cfg(feature = "std")]
|
||||||
impl Default for SimplePrintingMonitor {
|
impl Default for SimplePrintingMonitor {
|
||||||
fn default() -> Self {
|
fn default() -> Self {
|
||||||
Self {
|
Self {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user