about summary refs log tree commit diff stats
path: root/example/expression/export_llvm.py
diff options
context:
space:
mode:
Diffstat (limited to 'example/expression/export_llvm.py')
-rw-r--r--example/expression/export_llvm.py24
1 files changed, 14 insertions, 10 deletions
diff --git a/example/expression/export_llvm.py b/example/expression/export_llvm.py
index a0af66b7..241a907d 100644
--- a/example/expression/export_llvm.py
+++ b/example/expression/export_llvm.py
@@ -1,9 +1,11 @@
+from future.utils import viewitems, viewvalues
+
 from argparse import ArgumentParser
-from miasm2.analysis.binary import Container
-from miasm2.analysis.machine import Machine
-from miasm2.jitter.llvmconvert import LLVMType, LLVMContext_IRCompilation, LLVMFunction_IRCompilation
+from miasm.analysis.binary import Container
+from miasm.analysis.machine import Machine
+from miasm.jitter.llvmconvert import LLVMType, LLVMContext_IRCompilation, LLVMFunction_IRCompilation
 from llvmlite import ir as llvm_ir
-from miasm2.expression.simplifications import expr_simp_high_to_explicit
+from miasm.expression.simplifications import expr_simp_high_to_explicit
 
 parser = ArgumentParser("LLVM export example")
 parser.add_argument("target", help="Target binary")
@@ -12,7 +14,7 @@ parser.add_argument("--architecture", "-a", help="Force architecture")
 args = parser.parse_args()
 
 # This part focus on obtaining an IRCFG to transform #
-cont = Container.from_stream(open(args.target))
+cont = Container.from_stream(open(args.target, 'rb'))
 machine = Machine(args.architecture if args.architecture else cont.arch)
 ir = machine.ir(cont.loc_db)
 dis = machine.dis_engine(cont.bin_stream, loc_db=cont.loc_db)
@@ -47,12 +49,14 @@ func.init_fc()
 #     ...
 
 all_regs = set()
-for block in ircfg.blocks.itervalues():
+for block in viewvalues(ircfg.blocks):
     for irs in block.assignblks:
-        for dst, src in irs.get_rw(mem_read=True).iteritems():
+        for dst, src in viewitems(irs.get_rw(mem_read=True)):
             elem = src.union(set([dst]))
-            all_regs.update(x for x in elem
-                            if x.is_id())
+            all_regs.update(
+                x for x in elem
+                if x.is_id()
+            )
 
 reg2glob = {}
 for var in all_regs:
@@ -70,7 +74,7 @@ for var in all_regs:
 func.from_ircfg(ircfg, append_ret=False)
 
 # Finish the saving of registers (temporary version to global)
-for reg, glob in reg2glob.iteritems():
+for reg, glob in viewitems(reg2glob):
     value = func.builder.load(func.local_vars_pointers[reg.name])
     func.builder.store(value, glob)