Example #1
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_addr(self.ctx):
         disasm(self.ctx)
         self.ctx.entry = None
         self.ctx.addr = 0
Example #2
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
Example #3
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
Example #4
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
Example #5
0
 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
Example #6
0
 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
Example #7
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()
Example #8
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()
Example #9
0
    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
Example #10
0
    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