Example #1
0
 def trace_mem(self, uci, access, address, size, value, user_data):
     """ Hook that shows a visual trace of memory accesses in the form '[address written to] <- value written' or 'value read <- [address read]' """
     if self.mem_trace:
         if address in self.OTHER_REGS_NAMES.keys():
             addr = self.OTHER_REGS_NAMES[address]
         else:
             addr = color("BLUE", f"0x{address:08x}")
         if access == uc.UC_MEM_WRITE:
             val = color("CYAN", f"{value:x}")
             print(f"  [{addr}] <- {val} ", end=" ")
         else:
             val = int.from_bytes(uci.mem_read(address, size), self.endianness)
             val = color("CYAN", f"{val:8x}")
             print(f"  {val} <- [{addr}]", end=" ")
Example #2
0
 def print_asmline(self, adr, ins, op_str):
     """ Pretty-print assembly using pygments syntax highlighting """
     line = (
         highlight(f"{ins:<6}  {op_str:<20}", self.asm_hl, self.asm_fmt)
         .decode()
         .strip("\n")
     )
     print("\n" + color("YELLOW", f"{adr:8X}  ") + line, end=";")