diff options
| author | Camille Mougey <camille.mougey@cea.fr> | 2014-12-16 17:48:18 +0100 |
|---|---|---|
| committer | Camille Mougey <camille.mougey@cea.fr> | 2014-12-16 17:48:18 +0100 |
| commit | c0b195dfb818950cafe54bc9f8e1b5ed7559409c (patch) | |
| tree | 23dd56e79f39f049bcab241bc4e554dd4c041d2a | |
| parent | df0738328cbab62fd9c27a451079de6a73ef914e (diff) | |
| download | miasm-c0b195dfb818950cafe54bc9f8e1b5ed7559409c.tar.gz miasm-c0b195dfb818950cafe54bc9f8e1b5ed7559409c.zip | |
Example: Update expr_translate to use Miasm translator and take in account #23
| -rw-r--r-- | example/expression/expr_translate.py | 25 |
1 files changed, 13 insertions, 12 deletions
diff --git a/example/expression/expr_translate.py b/example/expression/expr_translate.py index 17663cd2..aacb30c0 100644 --- a/example/expression/expr_translate.py +++ b/example/expression/expr_translate.py @@ -1,6 +1,6 @@ import random -from miasm2.expression.expression import ExprId +from miasm2.expression.expression import * from miasm2.expression.expression_helper import ExprRandom from miasm2.ir.translators import Translator @@ -15,17 +15,14 @@ class ExprRandom_OpSubRange(ExprRandom): print "[+] Compute a random expression:" expr = ExprRandom_OpSubRange.get(depth=8) print "-> %s" % expr -print "" +print -print "[+] Translate in Python:" -exprPython = Translator.to_language("Python").from_expr(expr) -print exprPython -print "" - -print "[+] Translate in C:" -exprC = Translator.to_language("C").from_expr(expr) -print exprC -print "" +target_exprs = {lang:Translator.to_language(lang).from_expr(expr) + for lang in Translator.available_languages()} +for target_lang, target_expr in target_exprs.iteritems(): + print "[+] Translate in %s:" % target_lang + print target_expr + print print "[+] Eval in Python:" def memory(addr, size): @@ -39,4 +36,8 @@ for expr_id in expr.get_r(mem_read=True): print "Declare var: %s = 0x%x" % (expr_id.name, value) globals()[expr_id.name] = value -print "-> 0x%x" % eval(exprPython) +print "-> 0x%x" % eval(target_exprs["Python"]) + +print "[+] Validate the Miasm syntax rebuilding" +exprRebuild = eval(target_exprs["Miasm"]) +assert(expr == exprRebuild) |