miasm
Reverse engineering framework
miasm.analysis.dse.ESETrackModif Class Reference
Inheritance diagram for miasm.analysis.dse.ESETrackModif:
Collaboration diagram for miasm.analysis.dse.ESETrackModif:

Public Member Functions

def __init__ (self, *args, **kwargs)
 
def mem_read (self, expr_mem)
 
def mem_write (self, expr, data)
 
def reset_modified (self)
 
def apply_change (self, dst, src)
 
- Public Member Functions inherited from miasm.jitter.emulatedsymbexec.EmulatedSymbExec
def __init__ (self, cpu, vm, *args, **kwargs)
 
def reset_regs (self)
 
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 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

 modified_expr
 
 dse_memory_range
 
 dse_memory_to_expr
 
- Public Attributes inherited from miasm.jitter.emulatedsymbexec.EmulatedSymbExec
 cpu
 
 vm
 
- Public Attributes inherited from miasm.ir.symbexec.SymbolicExecutionEngine
 expr_to_visitor
 
 symbols
 
 ir_arch
 
 expr_simp
 

Additional Inherited Members

- Static Public Attributes inherited from miasm.jitter.emulatedsymbexec.EmulatedSymbExec
dictionary x86_cpuid
 
- Static Public Attributes inherited from miasm.ir.symbexec.SymbolicExecutionEngine
 StateEngine = SymbolicState
 
- Properties inherited from miasm.ir.symbexec.SymbolicExecutionEngine
 state = property(get_state, set_state)
 

Detailed Description

Extension of EmulatedSymbExec to be used by DSE engines

Add the tracking of modified expressions, and the ability to symbolize
memory areas

Constructor & Destructor Documentation

◆ __init__()

def miasm.analysis.dse.ESETrackModif.__init__ (   self,
args,
**  kwargs 
)

Member Function Documentation

◆ apply_change()

def miasm.analysis.dse.ESETrackModif.apply_change (   self,
  dst,
  src 
)
Apply @dst = @src on the current state WITHOUT evaluating both side
@dst: Expr, destination
@src: Expr, source

Reimplemented from miasm.ir.symbexec.SymbolicExecutionEngine.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ mem_read()

def miasm.analysis.dse.ESETrackModif.mem_read (   self,
  expr_mem 
)
Memory read wrapper for symbolic execution
@expr_mem: ExprMem

Reimplemented from miasm.jitter.emulatedsymbexec.EmulatedSymbExec.

Here is the caller graph for this function:

◆ mem_write()

def miasm.analysis.dse.ESETrackModif.mem_write (   self,
  dest,
  data 
)
Memory read wrapper for symbolic execution
@dest: ExprMem instance
@data: Expr instance

Reimplemented from miasm.jitter.emulatedsymbexec.EmulatedSymbExec.

Here is the caller graph for this function:

◆ reset_modified()

def miasm.analysis.dse.ESETrackModif.reset_modified (   self)
Reset modified expression tracker

Member Data Documentation

◆ dse_memory_range

miasm.analysis.dse.ESETrackModif.dse_memory_range

◆ dse_memory_to_expr

miasm.analysis.dse.ESETrackModif.dse_memory_to_expr

◆ modified_expr

miasm.analysis.dse.ESETrackModif.modified_expr

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