diff --git a/manticore/native/cpu/abstractcpu.py b/manticore/native/cpu/abstractcpu.py index 1c992f656..1a0f05b44 100644 --- a/manticore/native/cpu/abstractcpu.py +++ b/manticore/native/cpu/abstractcpu.py @@ -20,6 +20,8 @@ from ...utils.fallback_emulator import UnicornEmulator from ...utils.helpers import issymbolic +from capstone import CS_ARCH_ARM64, CS_ARCH_X86 +from capstone.arm64 import ARM64_REG_ENDING from capstone.x86 import X86_REG_ENDING logger = logging.getLogger(__name__) @@ -146,7 +148,9 @@ def _reg_name(self, reg_id): :param int reg_id: Register ID """ - if reg_id >= X86_REG_ENDING: + # XXX: Support other architectures. + if ((self.cpu.arch == CS_ARCH_ARM64 and reg_id >= ARM64_REG_ENDING) or + (self.cpu.arch == CS_ARCH_X86 and reg_id >= X86_REG_ENDING)): logger.warning("Trying to get register name for a non-register") return None cs_reg_name = self.cpu.instruction.reg_name(reg_id)