DynamoRIO / DynamoRIO/dynamorio

VSIB handling is wrong

Open
#4,566 3 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.