diff options
| author | Camille Mougey <camille.mougey@cea.fr> | 2015-02-24 11:26:55 +0100 |
|---|---|---|
| committer | Camille Mougey <camille.mougey@cea.fr> | 2015-02-24 12:50:33 +0100 |
| commit | 69181d034b59f97730b529dcce425a199cc945de (patch) | |
| tree | 5ffa447a2fc60950bbd11103eb4dc76031c430b6 /example/disasm/full.py | |
| parent | c4d56c21c729d3d78ee98e4afca989949333ad65 (diff) | |
| download | miasm-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.py | 23 |
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) |