about summary refs log tree commit diff stats
path: root/miasm/ir
diff options
context:
space:
mode:
Diffstat (limited to 'miasm/ir')
-rw-r--r--miasm/ir/ir.py4
-rw-r--r--miasm/ir/symbexec.py33
-rw-r--r--miasm/ir/symbexec_top.py6
-rw-r--r--miasm/ir/symbexec_types.py4
4 files changed, 26 insertions, 21 deletions
diff --git a/miasm/ir/ir.py b/miasm/ir/ir.py
index 9039efa1..b712b0ee 100644
--- a/miasm/ir/ir.py
+++ b/miasm/ir/ir.py
@@ -839,8 +839,8 @@ class Lifter(object):
         warnings.warn("""DEPRECATION WARNING
         ircfg is now out of Lifter
         Use:
-        ircfg = ir_arch.new_ircfg()
-        ir_arch.add_asmblock_to_ircfg(block, ircfg)
+        ircfg = lifter.new_ircfg()
+        lifter.add_asmblock_to_ircfg(block, ircfg)
         """)
         raise RuntimeError("API Deprecated")
 
diff --git a/miasm/ir/symbexec.py b/miasm/ir/symbexec.py
index ee8e4924..2acd293d 100644
--- a/miasm/ir/symbexec.py
+++ b/miasm/ir/symbexec.py
@@ -17,16 +17,16 @@ log.addHandler(console_handler)
 log.setLevel(logging.INFO)
 
 
-def get_block(ir_arch, ircfg, mdis, addr):
+def get_block(lifter, ircfg, mdis, addr):
     """Get IRBlock at address @addr"""
     loc_key = ircfg.get_or_create_loc_key(addr)
     if not loc_key in ircfg.blocks:
         offset = mdis.loc_db.get_location_offset(loc_key)
         block = mdis.dis_block(offset)
-        ir_arch.add_asmblock_to_ircfg(block, ircfg)
+        lifter.add_asmblock_to_ircfg(block, ircfg)
     irblock = ircfg.get_block(loc_key)
     if irblock is None:
-        raise LookupError('No block found at that address: %s' % ir_arch.loc_db.pretty_str(loc_key))
+        raise LookupError('No block found at that address: %s' % lifter.loc_db.pretty_str(loc_key))
     return irblock
 
 
@@ -764,14 +764,14 @@ class SymbolicExecutionEngine(object):
         from miasm.ir.symbexec import SymbolicExecutionEngine
         from miasm.ir.ir import AssignBlock
 
-        ir_arch = Lifter_X86_32()
+        lifter = Lifter_X86_32()
 
         init_state = {
-            ir_arch.arch.regs.EAX: ir_arch.arch.regs.EBX,
+            lifter.arch.regs.EAX: lifter.arch.regs.EBX,
             ExprMem(id_x+ExprInt(0x10, 32), 32): id_a,
         }
 
-        sb_exec = SymbolicExecutionEngine(ir_arch, init_state)
+        sb_exec = SymbolicExecutionEngine(lifter, init_state)
 
         >>> sb_exec.dump()
         EAX                = a
@@ -779,7 +779,7 @@ class SymbolicExecutionEngine(object):
         >>> sb_exec.dump(mems=False)
         EAX                = a
 
-        >>> print sb_exec.eval_expr(ir_arch.arch.regs.EAX + ir_arch.arch.regs.ECX)
+        >>> print sb_exec.eval_expr(lifter.arch.regs.EAX + lifter.arch.regs.ECX)
         EBX + ECX
 
     Inspecting state:
@@ -796,14 +796,14 @@ class SymbolicExecutionEngine(object):
         - eval_updt_assignblk
         - eval_updt_irblock
 
-    Start a symbolic execution based on provisioned '.ir_arch' blocks:
+    Start a symbolic execution based on provisioned '.lifter' blocks:
         - run_block_at
         - run_at
     """
 
     StateEngine = SymbolicState
 
-    def __init__(self, ir_arch, state=None,
+    def __init__(self, lifter, state=None,
                  sb_expr_simp=expr_simp_explicit):
 
         self.expr_to_visitor = {
@@ -820,14 +820,19 @@ class SymbolicExecutionEngine(object):
         if state is None:
             state = {}
 
-        self.symbols = SymbolMngr(addrsize=ir_arch.addrsize, expr_simp=sb_expr_simp)
+        self.symbols = SymbolMngr(addrsize=lifter.addrsize, expr_simp=sb_expr_simp)
 
         for dst, src in viewitems(state):
             self.symbols.write(dst, src)
 
-        self.ir_arch = ir_arch
+        self.lifter = lifter
         self.expr_simp = sb_expr_simp
 
+    @property
+    def ir_arch(self):
+        warnings.warn('DEPRECATION WARNING: use ".lifter" instead of ".ir_arch"')
+        return self.lifter
+
     def get_state(self):
         """Return the current state of the SymbolicEngine"""
         state = self.StateEngine(dict(self.symbols))
@@ -837,7 +842,7 @@ class SymbolicExecutionEngine(object):
         """Restaure the @state of the engine
         @state: StateEngine instance
         """
-        self.symbols = SymbolMngr(addrsize=self.ir_arch.addrsize, expr_simp=self.expr_simp)
+        self.symbols = SymbolMngr(addrsize=self.lifter.addrsize, expr_simp=self.expr_simp)
         for dst, src in viewitems(dict(state)):
             self.symbols[dst] = src
 
@@ -884,7 +889,7 @@ class SymbolicExecutionEngine(object):
 
     def eval_exprloc(self, expr, **kwargs):
         """[DEV]: Evaluate an ExprLoc using the current state"""
-        offset = self.ir_arch.loc_db.get_location_offset(expr.loc_key)
+        offset = self.lifter.loc_db.get_location_offset(expr.loc_key)
         if offset is not None:
             ret = ExprInt(offset, expr.size)
         else:
@@ -1040,7 +1045,7 @@ class SymbolicExecutionEngine(object):
                 self.dump(mems=False)
                 self.dump(ids=False)
                 print('_' * 80)
-        dst = self.eval_expr(self.ir_arch.IRDst)
+        dst = self.eval_expr(self.lifter.IRDst)
 
         return dst
 
diff --git a/miasm/ir/symbexec_top.py b/miasm/ir/symbexec_top.py
index d37293b5..e4b9708b 100644
--- a/miasm/ir/symbexec_top.py
+++ b/miasm/ir/symbexec_top.py
@@ -87,10 +87,10 @@ class SymbExecTopNoMem(SymbolicExecutionEngine):
 
     StateEngine = SymbolicStateTop
 
-    def __init__(self, ir_arch, state, regstop,
+    def __init__(self, lifter, state, regstop,
                  sb_expr_simp=expr_simp):
         known_symbols = dict(state)
-        super(SymbExecTopNoMem, self).__init__(ir_arch, known_symbols,
+        super(SymbExecTopNoMem, self).__init__(lifter, known_symbols,
                                                sb_expr_simp)
         self.regstop = set(regstop)
 
@@ -125,7 +125,7 @@ class SymbExecTopNoMem(SymbolicExecutionEngine):
         return ret
 
     def eval_exprloc(self, expr, **kwargs):
-        offset = self.ir_arch.loc_db.get_location_offset(expr.loc_key)
+        offset = self.lifter.loc_db.get_location_offset(expr.loc_key)
         if offset is not None:
             ret = ExprInt(offset, expr.size)
         else:
diff --git a/miasm/ir/symbexec_types.py b/miasm/ir/symbexec_types.py
index c969a2f5..e720f6fd 100644
--- a/miasm/ir/symbexec_types.py
+++ b/miasm/ir/symbexec_types.py
@@ -67,13 +67,13 @@ class SymbExecCType(SymbolicExecutionEngine):
     StateEngine = SymbolicStateCTypes
     OBJC_INTERNAL = "___OBJC___"
 
-    def __init__(self, ir_arch,
+    def __init__(self, lifter,
                  symbols,
                  chandler,
                  sb_expr_simp=expr_simp):
         self.chandler = chandler
 
-        super(SymbExecCType, self).__init__(ir_arch,
+        super(SymbExecCType, self).__init__(lifter,
                                             {},
                                             sb_expr_simp)
         self.symbols = dict(symbols)