angr.analyses.vsa_ddg

class angr.analyses.vsa_ddg.DefUseChain

Bases: object

Stand for a def-use chain. it is generated by the DDG itself.

__init__(def_loc, use_loc, variable)

Constructor.

Parameters:
  • def_loc

  • use_loc

  • variable

Returns:

class angr.analyses.vsa_ddg.VSA_DDG

Bases: Analysis

A Data dependency graph based on VSA states. That means we don’t (and shouldn’t) expect any symbolic expressions.

__init__(vfg=None, start_addr=None, interfunction_level=0, context_sensitivity_level=2, keep_data=False)

Constructor.

Parameters:
  • vfg – An already constructed VFG. If not specified, a new VFG will be created with other specified parameters. vfg and start_addr cannot both be unspecified.

  • start_addr – The address where to start the analysis (typically, a function’s entry point).

  • interfunction_level – See VFG analysis.

  • context_sensitivity_level – See VFG analysis.

  • keep_data – Whether we keep set of addresses as edges in the graph, or just the cardinality of the sets, which can be used as a “weight”.

get_predecessors(code_location)

Returns all predecessors of code_location.

Parameters:

code_location – A CodeLocation instance.

Returns:

A list of all predecessors.

get_all_nodes(simrun_addr, stmt_idx)

Get all DDG nodes matching the given basic block address and statement index.