miasm
Reverse engineering framework
miasm.jitter.emulatedsymbexec.EmulatedSymbExec Class Reference
Inheritance diagram for miasm.jitter.emulatedsymbexec.EmulatedSymbExec:
Collaboration diagram for miasm.jitter.emulatedsymbexec.EmulatedSymbExec:

Public Member Functions

def __init__ (self, cpu, vm, *args, **kwargs)
 
def reset_regs (self)
 
def mem_read (self, expr_mem)
 
def mem_write (self, dest, data)
 
def update_cpu_from_engine (self)
 
def update_engine_from_cpu (self)
 
def enable_emulated_simplifications (self)
 
- Public Member Functions inherited from miasm.ir.symbexec.SymbolicExecutionEngine
def __init__ (self, ir_arch, state=None, sb_expr_simp=expr_simp_explicit)
 
def get_state (self)
 
def set_state (self, state)
 
def eval_expr_visitor (self, expr, cache=None)
 
def eval_exprint (self, expr, **kwargs)
 
def eval_exprid (self, expr, **kwargs)
 
def eval_exprloc (self, expr, **kwargs)
 
def eval_exprmem (self, expr, **kwargs)
 
def eval_exprcond (self, expr, **kwargs)
 
def eval_exprslice (self, expr, **kwargs)
 
def eval_exprop (self, expr, **kwargs)
 
def eval_exprcompose (self, expr, **kwargs)
 
def eval_expr (self, expr, eval_cache=None)
 
def modified (self, init_state=None, ids=True, mems=True)
 
def dump (self, ids=True, mems=True)
 
def eval_assignblk (self, assignblk)
 
def apply_change (self, dst, src)
 
def eval_updt_assignblk (self, assignblk)
 
def eval_updt_irblock (self, irb, step=False)
 
def run_block_at (self, ircfg, addr, step=False)
 
def run_at (self, ircfg, addr, lbl_stop=None, step=False)
 
def del_mem_above_stack (self, stack_ptr)
 
def eval_updt_expr (self, expr)
 

Public Attributes

 cpu
 
 vm
 
- Public Attributes inherited from miasm.ir.symbexec.SymbolicExecutionEngine
 expr_to_visitor
 
 symbols
 
 ir_arch
 
 expr_simp
 

Static Public Attributes

dictionary x86_cpuid
 
- Static Public Attributes inherited from miasm.ir.symbexec.SymbolicExecutionEngine
 StateEngine = SymbolicState
 

Additional Inherited Members

- Properties inherited from miasm.ir.symbexec.SymbolicExecutionEngine
 state = property(get_state, set_state)
 

Detailed Description

Symbolic exec instance linked with a jitter

Constructor & Destructor Documentation

◆ __init__()

def miasm.jitter.emulatedsymbexec.EmulatedSymbExec.__init__ (   self,
  cpu,
  vm,
args,
**  kwargs 
)
Instantiate an EmulatedSymbExec, associated to CPU @cpu and bind
memory accesses.
@cpu: JitCpu instance

Member Function Documentation

◆ enable_emulated_simplifications()

def miasm.jitter.emulatedsymbexec.EmulatedSymbExec.enable_emulated_simplifications (   self)
Enable simplifications needing a CPU instance on associated
ExpressionSimplifier
Here is the call graph for this function:

◆ mem_read()

def miasm.jitter.emulatedsymbexec.EmulatedSymbExec.mem_read (   self,
  expr_mem 
)
Memory read wrapper for symbolic execution
@expr_mem: ExprMem

Reimplemented from miasm.ir.symbexec.SymbolicExecutionEngine.

Reimplemented in miasm.analysis.dse.ESETrackModif, and trace.ESETrackMemory.

Here is the call graph for this function:

◆ mem_write()

def miasm.jitter.emulatedsymbexec.EmulatedSymbExec.mem_write (   self,
  dest,
  data 
)
Memory read wrapper for symbolic execution
@dest: ExprMem instance
@data: Expr instance

Reimplemented from miasm.ir.symbexec.SymbolicExecutionEngine.

Reimplemented in miasm.analysis.dse.ESENoVMSideEffects, miasm.analysis.dse.ESETrackModif, and trace.ESETrackMemory.

Here is the call graph for this function:

◆ reset_regs()

def miasm.jitter.emulatedsymbexec.EmulatedSymbExec.reset_regs (   self)
Set registers value to 0. Ignore register aliases

◆ update_cpu_from_engine()

def miasm.jitter.emulatedsymbexec.EmulatedSymbExec.update_cpu_from_engine (   self)
Updates @cpu instance according to new CPU values

◆ update_engine_from_cpu()

def miasm.jitter.emulatedsymbexec.EmulatedSymbExec.update_engine_from_cpu (   self)
Updates CPU values according to @cpu instance
Here is the call graph for this function:

Member Data Documentation

◆ cpu

miasm.jitter.emulatedsymbexec.EmulatedSymbExec.cpu

◆ vm

miasm.jitter.emulatedsymbexec.EmulatedSymbExec.vm

◆ x86_cpuid

dictionary miasm.jitter.emulatedsymbexec.EmulatedSymbExec.x86_cpuid
static

The documentation for this class was generated from the following file: