fix(disasm,emulate): support mips32r6

When disasm mips32r6 using capstone or emulate mips32r6
using unicorn, MODE should be XX_MODE_MIPS32R6
pull/923/head
veritas501 5 years ago committed by Disconnect3d
parent 44471dfd91
commit aa25aac332

@ -110,6 +110,9 @@ def get_disassembler(pc):
elif pwndbg.arch.current == 'i8086': elif pwndbg.arch.current == 'i8086':
extra = CS_MODE_16 extra = CS_MODE_16
elif pwndbg.arch.current == 'mips' and 'isa32r6' in gdb.newest_frame().architecture().name():
extra = CS_MODE_MIPS32R6
else: else:
extra = None extra = None

@ -201,6 +201,9 @@ class Emulator:
elif arch in ('arm', 'aarch64'): elif arch in ('arm', 'aarch64'):
mode |= U.UC_MODE_THUMB if (pwndbg.regs.cpsr & (1<<5)) else U.UC_MODE_ARM mode |= U.UC_MODE_THUMB if (pwndbg.regs.cpsr & (1<<5)) else U.UC_MODE_ARM
elif arch == 'mips' and 'isa32r6' in gdb.newest_frame().architecture().name():
mode |= U.UC_MODE_MIPS32R6
else: else:
mode |= {4:U.UC_MODE_32, 8:U.UC_MODE_64}[pwndbg.arch.ptrsize] mode |= {4:U.UC_MODE_32, 8:U.UC_MODE_64}[pwndbg.arch.ptrsize]

Loading…
Cancel
Save