Module libafl_bolts::shmem

source ·
Expand description

A generic shared memory region to be used by any functions (queues or feedbacks too.)

Re-exports§

Modules§

Structs§

  • A ShMemService dummy, that does nothing on start. Drop in for targets that don’t need a server for ref counting and page creation.
  • A Reference Counted shared map, that can use internal mutability. Useful if the ShMemProvider needs to keep local state.
  • A Reference Counted ShMemProvider, that can use internal mutability. Useful if the ShMemProvider needs to keep local state.
  • A cursor around ShMem that immitates std::io::Cursor. Notably, this implements Write for ShMem in std environments.
  • Description of a shared map. May be used to restore the map by id.
  • An id associated with a given shared memory mapping (ShMem), which can be used to establish shared-mappings between proccesses. Id is a file descriptor if you use MmapShMem or AshmemShMem. That means you have to use shmem server to access to the shmem segment from other processes in these cases. On the other hand, id is a unique identifier if you use CommonUnixShMem or Win32ShMem. In these two cases, you can use shmat(id) or OpenFileMappingA(id) to gain access to the shmem

Traits§

  • A ShMem is an interface to shared maps. They are the backbone of crate::llmp for inter-process communication. All you need for scaling on a new target is to implement this interface, as well as the respective ShMemProvider.
  • A ShMemProvider provides access to shared maps. They are the backbone of crate::llmp for inter-process communication. All you need for scaling on a new target is to implement this interface, as well as the respective ShMem.

Type Aliases§