diff options
| author | Fabrice Desclaux <fabrice.desclaux@cea.fr> | 2020-10-30 14:56:05 +0100 |
|---|---|---|
| committer | Fabrice Desclaux <fabrice.desclaux@cea.fr> | 2020-10-30 14:56:05 +0100 |
| commit | eba583bfb85978d7eadd2eb53095e4100e095f60 (patch) | |
| tree | e89b30eac8dee961a9e442d6d0a3425f41b6f314 /example/ida/graph_ir.py | |
| parent | b8af43b26480b65d25f6fc3832884fa1df4db4d0 (diff) | |
| download | miasm-eba583bfb85978d7eadd2eb53095e4100e095f60.tar.gz miasm-eba583bfb85978d7eadd2eb53095e4100e095f60.zip | |
Fix ida examples
Diffstat (limited to 'example/ida/graph_ir.py')
| -rw-r--r-- | example/ida/graph_ir.py | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/example/ida/graph_ir.py b/example/ida/graph_ir.py index 29f91efa..b8afe5fc 100644 --- a/example/ida/graph_ir.py +++ b/example/ida/graph_ir.py @@ -17,7 +17,7 @@ from miasm.ir.ir import IRBlock, AssignBlock from miasm.analysis.data_flow import load_from_int from utils import guess_machine, expr2colorstr from miasm.analysis.simplifier import IRCFGSimplifierCommon, IRCFGSimplifierSSA - +from miasm.core.locationdb import LocationDB @@ -200,19 +200,21 @@ def build_graph(start_addr, type_graph, simplify=False, dontmodstack=True, loadi print(fname) bs = bin_stream_ida() - mdis = dis_engine(bs) - ir_arch = IRADelModCallStack(mdis.loc_db) + loc_db = LocationDB() + + mdis = dis_engine(bs, loc_db=loc_db) + ir_arch = IRADelModCallStack(loc_db) # populate symbols with ida names for addr, name in idautils.Names(): if name is None: continue - if (mdis.loc_db.get_offset_location(addr) or - mdis.loc_db.get_name_location(name)): + if (loc_db.get_offset_location(addr) or + loc_db.get_name_location(name)): # Symbol alias continue - mdis.loc_db.add_location(name, addr) + loc_db.add_location(name, addr) if verbose: print("start disasm") @@ -220,7 +222,7 @@ def build_graph(start_addr, type_graph, simplify=False, dontmodstack=True, loadi print(hex(start_addr)) asmcfg = mdis.dis_multiblock(start_addr) - entry_points = set([mdis.loc_db.get_offset_location(start_addr)]) + entry_points = set([loc_db.get_offset_location(start_addr)]) if verbose: print("generating graph") open('asm_flow.dot', 'w').write(asmcfg.dot()) @@ -239,7 +241,7 @@ def build_graph(start_addr, type_graph, simplify=False, dontmodstack=True, loadi for dst, src in viewitems(assignblk) } irs.append(AssignBlock(new_assignblk, instr=assignblk.instr)) - ircfg.blocks[irb.loc_key] = IRBlock(irb.loc_db, irb.loc_key, irs) + ircfg.blocks[irb.loc_key] = IRBlock(loc_db, irb.loc_key, irs) if verbose: out = ircfg.dot() |