angr.analyses.data_dep.data_dependency_analysis

Defines analysis that will generate a dynamic data-dependency graph

class angr.analyses.data_dep.data_dependency_analysis.NodalAnnotation

Bases: Annotation

Allows a node to be stored as an annotation to a BV in a DefaultMemory instance

__init__(node)
Parameters:

node (BaseDepNode)

property relocatable: bool

Can not be relocated in a simplification

property eliminatable

Can not be eliminated in a simplification

class angr.analyses.data_dep.data_dependency_analysis.DataDependencyGraphAnalysis

Bases: Analysis

This is a DYNAMIC data dependency graph that utilizes a given SimState to produce a DDG graph that is accurate to the path the program took during execution.

This analysis utilizes the SimActionData objects present in the provided SimState’s action history to generate the dependency graph.

__init__(end_state, start_from=None, end_at=None, block_addrs=None)
Parameters:
  • end_state (SimState) – Simulation state used to extract all SimActionData

  • start_from (int | None) – An address or None, Specifies where to start generation of DDG

  • end_at (int | None) – An address or None, Specifies where to end generation of DDG

  • block_addrs (list[int] | None) – List of block addresses that the DDG analysis should be run on

property graph: DiGraph | None
property simplified_graph: DiGraph | None
property sub_graph: DiGraph | None
get_data_dep(g_node, include_tmp_nodes, backwards)
Return type:

DiGraph | None

Parameters: