You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
x86 (and x86_64) processors have single-byte NOP instructions and various multi-byte NOP-like instructions. Real-world compilers sometimes use multi-byte NOPs for code alignment and performance optimization purposes. Please refer to the StackOverflow post for more details. Zydis thinks the raw bytes "0f 1a de" have only one operand "ebx". But it has two operands "esi" and "ebx" according to the ModR/M encoding shown below:
The ModR/M byte DE translates to binary 11011110 (0xDE).
Work environment
git clone
, default onmaster
branch.Instruction bytes giving faulty results
Expected results
It should be:
Steps to get the wrong result
With
ZydisInfo
:Additional Logs, screenshots, source code, configuration dump, ...
x86 (and x86_64) processors have single-byte NOP instructions and various multi-byte NOP-like instructions. Real-world compilers sometimes use multi-byte NOPs for code alignment and performance optimization purposes. Please refer to the StackOverflow post for more details. Zydis thinks the raw bytes "0f 1a de" have only one operand "ebx". But it has two operands "esi" and "ebx" according to the ModR/M encoding shown below:
Indicates register-direct addressing mode.
Corresponds to the EBX (or RBX in 64-bit mode) register.
Corresponds to the ESI (or RSI in 64-bit mode) register.
XED also translate "0f 1a de" into "nop esi, ebx".
The text was updated successfully, but these errors were encountered: