MeanDiff
MeanDiff copied to clipboard
Missing signed extension - `push`
Description
Missing signed extension of immediate value when pushing -0x1
.
Reference: Ref. Intel 64 and IA-32 Architecture Software Developer's Manual Vol. 2B 4-509
Affected instructions:
0x6aff
NOTE: All combinations of prefixes are omitted.
Reproduction guide
Instruction:
00000000 6AFF push byte -0x1
Input:
bap-mc "6aff" --show-bil --arch=X86
Observed output:
{
v1 := 0xFF:32
ESP := ESP - 0x4:32
mem32 := mem32 with [ESP, el]:u32 <- v1
}
Expected output: Added signed extension.
System Info
OS:
# uname -a
Linux ubuntu 4.10.0-28-generic #32-Ubuntu SMP Fri Jun 30 05:32:18 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
# cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=17.04
DISTRIB_CODENAME=zesty
DISTRIB_DESCRIPTION="Ubuntu 17.04"
BAP:
# bap-mc --version
1.0.0
# bap --version
1.2.0