miasm
Reverse engineering framework
|
Public Member Functions | |
def | __init__ (self, irdst, loc_db, blocks=None, *args, **kwargs) |
def | IRDst (self) |
def | blocks (self) |
def | add_irblock (self, irblock) |
def | node2lines (self, node) |
def | edge_attr (self, src, dst) |
def | node_attr (self, node) |
def | dot (self, offset=False) |
def | get_loc_key (self, addr) |
def | get_or_create_loc_key (self, addr) |
def | get_block (self, addr) |
def | getby_offset (self, offset) |
def | simplify (self, simplifier) |
def | dst_trackback (self, irb) |
Public Member Functions inherited from miasm.core.graph.DiGraph | |
def | __init__ (self) |
def | __repr__ (self) |
def | nodes (self) |
def | edges (self) |
def | merge (self, graph) |
def | __add__ (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 | 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) |
Public Attributes | |
loc_db | |
Additional Inherited Members | |
Static Public Attributes inherited from miasm.core.graph.DiGraph | |
DotCellDescription | |
DiGraph for IR instances
def miasm.ir.ir.IRCFG.__init__ | ( | self, | |
irdst, | |||
loc_db, | |||
blocks = None , |
|||
* | args, | ||
** | kwargs | ||
) |
Instantiate a IRCFG @loc_db: LocationDB instance @blocks: IR blocks
def miasm.ir.ir.IRCFG.add_irblock | ( | self, | |
irblock | |||
) |
Add the @irblock to the current IRCFG @irblock: IRBlock instance
def miasm.ir.ir.IRCFG.blocks | ( | self | ) |
def miasm.ir.ir.IRCFG.dot | ( | self, | |
offset = False |
|||
) |
@offset: (optional) if set, add the corresponding line number in each node
def miasm.ir.ir.IRCFG.dst_trackback | ( | self, | |
irb | |||
) |
Naive backtracking of IRDst @irb: irbloc instance
def miasm.ir.ir.IRCFG.edge_attr | ( | self, | |
src, | |||
dst | |||
) |
Return a dictionary of attributes for the edge between @src and @dst @src: the source node of the edge @dst: the destination node of the edge
Reimplemented from miasm.core.graph.DiGraph.
def miasm.ir.ir.IRCFG.get_block | ( | self, | |
addr | |||
) |
Returns the irbloc associated to an ExprId/ExprInt/loc_key/int @addr: an ExprId/ExprInt/loc_key/int
def miasm.ir.ir.IRCFG.get_loc_key | ( | self, | |
addr | |||
) |
Transforms an ExprId/ExprInt/loc_key/int into a loc_key @addr: an ExprId/ExprInt/loc_key/int
def miasm.ir.ir.IRCFG.get_or_create_loc_key | ( | self, | |
addr | |||
) |
Transforms an ExprId/ExprInt/loc_key/int into a loc_key If the offset @addr is not in the LocationDB, create it @addr: an ExprId/ExprInt/loc_key/int
def miasm.ir.ir.IRCFG.getby_offset | ( | self, | |
offset | |||
) |
Return the set of loc_keys of irblocks containing @offset @offset: address
def miasm.ir.ir.IRCFG.IRDst | ( | self | ) |
def miasm.ir.ir.IRCFG.node2lines | ( | self, | |
node | |||
) |
Returns an iterator on cells of the dot @node. A DotCellDescription or a list of DotCellDescription are accepted @node: a node of the graph
Reimplemented from miasm.core.graph.DiGraph.
def miasm.ir.ir.IRCFG.node_attr | ( | self, | |
node | |||
) |
Returns a dictionary of the @node's attributes @node: a node of the graph
Reimplemented from miasm.core.graph.DiGraph.
def miasm.ir.ir.IRCFG.simplify | ( | self, | |
simplifier | |||
) |
Simplify expressions in each irblocks @simplifier: ExpressionSimplifier instance
miasm.ir.ir.IRCFG.loc_db |