angr.knowledge_plugins.propagations

class angr.knowledge_plugins.propagations.PropagationManager

Bases: KnowledgeBasePlugin

Manages the results of Propagator, including intermediate results for unfinished Propagation runs.

__init__(kb)
exists(prop_key)

Internal function to check if a func, specified as a CodeLocation exists in our known propagations

Parameters:

prop_key (tuple) – A key of the propagation result.

Return type:

bool

Returns:

Whether such a key exists or not.

update(prop_key, model)

Add the replacements to known propagations

Parameters:
  • prop_key (tuple) – A key of the propagation result.

  • model (PropagationModel) – The propagation result to store

Return type:

None

get(prop_key, default=None)

Gets the replacements for a specified function location. If the replacement does not exist in the known propagations, it returns None.

Parameters:
  • prop_key – A key of the propagation result.

  • default – The default value to return if the prop_key does not exist in the cache.

Return type:

PropagationModel

Returns:

Dict or None

copy()
discard_by_prefix(prefix)
Parameters:

prefix (str)

class angr.knowledge_plugins.propagations.PropagationModel

Bases: Serializable

This class stores the propagation result that comes out of Propagator.

__init__(prop_key, node_iterations=None, states=None, block_initial_reg_values=None, replacements=None, equivalence=None, function=None, input_states=None, function_block_count=None)
Parameters:
key
node_iterations
input_states
states
block_initial_reg_values
replacements
equivalence
graph_visitor
function_block_count
downsize()
block_beginning_state(block_addr)
Return type:

PropagatorState

Submodules