about summary refs log tree commit diff stats
path: root/example/ida/symbol_exec.py
diff options
context:
space:
mode:
authorFabrice Desclaux <fabrice.desclaux@cea.fr>2019-02-25 11:09:54 +0100
committerFabrice Desclaux <fabrice.desclaux@cea.fr>2019-03-05 16:52:49 +0100
commit02bbb30efea4980c9d133947cbbf69fb599071ad (patch)
tree3fea6826fcc5354840a27cb1dc99ff31eef81896 /example/ida/symbol_exec.py
parenteab809932871f91d6f4aa770fc321af9e156e0f5 (diff)
downloadmiasm-02bbb30efea4980c9d133947cbbf69fb599071ad.tar.gz
miasm-02bbb30efea4980c9d133947cbbf69fb599071ad.zip
Support python2/python3
Diffstat (limited to 'example/ida/symbol_exec.py')
-rw-r--r--example/ida/symbol_exec.py23
1 files changed, 15 insertions, 8 deletions
diff --git a/example/ida/symbol_exec.py b/example/ida/symbol_exec.py
index e004b1b6..aa1d57fe 100644
--- a/example/ida/symbol_exec.py
+++ b/example/ida/symbol_exec.py
@@ -1,7 +1,12 @@
+from __future__ import print_function
 import operator
 
+from future.utils import viewitems
+
 import idaapi
 import idc
+
+
 from miasm2.expression.expression_helper import Variables_Identifier
 from miasm2.expression.expression import ExprAssign
 
@@ -49,10 +54,12 @@ class symbolicexec_t(idaapi.simplecustviewer_t):
         element = self.line2eq[linenum]
         expanded = Variables_Identifier(element[1],
                                         var_prefix="%s_v" % element[0])
-        self.line2eq = self.line2eq[0:linenum] + \
-            expanded.vars.items() + \
-            [(element[0], expanded.equation)] + \
+        self.line2eq = (
+            self.line2eq[0:linenum] +
+            list(viewitems(expanded.vars)) +
+            [(element[0], expanded.equation)] +
             self.line2eq[linenum + 1:]
+        )
 
     def print_lines(self):
         self.ClearLines()
@@ -75,7 +82,7 @@ class symbolicexec_t(idaapi.simplecustviewer_t):
 
         self.machine = machine
         self.loc_db = loc_db
-        self.line2eq = sorted(equations.items(), key=operator.itemgetter(0))
+        self.line2eq = sorted(viewitems(equations), key=operator.itemgetter(0))
         self.lines_expanded = set()
 
         self.print_lines()
@@ -144,7 +151,7 @@ def symbolic_exec():
     ira = machine.ira(loc_db=mdis.loc_db)
     ircfg = ira.new_ircfg_from_asmcfg(asmcfg)
 
-    print "Run symbolic execution..."
+    print("Run symbolic execution...")
     sb = SymbolicExecutionEngine(ira, machine.mn.regs.regs_init)
     sb.run_at(ircfg, start)
     modified = {}
@@ -192,7 +199,7 @@ if __name__ == '__main__':
     idaapi.CompileLine('static key_F3() { RunPythonStatement("symbolic_exec()"); }')
     idc.AddHotkey("F3", "key_F3")
 
-    print "=" * 50
-    print """Available commands:
+    print("=" * 50)
+    print("""Available commands:
     symbolic_exec() - F3: Symbolic execution of current selection
-    """
+    """)