This is the base class of all Address Spaces. More...
Public Member Functions | |
def | __init__ (self, base, config, _args, _kwargs) |
base is the AS we will be stacking on top of, opts are options which we may use. | |
def | get_config (self) |
Returns the config object used by the vm for use in other vms. | |
def | is_valid_profile (self, profile) |
Determines whether a selected profile is compatible with this address space. | |
def | as_assert |
Duplicate for the assert command (so that optimizations don't disable them) More... | |
def | __eq__ (self, other) |
def | __ne__ (self, other) |
def | read (self, addr, length) |
Read some data from a certain offset. | |
def | zread (self, addr, length) |
Read data from a certain offset padded with where data is not available. | |
def | get_available_addresses (self) |
Return a generator of address ranges as (offset, size) covered by this AS sorted by offset. More... | |
def | is_valid_address (self, _addr) |
Tell us if the address is valid. | |
def | write (self, _addr, _buf) |
def | __getstate__ (self) |
Serialise this address space efficiently. | |
def | __setstate__ (self, state) |
def | address_mask (cls, addr) |
Masks an address value for this address space. | |
def | address_compare (cls, a, b) |
Compares two addresses, a and b, and return -1 if a is less than b, 0 if they're equal and 1 if a is greater than b. | |
def | address_equality (cls, a, b) |
Compare two addresses and returns True if they're the same, or False if they're not. | |
def | physical_space (self) |
Return the underlying physical layer, if there is one. More... | |
Static Public Member Functions | |
def | register_options (config) |
Public Attributes | |
base | |
name | |
profile | |
This is the base class of all Address Spaces.
def volatility.addrspace.BaseAddressSpace.as_assert | ( | self, | |
assertion, | |||
error = None |
|||
) |
Duplicate for the assert command (so that optimizations don't disable them)
It had to be called as_assert, since assert is a keyword
def volatility.addrspace.BaseAddressSpace.get_available_addresses | ( | self | ) |
Return a generator of address ranges as (offset, size) covered by this AS sorted by offset.
The address ranges produced must be disjoint (no overlaps) and not be continuous (there must be a gap between two ranges).
def volatility.addrspace.BaseAddressSpace.physical_space | ( | self | ) |
Return the underlying physical layer, if there is one.
This cycles through the base address spaces and returns the first one that's not an ancestor of a virtual space.