![]() |
miasm
Reverse engineering framework
|


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) |
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.
| 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"

|
static |


| 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)


| 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
