diff options
Diffstat (limited to 'example/ida/symbol_exec.py')
| -rw-r--r-- | example/ida/symbol_exec.py | 23 |
1 files changed, 15 insertions, 8 deletions
diff --git a/example/ida/symbol_exec.py b/example/ida/symbol_exec.py index e004b1b6..aa1d57fe 100644 --- a/example/ida/symbol_exec.py +++ b/example/ida/symbol_exec.py @@ -1,7 +1,12 @@ +from __future__ import print_function import operator +from future.utils import viewitems + import idaapi import idc + + from miasm2.expression.expression_helper import Variables_Identifier from miasm2.expression.expression import ExprAssign @@ -49,10 +54,12 @@ class symbolicexec_t(idaapi.simplecustviewer_t): element = self.line2eq[linenum] expanded = Variables_Identifier(element[1], var_prefix="%s_v" % element[0]) - self.line2eq = self.line2eq[0:linenum] + \ - expanded.vars.items() + \ - [(element[0], expanded.equation)] + \ + self.line2eq = ( + self.line2eq[0:linenum] + + list(viewitems(expanded.vars)) + + [(element[0], expanded.equation)] + self.line2eq[linenum + 1:] + ) def print_lines(self): self.ClearLines() @@ -75,7 +82,7 @@ class symbolicexec_t(idaapi.simplecustviewer_t): self.machine = machine self.loc_db = loc_db - self.line2eq = sorted(equations.items(), key=operator.itemgetter(0)) + self.line2eq = sorted(viewitems(equations), key=operator.itemgetter(0)) self.lines_expanded = set() self.print_lines() @@ -144,7 +151,7 @@ def symbolic_exec(): ira = machine.ira(loc_db=mdis.loc_db) ircfg = ira.new_ircfg_from_asmcfg(asmcfg) - print "Run symbolic execution..." + print("Run symbolic execution...") sb = SymbolicExecutionEngine(ira, machine.mn.regs.regs_init) sb.run_at(ircfg, start) modified = {} @@ -192,7 +199,7 @@ if __name__ == '__main__': idaapi.CompileLine('static key_F3() { RunPythonStatement("symbolic_exec()"); }') idc.AddHotkey("F3", "key_F3") - print "=" * 50 - print """Available commands: + print("=" * 50) + print("""Available commands: symbolic_exec() - F3: Symbolic execution of current selection - """ + """) |