def __exec_x(self, args): if self.ctx.dis is None: error("load a file before") return if len(args) == 1: self.ctx.entry = None else: self.ctx.entry = args[1] self.ctx.reset_vars() if init_addr(self.ctx): disasm(self.ctx) self.ctx.entry = None self.ctx.addr = 0
def __exec_x(self, args): if self.ctx.dis is None: error("load a file before") return if len(args) == 1: self.ctx.entry = None else: self.ctx.entry = args[1] self.ctx.reset_vars() if init_entry_addr(self.ctx): disasm(self.ctx) self.ctx.entry = None self.ctx.entry_addr = 0
def exec_disasm(self, addr): self.interact.ctx.reset_vars() self.interact.ctx.entry_addr = addr o = disasm(self.interact.ctx) if self.output is not None: self.output = o self.token_lines = o.token_lines return True return False
def __exec_v(self, args): if self.ctx.dis is None: error("load a file before") return if len(args) == 1: self.ctx.entry = None else: self.ctx.entry = args[1] self.ctx.reset_vars() if init_entry_addr(self.ctx): o = disasm(self.ctx) if o is not None: Visual(self, self.ctx.dis, o) self.ctx.entry = None self.ctx.entry_addr = 0
def __exec_x(self, args): if self.ctx.dis is None: error("load a file before") return if len(args) == 1: self.ctx.entry = None else: self.ctx.entry = args[1] self.ctx.reset_vars() if init_entry_addr(self.ctx): try: o = disasm(self.ctx) if o is not None: o.print() self.ctx.entry = None self.ctx.entry_addr = 0 except: traceback.print_exc()
def exec_disasm(self, addr): self.console.ctx.reset_vars() self.console.ctx.entry_addr = addr if self.mode == MODE_DUMP: self.console.ctx.dump = True o = self.dis.dump_asm(self.console.ctx, NB_LINES_TO_DISASM) self.console.ctx.dump = False elif self.mode == MODE_DECOMPILE: self.console.ctx.dump = False o = disasm(self.console.ctx) if o is not None: self.output = o self.token_lines = o.token_lines self.last_addr = max(o.addr_line) self.first_addr = min(o.addr_line) return True return False