diff options
| -rw-r--r-- | miasm2/ir/translators/smt2.py | 10 | ||||
| -rw-r--r-- | miasm2/ir/translators/z3_ir.py | 9 |
2 files changed, 19 insertions, 0 deletions
diff --git a/miasm2/ir/translators/smt2.py b/miasm2/ir/translators/smt2.py index 96f8dab3..f5fbf427 100644 --- a/miasm2/ir/translators/smt2.py +++ b/miasm2/ir/translators/smt2.py @@ -125,11 +125,21 @@ class TranslatorSMT2(Translator): @endianness: (optional) memory endianness """ super(TranslatorSMT2, self).__init__(**kwargs) + # endianness + self.endianness = endianness # memory abstraction self._mem = SMT2Mem(endianness) # map of translated bit vectors self._bitvectors = dict() + def is_little_endian(self): + """True if this memory is little endian.""" + return self.endianness == "<" + + def is_big_endian(self): + """True if this memory is big endian.""" + return not self.is_little_endian() + def from_ExprInt(self, expr): return bit_vec_val(expr.arg.arg, expr.size) diff --git a/miasm2/ir/translators/z3_ir.py b/miasm2/ir/translators/z3_ir.py index b6645d2b..1e02ea9a 100644 --- a/miasm2/ir/translators/z3_ir.py +++ b/miasm2/ir/translators/z3_ir.py @@ -115,8 +115,17 @@ class TranslatorZ3(Translator): @endianness: (optional) memory endianness """ super(TranslatorZ3, self).__init__(**kwargs) + self.endianness = endianness self._mem = Z3Mem(endianness) + def is_little_endian(self): + """True if this memory is little endian.""" + return self.endianness == "<" + + def is_big_endian(self): + """True if this memory is big endian.""" + return not self.is_little_endian() + def from_ExprInt(self, expr): return z3.BitVecVal(expr.arg.arg, expr.size) |