![]() |
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 |