diff options
| author | Fabrice Desclaux <fabrice.desclaux@cea.fr> | 2017-05-07 20:10:38 +0200 |
|---|---|---|
| committer | Fabrice Desclaux <fabrice.desclaux@cea.fr> | 2017-05-24 12:23:20 +0200 |
| commit | 11d55f727529de9bbdf88f776584b3cbb7667c20 (patch) | |
| tree | f36e8c5fd1baca6ec60b937c3eba068d74d96aa1 /example/ida/graph_ir.py | |
| parent | d3e5587207f68763ea483c0deeef160b3ebec155 (diff) | |
| download | focaccia-miasm-11d55f727529de9bbdf88f776584b3cbb7667c20.tar.gz focaccia-miasm-11d55f727529de9bbdf88f776584b3cbb7667c20.zip | |
IR: Make IRBlock immutable
Diffstat (limited to 'example/ida/graph_ir.py')
| -rw-r--r-- | example/ida/graph_ir.py | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/example/ida/graph_ir.py b/example/ida/graph_ir.py index 6ff4304a..bb06fd0b 100644 --- a/example/ida/graph_ir.py +++ b/example/ida/graph_ir.py @@ -11,7 +11,7 @@ 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 miasm2.ir.ir import AssignBlock, IRBlock from utils import guess_machine, expr2colorstr @@ -136,12 +136,14 @@ for block in ab: print "IR ok... %x" % ad for irb in ir_arch.blocks.itervalues(): - for i, assignblk in enumerate(irb.irs): + irs = [] + for assignblk in 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) + irs.append(AssignBlock(new_assignblk, instr=assignblk.instr)) + ir_arch.blocks[irb.label] = IRBlock(irb.label, irs) out = ir_arch.graph.dot() open(os.path.join(tempfile.gettempdir(), 'graph.dot'), 'wb').write(out) |