angr.concretization_strategies

class angr.concretization_strategies.SimConcretizationStrategy

Bases: object

Concretization strategies control the resolution of symbolic memory indices in SimuVEX. By subclassing this class and setting it as a concretization strategy (on state.memory.read_strategies and state.memory.write_strategies), SimuVEX’s memory index concretization behavior can be modified.

__init__(filter=None, exact=True)

Initializes the base SimConcretizationStrategy.

Parameters:
  • filter – A function, taking arguments of (SimMemory, claripy.AST) that determines if this strategy can handle resolving the provided AST.

  • exact – A flag (default: True) that determines if the convenience resolution functions provided by this class use exact or approximate resolution.

concretize(memory, addr, **kwargs)

Concretizes the address into a list of values. If this strategy cannot handle this address, returns None.

copy()

Returns a copy of the strategy, if there is data that should be kept separate between states. If not, returns self.

merge(others)

Merges this strategy with others (if there is data that should be kept separate between states. If not, is a no-op.

class angr.concretization_strategies.SimConcretizationStrategyAny

Bases: SimConcretizationStrategy

Concretization strategy that returns any single solution.

class angr.concretization_strategies.SimConcretizationStrategyControlledData

Bases: SimConcretizationStrategy

Concretization strategy that constraints the address to controlled data. Controlled data consists of symbolic data and the addresses given as arguments. memory.

class angr.concretization_strategies.SimConcretizationStrategyEval

Bases: SimConcretizationStrategy

Concretization strategy that resolves an address into some limited number of solutions. Always handles the concretization, but only returns a maximum of limit number of solutions. Therefore, should only be used as the fallback strategy.

class angr.concretization_strategies.SimConcretizationStrategyMax

Bases: SimConcretizationStrategy

Concretization strategy that returns the maximum address.

class angr.concretization_strategies.SimConcretizationStrategyNonzero

Bases: SimConcretizationStrategy

Concretization strategy that returns any non-zero solution.

class angr.concretization_strategies.SimConcretizationStrategyNonzeroRange

Bases: SimConcretizationStrategy

Concretization strategy that resolves a range in a non-zero location.

class angr.concretization_strategies.SimConcretizationStrategyNorepeats

Bases: SimConcretizationStrategy

Concretization strategy that resolves addresses, without repeating.

class angr.concretization_strategies.SimConcretizationStrategyNorepeatsRange

Bases: SimConcretizationStrategy

Concretization strategy that resolves a range, with no repeats.

class angr.concretization_strategies.SimConcretizationStrategyRange

Bases: SimConcretizationStrategy

Concretization strategy that resolves addresses to a range.

class angr.concretization_strategies.SimConcretizationStrategySingle

Bases: SimConcretizationStrategy

Concretization strategy that ensures a single solution for an address.

class angr.concretization_strategies.SimConcretizationStrategySolutions

Bases: SimConcretizationStrategy

Concretization strategy that resolves an address into some limited number of solutions.

class angr.concretization_strategies.SimConcretizationStrategyUnlimitedRange

Bases: SimConcretizationStrategy

Concretization strategy that resolves addresses to a range without checking if the number of possible addresses is within the limit.

Submodules