From 81e9b93aab9217cf7cb508f64b19fc1c0df024b5 Mon Sep 17 00:00:00 2001 From: iximeow Date: Thu, 19 Nov 2020 18:13:24 -0800 Subject: fix decoding of rex-prefixed modrm+sib operands selecting index 0b100 and base 0b101 for memory operands with a base, index, and displacement either the wrong base would be selected (register number ignored, so only `*ax` or `r8*` would be reported), or yaxpeax-x86 would report a base register is present when it is not (`RegIndexBaseScaleDisp` when the operand is actually `RegScaleDisp`) thank you to Evan Johnson for catching and reporting this bug! also bump crate version to 0.1.4 as this will be immediately tagged and released. --- CHANGELOG | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'CHANGELOG') diff --git a/CHANGELOG b/CHANGELOG index 5f0b9f7..8de4801 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,13 @@ +## 0.1.4 +* [long mode only]: fix decoding of rex-prefixed modrm+sib operands selecting index 0b100 and base 0b101 + - for memory operands with a base, index, and displacement either + the wrong base would be selected (register number ignored, so only + `*ax` or `r8*` would be reported), or yaxpeax-x86 would report a + base register is present when it is not (`RegIndexBaseScaleDisp` + when the operand is actually `RegScaleDisp`) + +thank you to Evan Johnson for catching and reporting this bug! + ## 0.1.3 * fix 0x80-opcode instructions not having an opcode - this meant that for example `lock xorb [rax], 0` would decode as invalid -- cgit v1.1