angr.storage.memory_mixins.address_concretization_mixin

class angr.storage.memory_mixins.address_concretization_mixin.MultiwriteAnnotation

Bases: Annotation

property eliminatable

Returns whether this annotation can be eliminated in a simplification.

Returns:

True if eliminatable, False otherwise

property relocateable
class angr.storage.memory_mixins.address_concretization_mixin.AddressConcretizationMixin

Bases: MemoryMixin

The address concretization mixin allows symbolic reads and writes to be handled sanely by dispatching them as a number of conditional concrete reads/writes. It provides a “concretization strategies” interface allowing the process of serializing symbolic addresses into concrete ones to be specified.

__init__(read_strategies=None, write_strategies=None, **kwargs)
concretize_write_addr(addr, strategies=None, condition=None)

Concretizes an address meant for writing.

Parameters:
  • addr – An expression for the address.

  • strategies – A list of concretization strategies (to override the default).

  • condition – Any extra constraints that should be observed when determining address satisfiability

Returns:

A list of concrete addresses.

concretize_read_addr(addr, strategies=None, condition=None)

Concretizes an address meant for reading.

Parameters:
  • addr – An expression for the address.

  • strategies – A list of concretization strategies (to override the default).

Returns:

A list of concrete addresses.

load(addr, size=None, *, condition=None, **kwargs)
store(addr, data, size=None, *, condition=None, **kwargs)
permissions(addr, permissions=None, **kwargs)
map_region(addr, length, permissions, **kwargs)
unmap_region(addr, length, **kwargs)