about summary refs log tree commit diff stats
path: root/example/disasm/full.py
diff options
context:
space:
mode:
authorCamille Mougey <camille.mougey@cea.fr>2015-02-24 11:26:55 +0100
committerCamille Mougey <camille.mougey@cea.fr>2015-02-24 12:50:33 +0100
commit69181d034b59f97730b529dcce425a199cc945de (patch)
tree5ffa447a2fc60950bbd11103eb4dc76031c430b6 /example/disasm/full.py
parentc4d56c21c729d3d78ee98e4afca989949333ad65 (diff)
downloadmiasm-69181d034b59f97730b529dcce425a199cc945de.tar.gz
miasm-69181d034b59f97730b529dcce425a199cc945de.zip
Example/Disasm/Full: Compute IR with & without analysis on `-g`
Diffstat (limited to 'example/disasm/full.py')
-rw-r--r--example/disasm/full.py23
1 files changed, 17 insertions, 6 deletions
diff --git a/example/disasm/full.py b/example/disasm/full.py
index f7ca6780..14829755 100644
--- a/example/disasm/full.py
+++ b/example/disasm/full.py
@@ -57,7 +57,8 @@ if args.verbose:
 
 log.info("import machine...")
 machine = Machine(args.architecture)
-mn, dis_engine, ira = machine.mn, machine.dis_engine, machine.ira
+mn, dis_engine = machine.mn, machine.dis_engine
+ira, ir = machine.ira, machine.ir
 log.info('ok')
 
 log.info('Load binary')
@@ -163,21 +164,31 @@ log.info('total lines %s' % total_l)
 
 # Bonus, generate IR graph
 if args.gen_ir:
-    log.info("generating IR")
+    log.info("generating IR and IR analysis")
 
-    ir_arch = ira(mdis.symbol_pool)
+    ir_arch = ir(mdis.symbol_pool)
+    ir_arch_a = ira(mdis.symbol_pool)
     ir_arch.blocs = {}
+    ir_arch_a.blocs = {}
     for ad, all_bloc in all_funcs_blocs.items():
         log.info("generating IR... %x" % ad)
         for b in all_bloc:
+            ir_arch_a.add_bloc(b)
             ir_arch.add_bloc(b)
 
+    log.info("Print blocs (without analyse)")
+    for label, bloc in ir_arch.blocs.iteritems():
+        print bloc
+
     log.info("Gen Graph... %x" % ad)
 
-    ir_arch.gen_graph()
+    log.info("Print blocs (with analyse)")
+    for label, bloc in ir_arch_a.blocs.iteritems():
+        print bloc
+    ir_arch_a.gen_graph()
 
     if args.simplify:
-        ir_arch.dead_simp()
+        ir_arch_a.dead_simp()
 
-    out = ir_arch.graph()
+    out = ir_arch_a.graph()
     open('graph_irflow.txt', 'w').write(out)