MeanDiff icon indicating copy to clipboard operation
MeanDiff copied to clipboard

Missing signed extension - `push`

Open mfaerevaag opened this issue 6 years ago • 0 comments

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

mfaerevaag avatar Aug 22 '17 11:08 mfaerevaag