DynamoRIO / DynamoRIO/dynamorio
VSIB handling is wrong
Open
Component-IR
- Dominant language
- C
- Stars
- 3.2k
- Forks
- 629
- Avg merge
- 2d 18h
- Merged PRs (30d)
- 30
Description
The decoder relies on the EVEX prefix bits to choose ymm/zmm for the VSIB index rather than the REQUIRES_VSIB_YMM/ZMM flags. Consider `62 92 fd 41 c6 4c 39 20`. DR will decode this with a ZMM register rather than the correct YMM register.
Contributor guide
Research direction
Start by tracing the decoder's VSIB handling and the REQUIRES_VSIB_YMM/REQUIRES_VSIB_ZMM flags. Reproduce decoding of `62 92 fd 41 c6 4c 39 20` and compare the selected index register width with the expected YMM result; the issue is done when DR no longer selects ZMM for this instruction.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c
- Domain
- devtools, reverse-engineering
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100