MeanDiff
MeanDiff copied to clipboard
Testing Intermediate Representations for Binary Analysis (ASE '17)
## Description Invalid calculation of the carry flag, `CF`, when executing `sbb` instructions with the opcodes below. **Reference:** Ref. Intel 64 and IA-32 Architecture Software Developer's Manual Vol. 2B 4-587...
## Description Invalid calculation of the carry flag, `OF`, when executing `xadd` instruction. **Reference:** Ref. Intel 64 and IA-32 Architecture Software Developer's Manual Vol. 2C 5-580 **Affected instructions:** ``` 0x0fc1c0...
## Description When executing the `sahf` or `lahff` instructions, `AH` should be stored or loaded, but rather `AL` is used. **Reference:** Ref. Intel 64 and IA-32 Architecture Software Developer's Manual...
## Description When executing `cmpxchg`, the semantics for comparison is accumulator minus destination operand, but they are switched. **Reference:** Ref. Intel 64 and IA-32 Architecture Software Developer's Manual Vol. 2A...
## Description Fails to correctly decode prefix and use correct operand sizes. **Reference:** `mov`: Ref. Intel 64 and IA-32 Architecture Software Developer's Manual Vol. 2B 4-35 `lea`: Ref. Intel 64...
## Description The address of the destination operand is changed before being written to. In some cases directly and obvious, other cases where the calculation of EFLAGS uses an address...
## Description Using some seemingly useless memory for simple register operation with operands `0x0c` and `0xc8`. ``` CF
## Description When executing `pushad`, the value of `EBX` is pushed and immediately overwritten by the original value of `ESP`. In result only 7 registers of the expected 8, `EAX`,...
## Description Some instructions occasionally confuses source and destination operand, by writing to the wrong one. The sum of the operands should be written to the destination operand, i.e. the...
## Description The `AF` flag is being calculated in much the same way as the `OF` flag, but this is not the correct behaviour. Instead of taking the carry of...