![]() |
miasm
Reverse engineering framework
|


Public Member Functions | |
| def | __init__ (self) |
| def | copy (self) |
| def | replace_node (self, old_node, new_node) |
| def | get_classes (self) |
| def | nodes (self) |
| def | __eq__ (self, other) |
| def | __ne__ (self, other) |
| def | __str__ (self) |
| def | add_equivalence (self, node_a, node_b) |
| def | get_master (self, node) |
| def | del_element (self, node) |
| def | del_get_new_master (self, node) |
Public Attributes | |
| index | |
| node_to_class | |
| order | |
Implementation of UnionFind structure __classes: a list of Set of equivalent elements node_to_class: Dictionary linkink an element to its equivalent class order: Dictionary link an element to it's weight The order attributes is used to allow the selection of a representative element of an equivalence class
| def miasm.analysis.data_flow.UnionFind.__init__ | ( | self | ) |
| def miasm.analysis.data_flow.UnionFind.__eq__ | ( | self, | |
| other | |||
| ) |

| def miasm.analysis.data_flow.UnionFind.__ne__ | ( | self, | |
| other | |||
| ) |
| def miasm.analysis.data_flow.UnionFind.__str__ | ( | self | ) |

| def miasm.analysis.data_flow.UnionFind.add_equivalence | ( | self, | |
| node_a, | |||
| node_b | |||
| ) |
Add the new equivalence @node_a == @node_b @node_a is equivalent to @node_b, but @node_b is more representative than @node_a
| def miasm.analysis.data_flow.UnionFind.copy | ( | self | ) |
Return a copy of the object

| def miasm.analysis.data_flow.UnionFind.del_element | ( | self, | |
| node | |||
| ) |
Remove @node for the equivalence classes
| def miasm.analysis.data_flow.UnionFind.del_get_new_master | ( | self, | |
| node | |||
| ) |
Remove @node for the equivalence classes and return it's representative equivalent element @node: Element to delete
| def miasm.analysis.data_flow.UnionFind.get_classes | ( | self | ) |
Return a list of the equivalent classes

| def miasm.analysis.data_flow.UnionFind.get_master | ( | self, | |
| node | |||
| ) |
Return the representative element of the equivalence class containing @node @node: ExprMem or ExprId

| def miasm.analysis.data_flow.UnionFind.nodes | ( | self | ) |

| def miasm.analysis.data_flow.UnionFind.replace_node | ( | self, | |
| old_node, | |||
| new_node | |||
| ) |
Replace the @old_node by the @new_node

| miasm.analysis.data_flow.UnionFind.index |
| miasm.analysis.data_flow.UnionFind.node_to_class |
| miasm.analysis.data_flow.UnionFind.order |