diff options
| author | Ajax <commial@gmail.com> | 2018-07-02 17:31:59 +0200 |
|---|---|---|
| committer | Ajax <commial@gmail.com> | 2018-07-03 14:28:18 +0200 |
| commit | 68fac2e86cc61eba9adfe520fa0e04a7e8943450 (patch) | |
| tree | 2be74a21b54a3111f3c18746badfb0cf1ed41149 /example/ida | |
| parent | 6ef8dbb2223d0847e3822b545b249511e96a1f9b (diff) | |
| download | miasm-68fac2e86cc61eba9adfe520fa0e04a7e8943450.tar.gz miasm-68fac2e86cc61eba9adfe520fa0e04a7e8943450.zip | |
symbol_pool -> loc_db
Diffstat (limited to 'example/ida')
| -rw-r--r-- | example/ida/ctype_propagation.py | 6 | ||||
| -rw-r--r-- | example/ida/depgraph.py | 10 | ||||
| -rw-r--r-- | example/ida/graph_ir.py | 14 | ||||
| -rw-r--r-- | example/ida/symbol_exec.py | 12 | ||||
| -rw-r--r-- | example/ida/utils.py | 14 |
5 files changed, 28 insertions, 28 deletions
diff --git a/example/ida/ctype_propagation.py b/example/ida/ctype_propagation.py index db324833..9a81baef 100644 --- a/example/ida/ctype_propagation.py +++ b/example/ida/ctype_propagation.py @@ -266,7 +266,7 @@ def analyse_function(): iraCallStackFixer = get_ira_call_fixer(ira) - ir_arch = iraCallStackFixer(mdis.symbol_pool) + ir_arch = iraCallStackFixer(mdis.loc_db) asmcfg = mdis.dis_multiblock(addr) # Generate IR @@ -304,8 +304,8 @@ def analyse_function(): infos_types[expr] = set([objc]) # Add fake head - lbl_real_start = ir_arch.symbol_pool.getby_offset(addr) - lbl_head = ir_arch.symbol_pool.getby_name_create("start") + lbl_real_start = ir_arch.loc_db.getby_offset(addr) + lbl_head = ir_arch.loc_db.getby_name_create("start") first_block = asmcfg.label2block(lbl_real_start) diff --git a/example/ida/depgraph.py b/example/ida/depgraph.py index 4320be8d..8e635203 100644 --- a/example/ida/depgraph.py +++ b/example/ida/depgraph.py @@ -28,7 +28,7 @@ class depGraphSettingsForm(ida_kernwin.Form): self.address = idc.ScreenEA() cur_block = None for block in ira.getby_offset(self.address): - offset = self.ira.symbol_pool.loc_key_to_offset(block.loc_key) + offset = self.ira.loc_db.loc_key_to_offset(block.loc_key) if offset is not None: # Only one block non-generated assert cur_block is None @@ -208,13 +208,13 @@ def launch_depgraph(): bs = bin_stream_ida() mdis = dis_engine(bs, dont_dis_nulstart_bloc=True) - ir_arch = ira(mdis.symbol_pool) + ir_arch = ira(mdis.loc_db) # Populate symbols with ida names for ad, name in idautils.Names(): if name is None: continue - mdis.symbol_pool.add_location(name, ad) + mdis.loc_db.add_location(name, ad) asmcfg = mdis.dis_multiblock(func.startEA) @@ -230,7 +230,7 @@ def launch_depgraph(): # Simplify affectations for irb in ir_arch.blocks.values(): irs = [] - offset = ir_arch.symbol_pool.loc_key_to_offset(irb.loc_key) + offset = ir_arch.loc_db.loc_key_to_offset(irb.loc_key) fix_stack = offset is not None and settings.unalias_stack for assignblk in irb: if fix_stack: @@ -251,7 +251,7 @@ def launch_depgraph(): # Get dependency graphs dg = settings.depgraph graphs = dg.get(loc_key, elements, line_nb, - set([ir_arch.symbol_pool.getby_offset(func.startEA)])) + set([ir_arch.loc_db.getby_offset(func.startEA)])) # Display the result comments = {} diff --git a/example/ida/graph_ir.py b/example/ida/graph_ir.py index dd842281..955dee62 100644 --- a/example/ida/graph_ir.py +++ b/example/ida/graph_ir.py @@ -36,12 +36,12 @@ def label_str(self): def color_irblock(irblock, ir_arch): out = [] - lbl = idaapi.COLSTR(ir_arch.symbol_pool.str_loc_key(irblock.loc_key), idaapi.SCOLOR_INSN) + lbl = idaapi.COLSTR(ir_arch.loc_db.str_loc_key(irblock.loc_key), idaapi.SCOLOR_INSN) out.append(lbl) for assignblk in irblock: for dst, src in sorted(assignblk.iteritems()): - dst_f = expr2colorstr(dst, symbol_pool=ir_arch.symbol_pool) - src_f = expr2colorstr(src, symbol_pool=ir_arch.symbol_pool) + dst_f = expr2colorstr(dst, loc_db=ir_arch.loc_db) + src_f = expr2colorstr(src, loc_db=ir_arch.loc_db) line = idaapi.COLSTR("%s = %s" % (dst_f, src_f), idaapi.SCOLOR_INSN) out.append(' %s' % line) out.append("") @@ -112,17 +112,17 @@ def build_graph(verbose=False, simplify=False): bs = bin_stream_ida() mdis = dis_engine(bs) - ir_arch = ira(mdis.symbol_pool) + ir_arch = ira(mdis.loc_db) # populate symbols with ida names for addr, name in idautils.Names(): if name is None: continue - if (mdis.symbol_pool.getby_offset(addr) or - mdis.symbol_pool.getby_name(name)): + if (mdis.loc_db.getby_offset(addr) or + mdis.loc_db.getby_name(name)): # Symbol alias continue - mdis.symbol_pool.add_location(name, addr) + mdis.loc_db.add_location(name, addr) if verbose: print "start disasm" diff --git a/example/ida/symbol_exec.py b/example/ida/symbol_exec.py index 0d8c63c2..43100943 100644 --- a/example/ida/symbol_exec.py +++ b/example/ida/symbol_exec.py @@ -37,11 +37,11 @@ class symbolicexec_t(idaapi.simplecustviewer_t): self.AddLine("%s = %s" % ( expr2colorstr( key, - symbol_pool=self.symbol_pool + loc_db=self.loc_db ), expr2colorstr( value, - symbol_pool=self.symbol_pool + loc_db=self.loc_db ) )) @@ -69,12 +69,12 @@ class symbolicexec_t(idaapi.simplecustviewer_t): form.Compile() form.Execute() - def Create(self, equations, machine, symbol_pool, *args, **kwargs): + def Create(self, equations, machine, loc_db, *args, **kwargs): if not super(symbolicexec_t, self).Create(*args, **kwargs): return False self.machine = machine - self.symbol_pool = symbol_pool + self.loc_db = loc_db self.line2eq = sorted(equations.items(), key=operator.itemgetter(0)) self.lines_expanded = set() @@ -141,7 +141,7 @@ def symbolic_exec(): mdis.dont_dis = [end] asmcfg = mdis.dis_multiblock(start) - ira = machine.ira(symbol_pool=mdis.symbol_pool) + ira = machine.ira(loc_db=mdis.loc_db) for block in asmcfg.blocks: ira.add_block(block) @@ -155,7 +155,7 @@ def symbolic_exec(): view = symbolicexec_t() all_views.append(view) - if not view.Create(modified, machine, mdis.symbol_pool, + if not view.Create(modified, machine, mdis.loc_db, "Symbolic Execution - 0x%x to 0x%x" % (start, idc.prev_head(end))): return diff --git a/example/ida/utils.py b/example/ida/utils.py index 5620a881..254617ba 100644 --- a/example/ida/utils.py +++ b/example/ida/utils.py @@ -79,9 +79,9 @@ class TranslatorIDA(Translator): # Implemented language __LANG__ = "ida_w_color" - def __init__(self, symbol_pool=None, **kwargs): + def __init__(self, loc_db=None, **kwargs): super(TranslatorIDA, self).__init__(**kwargs) - self.symbol_pool = symbol_pool + self.loc_db = loc_db def str_protected_child(self, child, parent): return ("(%s)" % ( @@ -97,8 +97,8 @@ class TranslatorIDA(Translator): return out def from_ExprLoc(self, expr): - if self.symbol_pool is not None: - out = self.symbol_pool.str_loc_key(expr.loc_key) + if self.loc_db is not None: + out = self.loc_db.str_loc_key(expr.loc_key) else: out = str(expr) out = idaapi.COLSTR(out, idaapi.SCOLOR_REG) @@ -150,13 +150,13 @@ class TranslatorIDA(Translator): -def expr2colorstr(expr, symbol_pool): +def expr2colorstr(expr, loc_db): """Colorize an Expr instance for IDA @expr: Expr instance to colorize - @symbol_pool: AsmSymbolPool instance + @loc_db: LocationDB instance """ - translator = TranslatorIDA(symbol_pool=symbol_pool) + translator = TranslatorIDA(loc_db=loc_db) return translator.from_expr(expr) |