angr.storage.memory_mixins.regioned_memory.region_meta_mixin

class angr.storage.memory_mixins.regioned_memory.region_meta_mixin.Segment

Bases: object

Segment represents a continuous memory region.

__init__(offset, size=0)
class angr.storage.memory_mixins.regioned_memory.region_meta_mixin.AbstractLocation

Bases: object

AbstractLocation represents a location in memory.

__init__(bbl_key, stmt_id, region_id, segment_list=None, region_offset=None, size=None)
property basicblock_key
property statement_id
property region
property segments
update(region_offset, size)
copy()
merge(other)
class angr.storage.memory_mixins.regioned_memory.region_meta_mixin.MemoryRegionMetaMixin

Bases: MemoryMixin

__init__(related_function_addr=None, **kwargs)
property is_stack
property related_function_addr
get_abstract_locations(addr, size)

Get a list of abstract locations that is within the range of [addr, addr + size]

This implementation is pretty slow. But since this method won’t be called frequently, we can live with the bad implementation for now.

Parameters:
  • addr – Starting address of the memory region.

  • size – Size of the memory region, in bytes.

Returns:

A list of covered AbstractLocation objects, or an empty list if there is none.

store(addr, data, size=None, *, bbl_addr=None, stmt_id=None, ins_addr=None, endness=None, **kwargs)
load(addr, size=None, *, bbl_addr=None, stmt_idx=None, ins_addr=None, **kwargs)
dbg_print(indent=0)

Print out debugging information