From e04adf2b8d3d9c3af09cfd50cc9bca604bca009c Mon Sep 17 00:00:00 2001 From: flobernd Date: Sat, 24 Jun 2017 03:02:03 +0200 Subject: [PATCH] Fixed semantic decoding of EIP/RIP-relative displacements --- src/Decoder.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Decoder.c b/src/Decoder.c index cd0b99e..33df2cd 100644 --- a/src/Decoder.c +++ b/src/Decoder.c @@ -1272,7 +1272,7 @@ static ZydisStatus ZydisDecodeOperandMemory(ZydisDecoderContext* context, switch (info->details.modrm.mod) { case 0: - if (modrm_rm == 5) + if ((modrm_rm & 0x07) == 5) { if (context->decoder->machineMode == 64) { @@ -1327,7 +1327,7 @@ static ZydisStatus ZydisDecodeOperandMemory(ZydisDecoderContext* context, switch (info->details.modrm.mod) { case 0: - if (modrm_rm == 5) + if ((modrm_rm & 0x07) == 5) { operand->mem.base = ZYDIS_REGISTER_RIP; displacementSize = 32;