Skip to content

Commit

Permalink
Relative memory addressing is not allowed for MIB operands (e.g. `b…
Browse files Browse the repository at this point in the history
…ndldx`/`bndstx`)

closes #133
  • Loading branch information
flobernd committed Feb 7, 2020
1 parent 5f2dde8 commit 88c97a2
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 11 deletions.
3 changes: 2 additions & 1 deletion include/Zydis/Internal/SharedData.h
Original file line number Diff line number Diff line change
Expand Up @@ -278,11 +278,12 @@ typedef enum ZydisRegisterConstraint_
ZYDIS_REG_CONSTRAINTS_MASK,
ZYDIS_REG_CONSTRAINTS_BND,
ZYDIS_REG_CONSTRAINTS_VSIB,
ZYDIS_REG_CONSTRAINTS_NO_REL,

/**
* @brief Maximum value of this enum.
*/
ZYDIS_REG_CONSTRAINTS_MAX_VALUE = ZYDIS_REG_CONSTRAINTS_VSIB,
ZYDIS_REG_CONSTRAINTS_MAX_VALUE = ZYDIS_REG_CONSTRAINTS_NO_REL,
/**
* @brief The minimum number of bits required to represent all values of this enum.
*/
Expand Down
12 changes: 6 additions & 6 deletions src/Decoder.c
Original file line number Diff line number Diff line change
Expand Up @@ -1991,12 +1991,6 @@ static ZyanStatus ZydisDecodeOperands(ZydisDecoderContext* context,
ZydisDecodeOperandMemory(
context, instruction, &instruction->operands[i], ZYDIS_REGCLASS_INVALID));
instruction->operands[i].mem.type = ZYDIS_MEMOP_TYPE_MIB;
// Relative addressing is not allowed for this type of memory-operand
if ((instruction->operands[i].mem.base == ZYDIS_REGISTER_EIP) ||
(instruction->operands[i].mem.base == ZYDIS_REGISTER_RIP))
{
return ZYDIS_STATUS_DECODING_ERROR;
}
break;
default:
break;
Expand Down Expand Up @@ -4465,6 +4459,12 @@ static ZyanStatus ZydisCheckErrorConditions(ZydisDecoderContext* context,
case ZYDIS_REG_CONSTRAINTS_VSIB:
has_VSIB = ZYAN_TRUE;
break;
case ZYDIS_REG_CONSTRAINTS_NO_REL:
if (instruction->raw.modrm.mod == 0 && instruction->raw.modrm.rm == 5)
{
return ZYDIS_STATUS_DECODING_ERROR;
}
break;
default:
ZYAN_UNREACHABLE;
}
Expand Down
8 changes: 4 additions & 4 deletions src/Generated/InstructionDefinitions.inc
Original file line number Diff line number Diff line change
Expand Up @@ -120,8 +120,8 @@ const ZydisInstructionDefinitionLEGACY ISTR_DEFINITIONS_LEGACY[] =
{ ZYDIS_MNEMONIC_BNDCU ZYDIS_NOTMIN(2) ZYDIS_NOTMIN(0x16AB), 0, 1 ZYDIS_NOTMIN(0x0), ZYAN_FALSE ZYDIS_NOTMIN(ZYDIS_CATEGORY_MPX) ZYDIS_NOTMIN(ZYDIS_ISA_SET_MPX) ZYDIS_NOTMIN(ZYDIS_ISA_EXT_MPX) ZYDIS_NOTMIN(ZYDIS_BRANCH_TYPE_NONE) ZYDIS_NOTMIN(ZYDIS_EXCEPTION_CLASS_NONE), ZYDIS_REG_CONSTRAINTS_BND, ZYDIS_REG_CONSTRAINTS_NONE ZYDIS_NOTMIN(ZYDIS_RW_ACTION_NONE) ZYDIS_NOTMIN(ZYDIS_RW_ACTION_NONE) ZYDIS_NOTMIN(ZYDIS_RW_ACTION_NONE) ZYDIS_NOTMIN(ZYAN_FALSE), ZYAN_FALSE ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_TRUE) },
{ ZYDIS_MNEMONIC_BNDCU ZYDIS_NOTMIN(2) ZYDIS_NOTMIN(0x16AD), 0, 0 ZYDIS_NOTMIN(0x0), ZYAN_FALSE ZYDIS_NOTMIN(ZYDIS_CATEGORY_MPX) ZYDIS_NOTMIN(ZYDIS_ISA_SET_MPX) ZYDIS_NOTMIN(ZYDIS_ISA_EXT_MPX) ZYDIS_NOTMIN(ZYDIS_BRANCH_TYPE_NONE) ZYDIS_NOTMIN(ZYDIS_EXCEPTION_CLASS_NONE), ZYDIS_REG_CONSTRAINTS_BND, ZYDIS_REG_CONSTRAINTS_NONE ZYDIS_NOTMIN(ZYDIS_RW_ACTION_NONE) ZYDIS_NOTMIN(ZYDIS_RW_ACTION_NONE) ZYDIS_NOTMIN(ZYDIS_RW_ACTION_NONE) ZYDIS_NOTMIN(ZYAN_FALSE), ZYAN_FALSE ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) },
{ ZYDIS_MNEMONIC_BNDCU ZYDIS_NOTMIN(2) ZYDIS_NOTMIN(0x16AB), 0, 0 ZYDIS_NOTMIN(0x0), ZYAN_FALSE ZYDIS_NOTMIN(ZYDIS_CATEGORY_MPX) ZYDIS_NOTMIN(ZYDIS_ISA_SET_MPX) ZYDIS_NOTMIN(ZYDIS_ISA_EXT_MPX) ZYDIS_NOTMIN(ZYDIS_BRANCH_TYPE_NONE) ZYDIS_NOTMIN(ZYDIS_EXCEPTION_CLASS_NONE), ZYDIS_REG_CONSTRAINTS_BND, ZYDIS_REG_CONSTRAINTS_NONE ZYDIS_NOTMIN(ZYDIS_RW_ACTION_NONE) ZYDIS_NOTMIN(ZYDIS_RW_ACTION_NONE) ZYDIS_NOTMIN(ZYDIS_RW_ACTION_NONE) ZYDIS_NOTMIN(ZYAN_FALSE), ZYAN_FALSE ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_TRUE) },
{ ZYDIS_MNEMONIC_BNDLDX ZYDIS_NOTMIN(2) ZYDIS_NOTMIN(0x16AF), 0, 1 ZYDIS_NOTMIN(0x0), ZYAN_FALSE ZYDIS_NOTMIN(ZYDIS_CATEGORY_MPX) ZYDIS_NOTMIN(ZYDIS_ISA_SET_MPX) ZYDIS_NOTMIN(ZYDIS_ISA_EXT_MPX) ZYDIS_NOTMIN(ZYDIS_BRANCH_TYPE_NONE) ZYDIS_NOTMIN(ZYDIS_EXCEPTION_CLASS_NONE), ZYDIS_REG_CONSTRAINTS_BND, ZYDIS_REG_CONSTRAINTS_NONE ZYDIS_NOTMIN(ZYDIS_RW_ACTION_NONE) ZYDIS_NOTMIN(ZYDIS_RW_ACTION_NONE) ZYDIS_NOTMIN(ZYDIS_RW_ACTION_NONE) ZYDIS_NOTMIN(ZYAN_FALSE), ZYAN_FALSE ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_TRUE) },
{ ZYDIS_MNEMONIC_BNDLDX ZYDIS_NOTMIN(2) ZYDIS_NOTMIN(0x16B1), 0, 0 ZYDIS_NOTMIN(0x0), ZYAN_FALSE ZYDIS_NOTMIN(ZYDIS_CATEGORY_MPX) ZYDIS_NOTMIN(ZYDIS_ISA_SET_MPX) ZYDIS_NOTMIN(ZYDIS_ISA_EXT_MPX) ZYDIS_NOTMIN(ZYDIS_BRANCH_TYPE_NONE) ZYDIS_NOTMIN(ZYDIS_EXCEPTION_CLASS_NONE), ZYDIS_REG_CONSTRAINTS_BND, ZYDIS_REG_CONSTRAINTS_NONE ZYDIS_NOTMIN(ZYDIS_RW_ACTION_NONE) ZYDIS_NOTMIN(ZYDIS_RW_ACTION_NONE) ZYDIS_NOTMIN(ZYDIS_RW_ACTION_NONE) ZYDIS_NOTMIN(ZYAN_FALSE), ZYAN_FALSE ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_TRUE) },
{ ZYDIS_MNEMONIC_BNDLDX ZYDIS_NOTMIN(2) ZYDIS_NOTMIN(0x16AF), 0, 1 ZYDIS_NOTMIN(0x0), ZYAN_FALSE ZYDIS_NOTMIN(ZYDIS_CATEGORY_MPX) ZYDIS_NOTMIN(ZYDIS_ISA_SET_MPX) ZYDIS_NOTMIN(ZYDIS_ISA_EXT_MPX) ZYDIS_NOTMIN(ZYDIS_BRANCH_TYPE_NONE) ZYDIS_NOTMIN(ZYDIS_EXCEPTION_CLASS_NONE), ZYDIS_REG_CONSTRAINTS_BND, ZYDIS_REG_CONSTRAINTS_NO_REL ZYDIS_NOTMIN(ZYDIS_RW_ACTION_NONE) ZYDIS_NOTMIN(ZYDIS_RW_ACTION_NONE) ZYDIS_NOTMIN(ZYDIS_RW_ACTION_NONE) ZYDIS_NOTMIN(ZYAN_FALSE), ZYAN_FALSE ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_TRUE) },
{ ZYDIS_MNEMONIC_BNDLDX ZYDIS_NOTMIN(2) ZYDIS_NOTMIN(0x16B1), 0, 0 ZYDIS_NOTMIN(0x0), ZYAN_FALSE ZYDIS_NOTMIN(ZYDIS_CATEGORY_MPX) ZYDIS_NOTMIN(ZYDIS_ISA_SET_MPX) ZYDIS_NOTMIN(ZYDIS_ISA_EXT_MPX) ZYDIS_NOTMIN(ZYDIS_BRANCH_TYPE_NONE) ZYDIS_NOTMIN(ZYDIS_EXCEPTION_CLASS_NONE), ZYDIS_REG_CONSTRAINTS_BND, ZYDIS_REG_CONSTRAINTS_NO_REL ZYDIS_NOTMIN(ZYDIS_RW_ACTION_NONE) ZYDIS_NOTMIN(ZYDIS_RW_ACTION_NONE) ZYDIS_NOTMIN(ZYDIS_RW_ACTION_NONE) ZYDIS_NOTMIN(ZYAN_FALSE), ZYAN_FALSE ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_TRUE) },
{ ZYDIS_MNEMONIC_BNDMK ZYDIS_NOTMIN(2) ZYDIS_NOTMIN(0x16B3), 0, 1 ZYDIS_NOTMIN(0x0), ZYAN_FALSE ZYDIS_NOTMIN(ZYDIS_CATEGORY_MPX) ZYDIS_NOTMIN(ZYDIS_ISA_SET_MPX) ZYDIS_NOTMIN(ZYDIS_ISA_EXT_MPX) ZYDIS_NOTMIN(ZYDIS_BRANCH_TYPE_NONE) ZYDIS_NOTMIN(ZYDIS_EXCEPTION_CLASS_NONE), ZYDIS_REG_CONSTRAINTS_BND, ZYDIS_REG_CONSTRAINTS_NONE ZYDIS_NOTMIN(ZYDIS_RW_ACTION_NONE) ZYDIS_NOTMIN(ZYDIS_RW_ACTION_NONE) ZYDIS_NOTMIN(ZYDIS_RW_ACTION_NONE) ZYDIS_NOTMIN(ZYAN_FALSE), ZYAN_FALSE ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_TRUE) },
{ ZYDIS_MNEMONIC_BNDMK ZYDIS_NOTMIN(2) ZYDIS_NOTMIN(0x16B3), 0, 0 ZYDIS_NOTMIN(0x0), ZYAN_FALSE ZYDIS_NOTMIN(ZYDIS_CATEGORY_MPX) ZYDIS_NOTMIN(ZYDIS_ISA_SET_MPX) ZYDIS_NOTMIN(ZYDIS_ISA_EXT_MPX) ZYDIS_NOTMIN(ZYDIS_BRANCH_TYPE_NONE) ZYDIS_NOTMIN(ZYDIS_EXCEPTION_CLASS_NONE), ZYDIS_REG_CONSTRAINTS_BND, ZYDIS_REG_CONSTRAINTS_NONE ZYDIS_NOTMIN(ZYDIS_RW_ACTION_NONE) ZYDIS_NOTMIN(ZYDIS_RW_ACTION_NONE) ZYDIS_NOTMIN(ZYDIS_RW_ACTION_NONE) ZYDIS_NOTMIN(ZYAN_FALSE), ZYAN_FALSE ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_TRUE) },
{ ZYDIS_MNEMONIC_BNDMOV ZYDIS_NOTMIN(2) ZYDIS_NOTMIN(0x16B5), 0, 0 ZYDIS_NOTMIN(0x0), ZYAN_FALSE ZYDIS_NOTMIN(ZYDIS_CATEGORY_MPX) ZYDIS_NOTMIN(ZYDIS_ISA_SET_MPX) ZYDIS_NOTMIN(ZYDIS_ISA_EXT_MPX) ZYDIS_NOTMIN(ZYDIS_BRANCH_TYPE_NONE) ZYDIS_NOTMIN(ZYDIS_EXCEPTION_CLASS_NONE), ZYDIS_REG_CONSTRAINTS_BND, ZYDIS_REG_CONSTRAINTS_BND ZYDIS_NOTMIN(ZYDIS_RW_ACTION_NONE) ZYDIS_NOTMIN(ZYDIS_RW_ACTION_NONE) ZYDIS_NOTMIN(ZYDIS_RW_ACTION_NONE) ZYDIS_NOTMIN(ZYAN_FALSE), ZYAN_FALSE ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) },
Expand All @@ -130,8 +130,8 @@ const ZydisInstructionDefinitionLEGACY ISTR_DEFINITIONS_LEGACY[] =
{ ZYDIS_MNEMONIC_BNDMOV ZYDIS_NOTMIN(2) ZYDIS_NOTMIN(0x16BB), 0, 0 ZYDIS_NOTMIN(0x0), ZYAN_FALSE ZYDIS_NOTMIN(ZYDIS_CATEGORY_MPX) ZYDIS_NOTMIN(ZYDIS_ISA_SET_MPX) ZYDIS_NOTMIN(ZYDIS_ISA_EXT_MPX) ZYDIS_NOTMIN(ZYDIS_BRANCH_TYPE_NONE) ZYDIS_NOTMIN(ZYDIS_EXCEPTION_CLASS_NONE), ZYDIS_REG_CONSTRAINTS_BND, ZYDIS_REG_CONSTRAINTS_BND ZYDIS_NOTMIN(ZYDIS_RW_ACTION_NONE) ZYDIS_NOTMIN(ZYDIS_RW_ACTION_NONE) ZYDIS_NOTMIN(ZYDIS_RW_ACTION_NONE) ZYDIS_NOTMIN(ZYAN_FALSE), ZYAN_FALSE ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) },
{ ZYDIS_MNEMONIC_BNDMOV ZYDIS_NOTMIN(2) ZYDIS_NOTMIN(0x16BD), 0, 1 ZYDIS_NOTMIN(0x0), ZYAN_FALSE ZYDIS_NOTMIN(ZYDIS_CATEGORY_MPX) ZYDIS_NOTMIN(ZYDIS_ISA_SET_MPX) ZYDIS_NOTMIN(ZYDIS_ISA_EXT_MPX) ZYDIS_NOTMIN(ZYDIS_BRANCH_TYPE_NONE) ZYDIS_NOTMIN(ZYDIS_EXCEPTION_CLASS_NONE), ZYDIS_REG_CONSTRAINTS_BND, ZYDIS_REG_CONSTRAINTS_NONE ZYDIS_NOTMIN(ZYDIS_RW_ACTION_NONE) ZYDIS_NOTMIN(ZYDIS_RW_ACTION_NONE) ZYDIS_NOTMIN(ZYDIS_RW_ACTION_NONE) ZYDIS_NOTMIN(ZYAN_FALSE), ZYAN_FALSE ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_TRUE) },
{ ZYDIS_MNEMONIC_BNDMOV ZYDIS_NOTMIN(2) ZYDIS_NOTMIN(0x16BF), 0, 0 ZYDIS_NOTMIN(0x0), ZYAN_FALSE ZYDIS_NOTMIN(ZYDIS_CATEGORY_MPX) ZYDIS_NOTMIN(ZYDIS_ISA_SET_MPX) ZYDIS_NOTMIN(ZYDIS_ISA_EXT_MPX) ZYDIS_NOTMIN(ZYDIS_BRANCH_TYPE_NONE) ZYDIS_NOTMIN(ZYDIS_EXCEPTION_CLASS_NONE), ZYDIS_REG_CONSTRAINTS_BND, ZYDIS_REG_CONSTRAINTS_NONE ZYDIS_NOTMIN(ZYDIS_RW_ACTION_NONE) ZYDIS_NOTMIN(ZYDIS_RW_ACTION_NONE) ZYDIS_NOTMIN(ZYDIS_RW_ACTION_NONE) ZYDIS_NOTMIN(ZYAN_FALSE), ZYAN_FALSE ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_TRUE) },
{ ZYDIS_MNEMONIC_BNDSTX ZYDIS_NOTMIN(2) ZYDIS_NOTMIN(0x16C1), 0, 1 ZYDIS_NOTMIN(0x0), ZYAN_FALSE ZYDIS_NOTMIN(ZYDIS_CATEGORY_MPX) ZYDIS_NOTMIN(ZYDIS_ISA_SET_MPX) ZYDIS_NOTMIN(ZYDIS_ISA_EXT_MPX) ZYDIS_NOTMIN(ZYDIS_BRANCH_TYPE_NONE) ZYDIS_NOTMIN(ZYDIS_EXCEPTION_CLASS_NONE), ZYDIS_REG_CONSTRAINTS_BND, ZYDIS_REG_CONSTRAINTS_NONE ZYDIS_NOTMIN(ZYDIS_RW_ACTION_NONE) ZYDIS_NOTMIN(ZYDIS_RW_ACTION_NONE) ZYDIS_NOTMIN(ZYDIS_RW_ACTION_NONE) ZYDIS_NOTMIN(ZYAN_FALSE), ZYAN_FALSE ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_TRUE) },
{ ZYDIS_MNEMONIC_BNDSTX ZYDIS_NOTMIN(2) ZYDIS_NOTMIN(0x16C3), 0, 0 ZYDIS_NOTMIN(0x0), ZYAN_FALSE ZYDIS_NOTMIN(ZYDIS_CATEGORY_MPX) ZYDIS_NOTMIN(ZYDIS_ISA_SET_MPX) ZYDIS_NOTMIN(ZYDIS_ISA_EXT_MPX) ZYDIS_NOTMIN(ZYDIS_BRANCH_TYPE_NONE) ZYDIS_NOTMIN(ZYDIS_EXCEPTION_CLASS_NONE), ZYDIS_REG_CONSTRAINTS_BND, ZYDIS_REG_CONSTRAINTS_NONE ZYDIS_NOTMIN(ZYDIS_RW_ACTION_NONE) ZYDIS_NOTMIN(ZYDIS_RW_ACTION_NONE) ZYDIS_NOTMIN(ZYDIS_RW_ACTION_NONE) ZYDIS_NOTMIN(ZYAN_FALSE), ZYAN_FALSE ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_TRUE) },
{ ZYDIS_MNEMONIC_BNDSTX ZYDIS_NOTMIN(2) ZYDIS_NOTMIN(0x16C1), 0, 1 ZYDIS_NOTMIN(0x0), ZYAN_FALSE ZYDIS_NOTMIN(ZYDIS_CATEGORY_MPX) ZYDIS_NOTMIN(ZYDIS_ISA_SET_MPX) ZYDIS_NOTMIN(ZYDIS_ISA_EXT_MPX) ZYDIS_NOTMIN(ZYDIS_BRANCH_TYPE_NONE) ZYDIS_NOTMIN(ZYDIS_EXCEPTION_CLASS_NONE), ZYDIS_REG_CONSTRAINTS_BND, ZYDIS_REG_CONSTRAINTS_NO_REL ZYDIS_NOTMIN(ZYDIS_RW_ACTION_NONE) ZYDIS_NOTMIN(ZYDIS_RW_ACTION_NONE) ZYDIS_NOTMIN(ZYDIS_RW_ACTION_NONE) ZYDIS_NOTMIN(ZYAN_FALSE), ZYAN_FALSE ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_TRUE) },
{ ZYDIS_MNEMONIC_BNDSTX ZYDIS_NOTMIN(2) ZYDIS_NOTMIN(0x16C3), 0, 0 ZYDIS_NOTMIN(0x0), ZYAN_FALSE ZYDIS_NOTMIN(ZYDIS_CATEGORY_MPX) ZYDIS_NOTMIN(ZYDIS_ISA_SET_MPX) ZYDIS_NOTMIN(ZYDIS_ISA_EXT_MPX) ZYDIS_NOTMIN(ZYDIS_BRANCH_TYPE_NONE) ZYDIS_NOTMIN(ZYDIS_EXCEPTION_CLASS_NONE), ZYDIS_REG_CONSTRAINTS_BND, ZYDIS_REG_CONSTRAINTS_NO_REL ZYDIS_NOTMIN(ZYDIS_RW_ACTION_NONE) ZYDIS_NOTMIN(ZYDIS_RW_ACTION_NONE) ZYDIS_NOTMIN(ZYDIS_RW_ACTION_NONE) ZYDIS_NOTMIN(ZYAN_FALSE), ZYAN_FALSE ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_TRUE) },
{ ZYDIS_MNEMONIC_BOUND ZYDIS_NOTMIN(2) ZYDIS_NOTMIN(0x16C5), 0, 0 ZYDIS_NOTMIN(0x0), ZYAN_FALSE ZYDIS_NOTMIN(ZYDIS_CATEGORY_INTERRUPT) ZYDIS_NOTMIN(ZYDIS_ISA_SET_I186) ZYDIS_NOTMIN(ZYDIS_ISA_EXT_BASE) ZYDIS_NOTMIN(ZYDIS_BRANCH_TYPE_NONE) ZYDIS_NOTMIN(ZYDIS_EXCEPTION_CLASS_NONE), ZYDIS_REG_CONSTRAINTS_NONE, ZYDIS_REG_CONSTRAINTS_NONE ZYDIS_NOTMIN(ZYDIS_RW_ACTION_NONE) ZYDIS_NOTMIN(ZYDIS_RW_ACTION_NONE) ZYDIS_NOTMIN(ZYDIS_RW_ACTION_NONE) ZYDIS_NOTMIN(ZYAN_FALSE), ZYAN_FALSE ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_TRUE) },
{ ZYDIS_MNEMONIC_BOUND ZYDIS_NOTMIN(2) ZYDIS_NOTMIN(0x16C7), 0, 0 ZYDIS_NOTMIN(0x0), ZYAN_FALSE ZYDIS_NOTMIN(ZYDIS_CATEGORY_INTERRUPT) ZYDIS_NOTMIN(ZYDIS_ISA_SET_I186) ZYDIS_NOTMIN(ZYDIS_ISA_EXT_BASE) ZYDIS_NOTMIN(ZYDIS_BRANCH_TYPE_NONE) ZYDIS_NOTMIN(ZYDIS_EXCEPTION_CLASS_NONE), ZYDIS_REG_CONSTRAINTS_NONE, ZYDIS_REG_CONSTRAINTS_NONE ZYDIS_NOTMIN(ZYDIS_RW_ACTION_NONE) ZYDIS_NOTMIN(ZYDIS_RW_ACTION_NONE) ZYDIS_NOTMIN(ZYDIS_RW_ACTION_NONE) ZYDIS_NOTMIN(ZYAN_FALSE), ZYAN_FALSE ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_TRUE) },
{ ZYDIS_MNEMONIC_BSF ZYDIS_NOTMIN(3) ZYDIS_NOTMIN(0xBD8), 0, 0 ZYDIS_NOTMIN(0x46), ZYAN_FALSE ZYDIS_NOTMIN(ZYDIS_CATEGORY_BITBYTE) ZYDIS_NOTMIN(ZYDIS_ISA_SET_I386) ZYDIS_NOTMIN(ZYDIS_ISA_EXT_BASE) ZYDIS_NOTMIN(ZYDIS_BRANCH_TYPE_NONE) ZYDIS_NOTMIN(ZYDIS_EXCEPTION_CLASS_NONE), ZYDIS_REG_CONSTRAINTS_NONE, ZYDIS_REG_CONSTRAINTS_NONE ZYDIS_NOTMIN(ZYDIS_RW_ACTION_NONE) ZYDIS_NOTMIN(ZYDIS_RW_ACTION_NONE) ZYDIS_NOTMIN(ZYDIS_RW_ACTION_NONE) ZYDIS_NOTMIN(ZYAN_FALSE), ZYAN_FALSE ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) ZYDIS_NOTMIN(ZYAN_FALSE) },
Expand Down

0 comments on commit 88c97a2

Please sign in to comment.