miasm
Reverse engineering framework
graph Namespace Reference

Variables

 g = DiGraph()
 
 g1 = DiGraph()
 
 dominators = g1.compute_dominators(1)
 
 g2 = DiGraph()
 
 postdominators = g1.compute_postdominators(6)
 
 idoms = g1.compute_immediate_dominators(1)
 
 frontier = g1.compute_dominance_frontier(1)
 
 g3 = DiGraph()
 
 loops = set([(backedge, frozenset(body)) for backedge, body in g3.compute_natural_loops(1)])
 
 sccs = set([frozenset(scc) for scc in g3.compute_strongly_connected_components()])
 
 graph = DiGraph()
 Check str More...
 
 graph2 = DiGraph()
 
 graph4 = graph.copy()
 
 graph3 = DiGraph()
 
 j1 = MatchGraphJoker(name="dad")
 Build a MatchGraph using MatchGraphJoker. More...
 
 j2 = MatchGraphJoker(name="son")
 Modify restrictions. More...
 
 matcher = j1 >> j2 >> j1
 Check '>>' helper. More...
 
 sols = list(matcher.match(graph))
 
 j3 = MatchGraphJoker(name="sonson", restrict_in=False)
 
 components = graph.compute_weakly_connected_components()
 

Variable Documentation

◆ components

graph.components = graph.compute_weakly_connected_components()

◆ dominators

graph.dominators = g1.compute_dominators(1)

◆ frontier

graph.frontier = g1.compute_dominance_frontier(1)

◆ g

graph.g = DiGraph()

◆ g1

graph.g1 = DiGraph()

◆ g2

graph.g2 = DiGraph()

◆ g3

graph.g3 = DiGraph()

◆ graph

graph.graph = DiGraph()

Check str

Check restrict_in.

Ensure form

Match a simple graph

◆ graph2

graph.graph2 = DiGraph()

◆ graph3

graph.graph3 = DiGraph()

◆ graph4

graph.graph4 = graph.copy()

◆ idoms

graph.idoms = g1.compute_immediate_dominators(1)

◆ j1

graph.j1 = MatchGraphJoker(name="dad")

Build a MatchGraph using MatchGraphJoker.

Check building with 'add' helper.

Check solution combinaison (ie a -> b and b -> a)

◆ j2

graph.j2 = MatchGraphJoker(name="son")

Modify restrictions.

Check filter.

◆ j3

graph.j3 = MatchGraphJoker(name="sonson", restrict_in=False)

◆ loops

graph.loops = set([(backedge, frozenset(body)) for backedge, body in g3.compute_natural_loops(1)])

◆ matcher

graph.matcher = j1 >> j2 >> j1

Check '>>' helper.

◆ postdominators

graph.postdominators = g1.compute_postdominators(6)

◆ sccs

graph.sccs = set([frozenset(scc) for scc in g3.compute_strongly_connected_components()])

◆ sols

graph.sols = list(matcher.match(graph))