From 1e28d29bb99a4d2d4dc43311c3cf8ffa0d9467f4 Mon Sep 17 00:00:00 2001 From: Nguyen Anh Quynh Date: Sat, 6 May 2017 14:29:11 +0800 Subject: [PATCH] x86: LES is invalid in x64. see #904 --- arch/X86/X86Disassembler.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/arch/X86/X86Disassembler.c b/arch/X86/X86Disassembler.c index b80e68c4..e5ed556f 100644 --- a/arch/X86/X86Disassembler.c +++ b/arch/X86/X86Disassembler.c @@ -835,6 +835,12 @@ bool X86_getInstruction(csh ud, const uint8_t *code, size_t code_len, result = (!translateInstruction(instr, &insn)) ? true : false; if (result) { + // quick fix for #904. TODO: fix this properly in the next update + if (handle->mode & CS_MODE_64 && + (instr->Opcode == X86_LES16rm || instr->Opcode == X86_LES32rm)) + // LES is invalid in x64 + return false; + instr->imm_size = insn.immSize; if (handle->detail) { update_pub_insn(instr->flat_insn, &insn, instr->x86_prefix);