Struct libafl::executors::forkserver::ForkserverExecutor
source · [−]pub struct ForkserverExecutor<I, OT, S, SP> where
OT: Debug,
SP: ShMemProvider, { /* private fields */ }
Expand description
This Executor
can run binaries compiled for AFL/AFL++ that make use of a forkserver.
Shared memory feature is also available, but you have to set things up in your code.
Please refer to AFL++’s docs. https://github.com/AFLplusplus/AFLplusplus/blob/stable/instrumentation/README.persistent_mode.md
Implementations
sourceimpl ForkserverExecutor<(), (), (), StdShMemProvider>
impl ForkserverExecutor<(), (), (), StdShMemProvider>
sourcepub fn builder() -> ForkserverExecutorBuilder<'static, StdShMemProvider>
pub fn builder() -> ForkserverExecutorBuilder<'static, StdShMemProvider>
Builder for ForkserverExecutor
sourceimpl<I, OT, S, SP> ForkserverExecutor<I, OT, S, SP> where
I: Input + HasTargetBytes,
OT: ObserversTuple<I, S>,
SP: ShMemProvider,
impl<I, OT, S, SP> ForkserverExecutor<I, OT, S, SP> where
I: Input + HasTargetBytes,
OT: ObserversTuple<I, S>,
SP: ShMemProvider,
sourcepub fn forkserver(&self) -> &Forkserver
pub fn forkserver(&self) -> &Forkserver
The Forkserver
instance.
sourcepub fn input_file(&self) -> &InputFile
pub fn input_file(&self) -> &InputFile
Trait Implementations
sourceimpl<I, OT, S, SP> Debug for ForkserverExecutor<I, OT, S, SP> where
OT: Debug,
SP: ShMemProvider,
impl<I, OT, S, SP> Debug for ForkserverExecutor<I, OT, S, SP> where
OT: Debug,
SP: ShMemProvider,
sourceimpl<EM, I, OT, S, SP, Z> Executor<EM, I, S, Z> for ForkserverExecutor<I, OT, S, SP> where
I: Input + HasTargetBytes,
OT: ObserversTuple<I, S>,
SP: ShMemProvider,
impl<EM, I, OT, S, SP, Z> Executor<EM, I, S, Z> for ForkserverExecutor<I, OT, S, SP> where
I: Input + HasTargetBytes,
OT: ObserversTuple<I, S>,
SP: ShMemProvider,
sourcefn run_target(
&mut self,
_fuzzer: &mut Z,
_state: &mut S,
_mgr: &mut EM,
input: &I
) -> Result<ExitKind, Error>
fn run_target(
&mut self,
_fuzzer: &mut Z,
_state: &mut S,
_mgr: &mut EM,
input: &I
) -> Result<ExitKind, Error>
Instruct the target about the input and run
sourcefn with_observers<OT>(self, observers: OT) -> WithObservers<Self, OT> where
Self: Sized,
OT: ObserversTuple<I, S>,
fn with_observers<OT>(self, observers: OT) -> WithObservers<Self, OT> where
Self: Sized,
OT: ObserversTuple<I, S>,
Wraps this Executor with the given ObserversTuple
to implement HasObservers
. Read more
sourcefn post_run_reset(&mut self)
fn post_run_reset(&mut self)
Custom Reset Handler, e.g., to reset timers
sourceimpl<I, OT, S, SP> HasForkserver for ForkserverExecutor<I, OT, S, SP> where
I: Input + HasTargetBytes,
OT: ObserversTuple<I, S>,
SP: ShMemProvider,
impl<I, OT, S, SP> HasForkserver for ForkserverExecutor<I, OT, S, SP> where
I: Input + HasTargetBytes,
OT: ObserversTuple<I, S>,
SP: ShMemProvider,
type SP = SP
type SP = SP
The ShMemProvider
used for this forkserver’s map
sourcefn forkserver(&self) -> &Forkserver
fn forkserver(&self) -> &Forkserver
The forkserver
sourcefn forkserver_mut(&mut self) -> &mut Forkserver
fn forkserver_mut(&mut self) -> &mut Forkserver
The forkserver, mutable
sourcefn input_file(&self) -> &InputFile
fn input_file(&self) -> &InputFile
The file the forkserver is reading from
sourcefn input_file_mut(&mut self) -> &mut InputFile
fn input_file_mut(&mut self) -> &mut InputFile
The file the forkserver is reading from, mutable
sourceimpl<I, OT, S, SP> HasObservers<I, OT, S> for ForkserverExecutor<I, OT, S, SP> where
I: Input + HasTargetBytes,
OT: ObserversTuple<I, S>,
SP: ShMemProvider,
impl<I, OT, S, SP> HasObservers<I, OT, S> for ForkserverExecutor<I, OT, S, SP> where
I: Input + HasTargetBytes,
OT: ObserversTuple<I, S>,
SP: ShMemProvider,
Auto Trait Implementations
impl<I, OT, S, SP> !RefUnwindSafe for ForkserverExecutor<I, OT, S, SP>
impl<I, OT, S, SP> !Send for ForkserverExecutor<I, OT, S, SP>
impl<I, OT, S, SP> !Sync for ForkserverExecutor<I, OT, S, SP>
impl<I, OT, S, SP> Unpin for ForkserverExecutor<I, OT, S, SP> where
I: Unpin,
OT: Unpin,
S: Unpin,
<SP as ShMemProvider>::ShMem: Unpin,
impl<I, OT, S, SP> !UnwindSafe for ForkserverExecutor<I, OT, S, SP>
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<Tail, T> Prepend<T> for Tail
impl<Tail, T> Prepend<T> for Tail
type PreprendResult = Tail
type PreprendResult = Tail
The Resulting TupleList
, of an Prepend::prepend()
call,
including the prepended entry. Read more
sourcefn prepend(self, value: T) -> (T, <Tail as Prepend<T>>::PreprendResult)
fn prepend(self, value: T) -> (T, <Tail as Prepend<T>>::PreprendResult)
Prepend a value to this tuple, returning a new tuple with prepended value.