about summary refs log tree commit diff stats
path: root/miasm2/analysis/dse.py
diff options
context:
space:
mode:
Diffstat (limited to 'miasm2/analysis/dse.py')
-rw-r--r--miasm2/analysis/dse.py9
1 files changed, 5 insertions, 4 deletions
diff --git a/miasm2/analysis/dse.py b/miasm2/analysis/dse.py
index 38c9aeaf..0a5445a6 100644
--- a/miasm2/analysis/dse.py
+++ b/miasm2/analysis/dse.py
@@ -106,7 +106,8 @@ class ESETrackModif(EmulatedSymbExec):
                                        # symbolize
 
     def _func_read(self, expr_mem):
-        assert expr_mem.arg.is_int()
+        if not expr_mem.arg.is_int():
+            return expr_mem
         dst_addr = int(expr_mem.arg)
 
         if not self.dse_memory_range:
@@ -310,7 +311,7 @@ class DSEEngine(object):
 
         # Is the symbolic execution going (potentially) to jump on a lbl_gen?
         if len(self.ir_arch.blocks) == 1:
-            next_addr = self.symb.emul_ir_blocks(cur_addr)
+            next_addr = self.symb.run_at(cur_addr)
         else:
             # Emulation could stuck in generated IR blocks
             # But concrete execution callback is not enough precise to obtain
@@ -320,8 +321,8 @@ class DSEEngine(object):
             # Update the concrete execution
             self._update_state_from_concrete_symb(self.symb_concrete)
             while True:
-                next_addr_concrete = self.symb_concrete.emul_ir_block(cur_addr)
-                self.symb.emul_ir_block(cur_addr)
+                next_addr_concrete = self.symb_concrete.run_block_at(cur_addr)
+                self.symb.run_block_at(cur_addr)
 
                 if not(expr_is_label(next_addr_concrete) and
                        next_addr_concrete.name.offset is None):