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_