diff options
Diffstat (limited to 'example')
| -rw-r--r-- | example/expression/get_read_write.py | 11 | ||||
| -rw-r--r-- | example/ida/graph_ir.py | 4 | ||||
| -rw-r--r-- | example/ida/utils.py | 2 |
3 files changed, 11 insertions, 6 deletions
diff --git a/example/expression/get_read_write.py b/example/expression/get_read_write.py index b4a0773b..d107cfa2 100644 --- a/example/expression/get_read_write.py +++ b/example/expression/get_read_write.py @@ -16,12 +16,13 @@ l.offset, l.l = 0, 15 ir_arch.add_instr(l) print '*' * 80 -for lbl, irblock in ir_arch.blocks.items(): +for lbl, irblock in ir_arch.blocks.iteritems(): print irblock for assignblk in irblock: - o_r, o_w = get_rw(assignblk) - print 'read: ', [str(x) for x in o_r] - print 'written:', [str(x) for x in o_w] - print + rw = assignblk.get_rw() + for dst, reads in rw.iteritems(): + print 'read: ', [str(x) for x in reads] + print 'written:', dst + print open('graph_instr.dot', 'w').write(ir_arch.graph.dot()) diff --git a/example/ida/graph_ir.py b/example/ida/graph_ir.py index 7e303aac..6dfa1f7d 100644 --- a/example/ida/graph_ir.py +++ b/example/ida/graph_ir.py @@ -121,6 +121,10 @@ def build_graph(verbose=False, simplify=False): # print hex(ad), repr(name) if name is None: continue + if (mdis.symbol_pool.getby_offset(addr) or + mdis.symbol_pool.getby_name(name)): + # Symbol alias + continue mdis.symbol_pool.add_label(name, addr) if verbose: diff --git a/example/ida/utils.py b/example/ida/utils.py index 585d86a9..e026f2fc 100644 --- a/example/ida/utils.py +++ b/example/ida/utils.py @@ -40,7 +40,7 @@ def guess_machine(): (False, 64, False): "aarch64l", } is_armt = globals().get('armt', False) - is_bigendian = globals().get('bigendian', False) + is_bigendian = info.is_be() infos = (is_armt, size, is_bigendian) if not infos in info2machine: raise NotImplementedError('not fully functional') |