![]() |
miasm
Reverse engineering framework
|
Public Member Functions | |
def | __init__ (self, *args, **kwargs) |
def | __rshift__ (self, joker) |
def | __add__ (self, graph) |
def | match (self, graph) |
![]() | |
def | __init__ (self) |
def | __repr__ (self) |
def | nodes (self) |
def | edges (self) |
def | merge (self, graph) |
def | copy (self) |
def | __eq__ (self, graph) |
def | __ne__ (self, other) |
def | add_node (self, node) |
def | del_node (self, node) |
def | add_edge (self, src, dst) |
def | add_uniq_edge (self, src, dst) |
def | del_edge (self, src, dst) |
def | discard_edge (self, src, dst) |
def | predecessors_iter (self, node) |
def | predecessors (self, node) |
def | successors_iter (self, node) |
def | successors (self, node) |
def | leaves_iter (self) |
def | leaves (self) |
def | heads_iter (self) |
def | heads (self) |
def | find_path (self, src, dst, cycles_count=0, done=None) |
def | find_path_from_src (self, src, dst, cycles_count=0, done=None) |
def | nodeid (self, node) |
def | node2lines (self, node) |
def | node_attr (self, node) |
def | edge_attr (self, src, dst) |
def | dot (self) |
def | predecessors_stop_node_iter (self, node, head) |
def | reachable_sons (self, head) |
def | reachable_parents (self, leaf) |
def | reachable_parents_stop_node (self, leaf, head) |
def | compute_dominators (self, head) |
def | compute_postdominators (self, leaf) |
def | compute_dominator_tree (self, head) |
def | walk_dominators (self, node, dominators) |
def | walk_postdominators (self, node, postdominators) |
def | compute_immediate_dominators (self, head) |
def | compute_immediate_postdominators (self, tail) |
def | compute_dominance_frontier (self, head) |
def | walk_breadth_first_forward (self, head) |
def | walk_depth_first_forward (self, head) |
def | walk_breadth_first_backward (self, head) |
def | walk_depth_first_backward (self, head) |
def | has_loop (self) |
def | compute_natural_loops (self, head) |
def | compute_back_edges (self, head) |
def | compute_strongly_connected_components (self) |
def | compute_weakly_connected_components (self) |
def | replace_node (self, node, new_node) |
Additional Inherited Members | |
![]() | |
DotCellDescription | |
MatchGraph intends to be the counterpart of match_expr, but for DiGraph This class provides API to match a given DiGraph pattern, with addidionnal restrictions. The implemented algorithm is a naive approach. The recommended way to instantiate a MatchGraph is the use of MatchGraphJoker.
def miasm.core.graph.MatchGraph.__init__ | ( | self, | |
* | args, | ||
** | kwargs | ||
) |
def miasm.core.graph.MatchGraph.__add__ | ( | self, | |
graph | |||
) |
Construction helper, merging @graph with self @graph: MatchGraph instance
Reimplemented from miasm.core.graph.DiGraph.
def miasm.core.graph.MatchGraph.__rshift__ | ( | self, | |
joker | |||
) |
Construction helper, adding @joker to the current graph as a son of _last_node @joker: MatchGraphJoker instance
def miasm.core.graph.MatchGraph.match | ( | self, | |
graph | |||
) |
Naive subgraph matching between graph and self. Iterator on matching solution, as dictionary MatchGraphJoker -> @graph @graph: DiGraph instance In order to obtained correct and complete results, @graph must be connected.