![]() |
miasm
Reverse engineering framework
|
Classes | |
| class | SymbExecState |
| class | SymbExecStateFix |
Functions | |
| def | add_state (ircfg, todo, states, addr, state) |
| def | is_expr_cst (ir_arch, expr) |
| def | compute_cst_propagation_states (ir_arch, ircfg, init_addr, init_infos) |
| def | propagate_cst_expr (ir_arch, ircfg, addr, init_infos) |
Variables | |
| LOG_CST_PROPAG = logging.getLogger("cst_propag") | |
| CONSOLE_HANDLER = logging.StreamHandler() | |
| def miasm.analysis.cst_propag.add_state | ( | ircfg, | |
| todo, | |||
| states, | |||
| addr, | |||
| state | |||
| ) |
Add or merge the computed @state for the block at @addr. Update @todo @todo: modified block set @states: dictionary linking a label to its entering state. @addr: address of the considered block @state: computed state

| def miasm.analysis.cst_propag.compute_cst_propagation_states | ( | ir_arch, | |
| ircfg, | |||
| init_addr, | |||
| init_infos | |||
| ) |
Propagate "constant expressions" in a function. The attribute "constant expression" is true if the expression is based on constants or "init" regs values. @ir_arch: IntermediateRepresentation instance @init_addr: analysis start address @init_infos: dictionary linking expressions to their values at @init_addr


| def miasm.analysis.cst_propag.is_expr_cst | ( | ir_arch, | |
| expr | |||
| ) |
Return true if @expr is only composed of ExprInt and init_regs @ir_arch: IR instance @expr: Expression to test
| def miasm.analysis.cst_propag.propagate_cst_expr | ( | ir_arch, | |
| ircfg, | |||
| addr, | |||
| init_infos | |||
| ) |
Propagate "constant expressions" in a @ir_arch. The attribute "constant expression" is true if the expression is based on constants or "init" regs values. @ir_arch: IntermediateRepresentation instance @addr: analysis start address @init_infos: dictionary linking expressions to their values at @init_addr Returns a mapping between replaced Expression and their new values.


| miasm.analysis.cst_propag.CONSOLE_HANDLER = logging.StreamHandler() |
| miasm.analysis.cst_propag.LOG_CST_PROPAG = logging.getLogger("cst_propag") |