From 2fc491d51d9e68aa36331d4c0557179ec585e00a Mon Sep 17 00:00:00 2001 From: "BITDEFENDER\\vlutas" Date: Mon, 8 Aug 2022 12:02:00 +0300 Subject: [PATCH] Handle reserved bits in RFLAGS when setting the entire register value. --- bdshemu/bdshemu.c | 3 +++ inc/version.h | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/bdshemu/bdshemu.c b/bdshemu/bdshemu.c index f8f0f2d..faf1652 100644 --- a/bdshemu/bdshemu.c +++ b/bdshemu/bdshemu.c @@ -1363,6 +1363,9 @@ ShemuSetOperandValue( case ND_REG_FLG: Context->Registers.RegFlags = ND_TRIM(Value->Size, Value->Value.Qwords[0]); + // Handle reserved bits. + Context->Registers.RegFlags |= (1ULL << 1); + Context->Registers.RegFlags &= ~((1ULL << 3) | (1ULL << 5) | (1ULL << 15)); break; case ND_REG_CR: diff --git a/inc/version.h b/inc/version.h index eba02c9..3389f37 100644 --- a/inc/version.h +++ b/inc/version.h @@ -12,6 +12,6 @@ // bdshemu depends on bddisasm. It cannot be used without it. #define SHEMU_VERSION_MAJOR 1 #define SHEMU_VERSION_MINOR 1 -#define SHEMU_VERSION_REVISION 12 +#define SHEMU_VERSION_REVISION 13 #endif // DISASM_VER_H