about summary refs log tree commit diff stats
path: root/example/ida/graph_ir.py
diff options
context:
space:
mode:
authorserpilliere <serpilliere@users.noreply.github.com>2017-04-25 17:25:30 +0200
committerGitHub <noreply@github.com>2017-04-25 17:25:30 +0200
commitd282660044e8f1a06eb28e98b3d669dc7d411488 (patch)
treef22cb0b61ad5112ea587692461507a83bb8d2ada /example/ida/graph_ir.py
parent9db0e26a60a5a5937cef532d05eb4d2984a2f391 (diff)
parent60d16ff884ebcb84c48833e99936a395bccea3c8 (diff)
downloadmiasm-d282660044e8f1a06eb28e98b3d669dc7d411488.tar.gz
miasm-d282660044e8f1a06eb28e98b3d669dc7d411488.zip
Merge pull request #537 from commial/fix/ida-examples
Fix/ida examples
Diffstat (limited to 'example/ida/graph_ir.py')
-rw-r--r--example/ida/graph_ir.py15
1 files changed, 9 insertions, 6 deletions
diff --git a/example/ida/graph_ir.py b/example/ida/graph_ir.py
index d2552c82..6ff4304a 100644
--- a/example/ida/graph_ir.py
+++ b/example/ida/graph_ir.py
@@ -11,6 +11,8 @@ from miasm2.expression.expression import *
 from miasm2.analysis.data_analysis import inter_bloc_flow, \
     intra_bloc_flow_symbexec
 from miasm2.analysis.data_flow import dead_simp
+from miasm2.ir.ir import AssignBlock
+
 from utils import guess_machine, expr2colorstr
 
 
@@ -133,12 +135,13 @@ for block in ab:
 
 print "IR ok... %x" % ad
 
-for irb in ir_arch.blocks.values():
-    for assignblk in irb.irs:
-        for dst, src in assignblk.items():
-            del(assignblk[dst])
-            dst, src = expr_simp(dst), expr_simp(src)
-            assignblk[dst] = src
+for irb in ir_arch.blocks.itervalues():
+    for i, assignblk in enumerate(irb.irs):
+        new_assignblk = {
+            expr_simp(dst): expr_simp(src)
+            for dst, src in assignblk.iteritems()
+        }
+        irb.irs[i] = AssignBlock(new_assignblk, instr=assignblk.instr)
 
 out = ir_arch.graph.dot()
 open(os.path.join(tempfile.gettempdir(), 'graph.dot'), 'wb').write(out)