diff options
| -rw-r--r-- | miasm/expression/expression.py | 7 | ||||
| -rw-r--r-- | miasm/expression/expression_eval_abstract.py | 12 |
2 files changed, 14 insertions, 5 deletions
diff --git a/miasm/expression/expression.py b/miasm/expression/expression.py index 605487f0..f5983e6f 100644 --- a/miasm/expression/expression.py +++ b/miasm/expression/expression.py @@ -559,10 +559,7 @@ class ExprSlice(Expr): def __contains__(self, e): if self == e: return True - for a in self.args: - if a.__contains__(e): - return True - return False + return self.arg.__contains__(e) def __eq__(self, a): if not isinstance(a, ExprSlice): return False @@ -777,3 +774,5 @@ def ExprInt64(i): def ExprInt_from(e, i): return ExprInt(tab_uintsize[e.get_size()](i)) + + diff --git a/miasm/expression/expression_eval_abstract.py b/miasm/expression/expression_eval_abstract.py index 99c0ef8c..0424c8da 100644 --- a/miasm/expression/expression_eval_abstract.py +++ b/miasm/expression/expression_eval_abstract.py @@ -216,7 +216,7 @@ class eval_abs: ex = expr_simp(self.eval_expr(ex, {})) if not isinstance(ex, ExprInt): return None - ptr_diff = int32(ex.arg) + ptr_diff = int(int32(ex.arg)) out = [] if ptr_diff <0: # [a ] @@ -877,3 +877,13 @@ class eval_abs: + def dump_id(self): + ids = self.pool.pool_id.keys() + ids.sort() + for i in ids: + print i, self.pool.pool_id[i] + def dump_mem(self): + mems = self.pool.pool_mem.values() + mems.sort() + for m, v in mems: + print m, v |