miasm
Reverse engineering framework
|
Public Member Functions | |
def | __init__ (self) |
def | copy (self) |
def | __eq__ (self, other) |
def | __ne__ (self, other) |
def | may_interfer (self, dsts, src) |
def | get_representative_expr (self, expr) |
def | propagation_allowed (self, expr) |
def | eval_assignblock (self, assignblock) |
def | merge (self, other) |
Public Attributes | |
equivalence_classes | |
undefined | |
Object representing the state of a program at a given point The state is represented using equivalence classes Each assignment can create/destroy equivalence classes. Interferences between expression is computed using `may_interfer` function
def miasm.analysis.data_flow.State.__init__ | ( | self | ) |
def miasm.analysis.data_flow.State.__eq__ | ( | self, | |
other | |||
) |
def miasm.analysis.data_flow.State.__ne__ | ( | self, | |
other | |||
) |
def miasm.analysis.data_flow.State.copy | ( | self | ) |
def miasm.analysis.data_flow.State.eval_assignblock | ( | self, | |
assignblock | |||
) |
Evaluate the @assignblock on the current state @assignblock: AssignBlock instance
def miasm.analysis.data_flow.State.get_representative_expr | ( | self, | |
expr | |||
) |
Replace each sub expression of @expr by its representative element @expr: Expression to analyse
def miasm.analysis.data_flow.State.may_interfer | ( | self, | |
dsts, | |||
src | |||
) |
Return True is @src may interfer with expressions in @dsts @dsts: Set of Expressions @src: expression to test
def miasm.analysis.data_flow.State.merge | ( | self, | |
other | |||
) |
Merge the current state with @other @other: State instance
def miasm.analysis.data_flow.State.propagation_allowed | ( | self, | |
expr | |||
) |
Return True if @expr can be propagated Don't propagate: - Phi nodes - call_func_ret / call_func_stack operants
miasm.analysis.data_flow.State.equivalence_classes |
miasm.analysis.data_flow.State.undefined |