![]() |
miasm
Reverse engineering framework
|


Public Member Functions | |
| def | __init__ (self, ircfg, initial_state, state, inputs) |
| def | unresolved (self) |
| def | relevant_nodes (self) |
| def | relevant_loc_keys (self) |
| def | has_loop (self) |
| def | irblock_slice (self, irb, max_line=None) |
| def | emul (self, ir_arch, ctx=None, step=False) |
Public Member Functions inherited from miasm.analysis.depgraph.DependencyState | |
| def | __init__ (self, loc_key, pending, line_nb=None) |
| def | __repr__ (self) |
| def | extend (self, loc_key) |
| def | get_done_state (self) |
| def | as_graph (self) |
| def | graph (self) |
| def | remove_pendings (self, nodes) |
| def | add_pendings (self, future_pending) |
| def | link_element (self, element, line_nb) |
| def | link_dependencies (self, element, line_nb, dependencies, future_pending) |
Public Attributes | |
| initial_state | |
| history | |
| pending | |
| line_nb | |
| inputs | |
| links | |
Public Attributes inherited from miasm.analysis.depgraph.DependencyState | |
| loc_key | |
| history | |
| pending | |
| line_nb | |
| links | |
Container and methods for DependencyGraph results
| def miasm.analysis.depgraph.DependencyResult.__init__ | ( | self, | |
| ircfg, | |||
| initial_state, | |||
| state, | |||
| inputs | |||
| ) |
| def miasm.analysis.depgraph.DependencyResult.emul | ( | self, | |
| ir_arch, | |||
ctx = None, |
|||
step = False |
|||
| ) |
Symbolic execution of relevant nodes according to the history Return the values of inputs nodes' elements @ir_arch: IntermediateRepresentation instance @ctx: (optional) Initial context as dictionary @step: (optional) Verbose execution Warning: The emulation is not sound if the inputs nodes depend on loop variant.
Reimplemented in miasm.analysis.depgraph.DependencyResultImplicit.

| def miasm.analysis.depgraph.DependencyResult.has_loop | ( | self | ) |
True iff there is at least one data dependencies cycle (regarding the associated depgraph)

| def miasm.analysis.depgraph.DependencyResult.irblock_slice | ( | self, | |
| irb, | |||
max_line = None |
|||
| ) |
Slice of the dependency nodes on the irblock @irb @irb: irbloc instance


| def miasm.analysis.depgraph.DependencyResult.relevant_loc_keys | ( | self | ) |
List of loc_keys containing nodes influencing inputs. The history order is preserved.


| def miasm.analysis.depgraph.DependencyResult.relevant_nodes | ( | self | ) |
Set of nodes directly and indirectly influencing inputs

| def miasm.analysis.depgraph.DependencyResult.unresolved | ( | self | ) |
Set of nodes whose dependencies weren't found
| miasm.analysis.depgraph.DependencyResult.history |
| miasm.analysis.depgraph.DependencyResult.initial_state |
| miasm.analysis.depgraph.DependencyResult.inputs |
| miasm.analysis.depgraph.DependencyResult.line_nb |
| miasm.analysis.depgraph.DependencyResult.links |
| miasm.analysis.depgraph.DependencyResult.pending |