diff options
| author | Ajax <commial@gmail.com> | 2017-04-24 17:18:40 +0200 |
|---|---|---|
| committer | Ajax <commial@gmail.com> | 2017-04-25 08:28:21 +0200 |
| commit | 35df726d0c72741ce2c45963992e2ce705168472 (patch) | |
| tree | 602a65f978761c113826cc8a90db9bf44a9f345b /example/ida/graph_ir.py | |
| parent | 860aba480c8a71e06154454f2957593856613af2 (diff) | |
| download | miasm-35df726d0c72741ce2c45963992e2ce705168472.tar.gz miasm-35df726d0c72741ce2c45963992e2ce705168472.zip | |
IDA: fix graph_ir for immutable AssignBlock
Diffstat (limited to 'example/ida/graph_ir.py')
| -rw-r--r-- | example/ida/graph_ir.py | 15 |
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) |