From cfb0f97897a98aa6baf4949efaf3632256be55c6 Mon Sep 17 00:00:00 2001 From: Andrei Vlad LUTAS Date: Thu, 23 Jul 2020 15:31:05 +0300 Subject: [PATCH] Truncate the output of a relative addressing if 0x67 prefix is used. --- bddisasm/bddisasm.c | 9 ++++++++- inc/version.h | 2 +- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/bddisasm/bddisasm.c b/bddisasm/bddisasm.c index 8ff32c6..a826007 100644 --- a/bddisasm/bddisasm.c +++ b/bddisasm/bddisasm.c @@ -4790,7 +4790,14 @@ NdToText( if (pOp->Info.Memory.IsRipRel) { - status = NdSprintf(temp, sizeof(temp), "rel 0x%llx", disp + Rip + Instrux->Length); + uint64_t target = disp + Rip + Instrux->Length; + + if (Instrux->AddrMode == ND_ADDR_32) + { + target &= 0xFFFFFFFF; + } + + status = NdSprintf(temp, sizeof(temp), "rel 0x%llx", target); } else { diff --git a/inc/version.h b/inc/version.h index ebe2944..f60f0b7 100644 --- a/inc/version.h +++ b/inc/version.h @@ -7,6 +7,6 @@ #define DISASM_VERSION_MAJOR 1 #define DISASM_VERSION_MINOR 26 -#define DISASM_VERSION_REVISION 0 +#define DISASM_VERSION_REVISION 1 #endif // _DISASM_VER_H_