diff options
Diffstat (limited to 'miasm2/ir')
| -rw-r--r-- | miasm2/ir/ir.py | 2 | ||||
| -rw-r--r-- | miasm2/ir/symbexec.py | 26 | ||||
| -rw-r--r-- | miasm2/ir/translators/C.py | 2 | ||||
| -rw-r--r-- | miasm2/ir/translators/miasm.py | 2 | ||||
| -rw-r--r-- | miasm2/ir/translators/python.py | 2 | ||||
| -rw-r--r-- | miasm2/ir/translators/smt2.py | 4 | ||||
| -rw-r--r-- | miasm2/ir/translators/z3_ir.py | 2 |
7 files changed, 20 insertions, 20 deletions
diff --git a/miasm2/ir/ir.py b/miasm2/ir/ir.py index a77ce992..16dffc79 100644 --- a/miasm2/ir/ir.py +++ b/miasm2/ir/ir.py @@ -230,7 +230,7 @@ class AssignBlock(object): src_read = src.get_r(mem_read=mem_read, cst_read=cst_read) if isinstance(dst, m2_expr.ExprMem) and mem_read: # Read on destination happens only with ExprMem - src_read.update(dst.arg.get_r(mem_read=mem_read, + src_read.update(dst.ptr.get_r(mem_read=mem_read, cst_read=cst_read)) out[dst] = src_read return out diff --git a/miasm2/ir/symbexec.py b/miasm2/ir/symbexec.py index 433db049..052736ee 100644 --- a/miasm2/ir/symbexec.py +++ b/miasm2/ir/symbexec.py @@ -256,8 +256,8 @@ class MemArray(MutableMapping): continue if data_a.is_mem() and data_b.is_mem(): # Read consecutive bytes of a memory variable - ptr_base_a, ptr_offset_a = get_expr_base_offset(data_a.arg) - ptr_base_b, ptr_offset_b = get_expr_base_offset(data_b.arg) + ptr_base_a, ptr_offset_a = get_expr_base_offset(data_a.ptr) + ptr_base_b, ptr_offset_b = get_expr_base_offset(data_b.ptr) if ptr_base_a != ptr_base_b: index += 1 continue @@ -303,11 +303,11 @@ class MemArray(MutableMapping): # Special case: Simplify slice of pointer (simplification is ok # here, as we won't store the simplified expression) if tmp.is_slice() and tmp.arg.is_mem() and tmp.start % 8 == 0: - new_ptr = self.expr_simp(tmp.arg.arg + ExprInt(tmp.start / 8, tmp.arg.arg.size)) + new_ptr = self.expr_simp(tmp.arg.ptr + ExprInt(tmp.start / 8, tmp.arg.ptr.size)) tmp = ExprMem(new_ptr, tmp.stop - tmp.start) # Test if write to original value if tmp.is_mem(): - src_ptr, src_off = get_expr_base_offset(tmp.arg) + src_ptr, src_off = get_expr_base_offset(tmp.ptr) if src_ptr == self.base and src_off == request_offset: del self._offset_to_expr[request_offset] @@ -477,7 +477,7 @@ class MemSparse(object): """ if not expr.is_mem(): return False - ptr = expr.arg + ptr = expr.ptr base, offset = get_expr_base_offset(ptr) memarray = self.base_to_memarray.get(base, None) if memarray is None: @@ -493,7 +493,7 @@ class MemSparse(object): """ if not expr.is_mem(): return False - ptr = expr.arg + ptr = expr.ptr base, offset = get_expr_base_offset(ptr) memarray = self.base_to_memarray.get(base, None) if memarray is None: @@ -521,7 +521,7 @@ class MemSparse(object): Delete a value @expr *fully* present in memory For partial delete, use delete_partial """ - ptr = expr.arg + ptr = expr.ptr base, offset = get_expr_base_offset(ptr) memarray = self.base_to_memarray.get(base, None) if memarray is None: @@ -538,7 +538,7 @@ class MemSparse(object): Delete @expr from memory. Skip parts of @expr which are not present in memory. """ - ptr = expr.arg + ptr = expr.ptr base, offset = get_expr_base_offset(ptr) memarray = self.base_to_memarray.get(base, None) if memarray is None: @@ -657,7 +657,7 @@ class SymbolMngr(object): elif src.is_mem(): # Only byte aligned accesses are supported for now assert src.size % 8 == 0 - return self.symbols_mem.read(src.arg, src.size) + return self.symbols_mem.read(src.ptr, src.size) else: raise TypeError("Bad source expr") @@ -677,7 +677,7 @@ class SymbolMngr(object): elif dst.is_mem(): # Only byte aligned accesses are supported for now assert dst.size % 8 == 0 - self.symbols_mem.write(dst.arg, src) + self.symbols_mem.write(dst.ptr, src) else: raise TypeError("Bad destination expr") @@ -906,7 +906,7 @@ class SymbolicExecutionEngine(object): This function first evaluate the memory pointer value. Override 'mem_read' to modify the effective memory accesses """ - ptr = self.eval_expr_visitor(expr.arg, **kwargs) + ptr = self.eval_expr_visitor(expr.ptr, **kwargs) mem = ExprMem(ptr, expr.size) ret = self.mem_read(mem) return ret @@ -998,7 +998,7 @@ class SymbolicExecutionEngine(object): for dst, src in assignblk.iteritems(): src = self.eval_expr(src, eval_cache) if dst.is_mem(): - ptr = self.eval_expr(dst.arg, eval_cache) + ptr = self.eval_expr(dst.ptr, eval_cache) # Test if mem lookup is known tmp = ExprMem(ptr, dst.size) pool_out[tmp] = src @@ -1124,7 +1124,7 @@ class SymbolicExecutionEngine(object): # Extract known parts in symbols assert expr.size % 8 == 0 - ptr = expr.arg + ptr = expr.ptr known = [] ptrs = [] for index in xrange(expr.size / 8): diff --git a/miasm2/ir/translators/C.py b/miasm2/ir/translators/C.py index 1146dce6..20fa210e 100644 --- a/miasm2/ir/translators/C.py +++ b/miasm2/ir/translators/C.py @@ -92,7 +92,7 @@ class TranslatorC(Translator): return out def from_ExprMem(self, expr): - ptr = expr.arg + ptr = expr.ptr if ptr.size <= self.NATIVE_INT_MAX_SIZE: new_ptr = self.from_expr(ptr) if expr.size <= self.NATIVE_INT_MAX_SIZE: diff --git a/miasm2/ir/translators/miasm.py b/miasm2/ir/translators/miasm.py index d8509d24..356ec3fd 100644 --- a/miasm2/ir/translators/miasm.py +++ b/miasm2/ir/translators/miasm.py @@ -35,7 +35,7 @@ class TranslatorMiasm(Translator): self.from_expr(expr.src)) def from_ExprMem(self, expr): - return "ExprMem(%s, size=%d)" % (self.from_expr(expr.arg), expr.size) + return "ExprMem(%s, size=%d)" % (self.from_expr(expr.ptr), expr.size) # Register the class diff --git a/miasm2/ir/translators/python.py b/miasm2/ir/translators/python.py index c6eb0ba8..f32e4585 100644 --- a/miasm2/ir/translators/python.py +++ b/miasm2/ir/translators/python.py @@ -24,7 +24,7 @@ class TranslatorPython(Translator): return str(expr) def from_ExprMem(self, expr): - return "memory(%s, 0x%x)" % (self.from_expr(expr.arg), + return "memory(%s, 0x%x)" % (self.from_expr(expr.ptr), expr.size / 8) def from_ExprSlice(self, expr): diff --git a/miasm2/ir/translators/smt2.py b/miasm2/ir/translators/smt2.py index 408eb53f..802481fe 100644 --- a/miasm2/ir/translators/smt2.py +++ b/miasm2/ir/translators/smt2.py @@ -149,11 +149,11 @@ class TranslatorSMT2(Translator): return bit_vec_val(str(offset), expr.size) def from_ExprMem(self, expr): - addr = self.from_expr(expr.arg) + addr = self.from_expr(expr.ptr) # size to read from memory size = expr.size # size of memory address - addr_size = expr.arg.size + addr_size = expr.ptr.size return self._mem.get(addr, size, addr_size) def from_ExprSlice(self, expr): diff --git a/miasm2/ir/translators/z3_ir.py b/miasm2/ir/translators/z3_ir.py index beaba618..1cc8c29d 100644 --- a/miasm2/ir/translators/z3_ir.py +++ b/miasm2/ir/translators/z3_ir.py @@ -144,7 +144,7 @@ class TranslatorZ3(Translator): return z3.BitVec(str(loc_key), expr.size) def from_ExprMem(self, expr): - addr = self.from_expr(expr.arg) + addr = self.from_expr(expr.ptr) return self._mem.get(addr, expr.size) def from_ExprSlice(self, expr): |