Memory module
Modeling a process's main memory.
This module contains classes that simulates the main memory of a process. The main relevant class to use as a user is MemEngine. It basically models a flattened memory address space (0x0
to 0xffffffffffffffff)
in which we can map/delete memory segments, and perform read/write operations.
❱ Classes
- class maat::MemStatusBitmap
- class maat::MemConcreteBuffer
- class maat::MemAbstractBuffer
- class maat::MemSegment
- class maat::SymbolicMemWrite
- Represents a symbolic pointer memory write.
- class maat::SimpleInterval
- Class used internally for symbolic memory management.
- class maat::IntervalTree
- Class used internally for symbolic memory management.
- class maat::SymbolicMemEngine
- Dedicated memory engine handling the 'symbolic' memory state resulting from symbolic pointer writes.
- class maat::MemEngine
- class maat::PageSet
- A set of contiguous memory pages.
- class maat::MemPageManager
- Basic manager for page permissions.
- class maat::MemMap
- A memory mapping.
- class maat::MemMapManager
- Basic manager for page permissions.
❱ Typedefs
❱ Functions
- auto reserved_memory(MemEngine& mem) -> addr_t
- This helper function returns the start address of a segment of size 0x1000 with RW permission named "Reserved". This segment is used internally to emulate some instructions/syscalls. If the segment doesn't yet exist it is created.