diff options
| author | Fabrice Desclaux <fabrice.desclaux@cea.fr> | 2019-02-25 11:09:54 +0100 |
|---|---|---|
| committer | Fabrice Desclaux <fabrice.desclaux@cea.fr> | 2019-03-05 16:52:49 +0100 |
| commit | 02bbb30efea4980c9d133947cbbf69fb599071ad (patch) | |
| tree | 3fea6826fcc5354840a27cb1dc99ff31eef81896 /miasm2/analysis/disasm_cb.py | |
| parent | eab809932871f91d6f4aa770fc321af9e156e0f5 (diff) | |
| download | miasm-02bbb30efea4980c9d133947cbbf69fb599071ad.tar.gz miasm-02bbb30efea4980c9d133947cbbf69fb599071ad.zip | |
Support python2/python3
Diffstat (limited to 'miasm2/analysis/disasm_cb.py')
| -rw-r--r-- | miasm2/analysis/disasm_cb.py | 24 |
1 files changed, 13 insertions, 11 deletions
diff --git a/miasm2/analysis/disasm_cb.py b/miasm2/analysis/disasm_cb.py index d3278cb4..36e120b6 100644 --- a/miasm2/analysis/disasm_cb.py +++ b/miasm2/analysis/disasm_cb.py @@ -1,5 +1,9 @@ #-*- coding:utf-8 -*- +from __future__ import print_function + +from future.utils import viewvalues + from miasm2.expression.expression import ExprInt, ExprId, ExprMem, match_expr from miasm2.expression.simplifications import expr_simp from miasm2.core.asmblock import AsmConstraintNext, AsmConstraintTo @@ -27,13 +31,12 @@ def arm_guess_subcall( sp = LocationDB() ir_arch = ira(sp) ircfg = ira.new_ircfg() - print '###' - print cur_bloc + print('###') + print(cur_bloc) ir_arch.add_asmblock_to_ircfg(cur_bloc, ircfg) - ir_blocks = ircfg.blocks.values() to_add = set() - for irblock in ir_blocks: + for irblock in viewvalues(ircfg.blocks): pc_val = None lr_val = None for exprs in irblock: @@ -72,8 +75,7 @@ def arm_guess_jump_table( ircfg = ira.new_ircfg() ir_arch.add_asmblock_to_ircfg(cur_bloc, ircfg) - ir_blocks = ircfg.blocks.values() - for irblock in ir_blocks: + for irblock in viewvalues(ircfg.blocks): pc_val = None for exprs in irblock: for e in exprs: @@ -84,18 +86,18 @@ def arm_guess_jump_table( if not isinstance(pc_val, ExprMem): continue assert(pc_val.size == 32) - print pc_val + print(pc_val) ad = pc_val.arg ad = expr_simp(ad) - print ad + print(ad) res = match_expr(ad, jra + jrb, set([jra, jrb])) if res is False: raise NotImplementedError('not fully functional') - print res + print(res) if not isinstance(res[jrb], ExprInt): raise NotImplementedError('not fully functional') base_ad = int(res[jrb]) - print base_ad + print(base_ad) addrs = set() i = -1 max_table_entry = 10000 @@ -109,7 +111,7 @@ def arm_guess_jump_table( if abs(ad - base_ad) > max_diff_addr: break addrs.add(ad) - print [hex(x) for x in addrs] + print([hex(x) for x in addrs]) for ad in addrs: offsets_to_dis.add(ad) |