angr.storage.memory_mixins.paged_memory.paged_memory_mixin

class angr.storage.memory_mixins.paged_memory.paged_memory_mixin.PagedMemoryMixin

Bases: MemoryMixin[int | BV | SimActionObject, BV, int | BV | SimActionObject], Generic

A bottom-level storage mechanism. Dispatches reads to individual pages, the type of which is the PAGE_TYPE class variable.

SUPPORTS_CONCRETE_LOAD: bool = True
PAGE_TYPE: type[PageType]
__init__(page_size=4096, default_permissions=3, permissions_map=None, page_kwargs=None, **kwargs)
load(addr, size=None, *, endness=None, **kwargs)
Parameters:
  • addr (int)

  • size (int | None)

store(addr, data, size=None, *, endness=None, **kwargs)
Parameters:
  • addr (int)

  • size (int | None)

compare(other)
Return type:

bool

Parameters:

other (PagedMemoryMixin)

permissions(addr, permissions=None, **kwargs)
map_region(addr, length, permissions, *, init_zero=False, **kwargs)
unmap_region(addr, length, **kwargs)
changed_bytes(other)
Return type:

set[int]

changed_pages(other)
Return type:

dict[int, set[int] | None]

flush_pages(white_list)

Flush all pages not included in the white_list by removing their pages. Note, this will not wipe them from memory if they were backed by a memory_backer, it will simply reset them to their initial state. Returns the list of pages that were cleared consisting of (addr, length) tuples. :type white_list: :param white_list: white list of regions in the form of (start, end) to exclude from the flush :return: a list of memory page ranges that were flushed :rtype: list

class angr.storage.memory_mixins.paged_memory.paged_memory_mixin.LabeledPagesMixin

Bases: PagedMemoryMixin

load_with_labels(addr, size=None, endness=None, **kwargs)
Return type:

tuple[Base, tuple[tuple[int, int, int, Any]]]

Parameters:
  • addr (int)

  • size (int | None)

class angr.storage.memory_mixins.paged_memory.paged_memory_mixin.ListPagesMixin

Bases: PagedMemoryMixin

PAGE_TYPE

alias of ListPage

class angr.storage.memory_mixins.paged_memory.paged_memory_mixin.MVListPagesMixin

Bases: PagedMemoryMixin

PAGE_TYPE

alias of MVListPage

__init__(*args, skip_missing_values_during_merging=False, **kwargs)
class angr.storage.memory_mixins.paged_memory.paged_memory_mixin.ListPagesWithLabelsMixin

Bases: LabeledPagesMixin, ListPagesMixin

class angr.storage.memory_mixins.paged_memory.paged_memory_mixin.MVListPagesWithLabelsMixin

Bases: LabeledPagesMixin, MVListPagesMixin

class angr.storage.memory_mixins.paged_memory.paged_memory_mixin.UltraPagesMixin

Bases: PagedMemoryMixin

PAGE_TYPE

alias of UltraPage