miasm
Reverse engineering framework
miasm.analysis.depgraph.DependencyGraph Class Reference
Inheritance diagram for miasm.analysis.depgraph.DependencyGraph:
Collaboration diagram for miasm.analysis.depgraph.DependencyGraph:

Public Member Functions

def __init__ (self, ircfg, implicit=False, apply_simp=True, follow_mem=True, follow_call=True)
 
def get (self, loc_key, elements, line_nb, heads)
 
def get_from_depnodes (self, depnodes, heads)
 

Static Public Member Functions

def do_follow (exprs, follow_mem, follow_call)
 

Detailed Description

Implementation of a dependency graph

A dependency graph contains DependencyNode as nodes. The oriented edges
stand for a dependency.
The dependency graph is made of the lines of a group of IRblock
*explicitly* or *implicitly* involved in the equation of given element.

Constructor & Destructor Documentation

◆ __init__()

def miasm.analysis.depgraph.DependencyGraph.__init__ (   self,
  ircfg,
  implicit = False,
  apply_simp = True,
  follow_mem = True,
  follow_call = True 
)
Create a DependencyGraph linked to @ircfg

@ircfg: IRCFG instance
@implicit: (optional) Track IRDst for each block in the resulting path

Following arguments define filters used to generate dependencies
@apply_simp: (optional) Apply expr_simp_explicit
@follow_mem: (optional) Track memory syntactically
@follow_call: (optional) Track through "call"
Here is the call graph for this function:

Member Function Documentation

◆ do_follow()

def miasm.analysis.depgraph.DependencyGraph.do_follow (   exprs,
  follow_mem,
  follow_call 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ get()

def miasm.analysis.depgraph.DependencyGraph.get (   self,
  loc_key,
  elements,
  line_nb,
  heads 
)
Compute the dependencies of @elements at line number @line_nb in
the block named @loc_key in the current IRCFG, before the execution of
this line. Dependency check stop if one of @heads is reached
@loc_key: LocKey instance
@element: set of Expr instances
@line_nb: int
@heads: set of LocKey instances
Return an iterator on DiGraph(DependencyNode)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_from_depnodes()

def miasm.analysis.depgraph.DependencyGraph.get_from_depnodes (   self,
  depnodes,
  heads 
)
Alias for the get() method. Use the attributes of @depnodes as
argument.
PRE: Loc_Keys and lines of depnodes have to be equals
@depnodes: set of DependencyNode instances
@heads: set of LocKey instances
Here is the call graph for this function:

The documentation for this class was generated from the following file: