|
Zydis
v3.0.0
|
Defines the basic ZydisDecodedInstruction and ZydisDecodedOperand structs.
More...
#include <Zycore/Types.h>#include <Zydis/MetaInfo.h>#include <Zydis/Mnemonic.h>#include <Zydis/Register.h>#include <Zydis/SharedTypes.h>Go to the source code of this file.
Macros | |
| #define | ZYDIS_ATTRIB_HAS_MODRM 0x0000000000000001 |
The instruction has the ModRM byte. | |
| #define | ZYDIS_ATTRIB_HAS_SIB 0x0000000000000002 |
The instruction has the SIB byte. | |
| #define | ZYDIS_ATTRIB_HAS_REX 0x0000000000000004 |
The instruction has the REX prefix. | |
| #define | ZYDIS_ATTRIB_HAS_XOP 0x0000000000000008 |
The instruction has the XOP prefix. | |
| #define | ZYDIS_ATTRIB_HAS_VEX 0x0000000000000010 |
The instruction has the VEX prefix. | |
| #define | ZYDIS_ATTRIB_HAS_EVEX 0x0000000000000020 |
The instruction has the EVEX prefix. | |
| #define | ZYDIS_ATTRIB_HAS_MVEX 0x0000000000000040 |
The instruction has the MVEX prefix. | |
| #define | ZYDIS_ATTRIB_IS_RELATIVE 0x0000000000000080 |
| The instruction has one or more operands with position-relative offsets. | |
| #define | ZYDIS_ATTRIB_IS_PRIVILEGED 0x0000000000000100 |
| The instruction is privileged. More... | |
| #define | ZYDIS_ATTRIB_CPUFLAG_ACCESS 0x0000001000000000 |
| The instruction accesses one or more CPU-flags. | |
| #define | ZYDIS_ATTRIB_CPU_STATE_CR 0x0000002000000000 |
| The instruction may conditionally read the general CPU state. | |
| #define | ZYDIS_ATTRIB_CPU_STATE_CW 0x0000004000000000 |
| The instruction may conditionally write the general CPU state. | |
| #define | ZYDIS_ATTRIB_FPU_STATE_CR 0x0000008000000000 |
| The instruction may conditionally read the FPU state (X87, MMX). | |
| #define | ZYDIS_ATTRIB_FPU_STATE_CW 0x0000010000000000 |
| The instruction may conditionally write the FPU state (X87, MMX). | |
| #define | ZYDIS_ATTRIB_XMM_STATE_CR 0x0000020000000000 |
| The instruction may conditionally read the XMM state (AVX, AVX2, AVX-512). | |
| #define | ZYDIS_ATTRIB_XMM_STATE_CW 0x0000040000000000 |
| The instruction may conditionally write the XMM state (AVX, AVX2, AVX-512). | |
| #define | ZYDIS_ATTRIB_ACCEPTS_LOCK 0x0000000000000200 |
The instruction accepts the LOCK prefix (0xF0). | |
| #define | ZYDIS_ATTRIB_ACCEPTS_REP 0x0000000000000400 |
The instruction accepts the REP prefix (0xF3). | |
| #define | ZYDIS_ATTRIB_ACCEPTS_REPE 0x0000000000000800 |
The instruction accepts the REPE/REPZ prefix (0xF3). | |
| #define | ZYDIS_ATTRIB_ACCEPTS_REPZ 0x0000000000000800 |
The instruction accepts the REPE/REPZ prefix (0xF3). | |
| #define | ZYDIS_ATTRIB_ACCEPTS_REPNE 0x0000000000001000 |
The instruction accepts the REPNE/REPNZ prefix (0xF2). | |
| #define | ZYDIS_ATTRIB_ACCEPTS_REPNZ 0x0000000000001000 |
The instruction accepts the REPNE/REPNZ prefix (0xF2). | |
| #define | ZYDIS_ATTRIB_ACCEPTS_BND 0x0000000000002000 |
The instruction accepts the BND prefix (0xF2). | |
| #define | ZYDIS_ATTRIB_ACCEPTS_XACQUIRE 0x0000000000004000 |
The instruction accepts the XACQUIRE prefix (0xF2). | |
| #define | ZYDIS_ATTRIB_ACCEPTS_XRELEASE 0x0000000000008000 |
The instruction accepts the XRELEASE prefix (0xF3). | |
| #define | ZYDIS_ATTRIB_ACCEPTS_HLE_WITHOUT_LOCK 0x0000000000010000 |
The instruction accepts the XACQUIRE/XRELEASE prefixes (0xF2, 0xF3) without the LOCK prefix (0x0F). | |
| #define | ZYDIS_ATTRIB_ACCEPTS_BRANCH_HINTS 0x0000000000020000 |
| The instruction accepts branch hints (0x2E, 0x3E). | |
| #define | ZYDIS_ATTRIB_ACCEPTS_SEGMENT 0x0000000000040000 |
The instruction accepts segment prefixes (0x2E, 0x36, 0x3E, 0x26, 0x64, 0x65). | |
| #define | ZYDIS_ATTRIB_HAS_LOCK 0x0000000000080000 |
The instruction has the LOCK prefix (0xF0). | |
| #define | ZYDIS_ATTRIB_HAS_REP 0x0000000000100000 |
The instruction has the REP prefix (0xF3). | |
| #define | ZYDIS_ATTRIB_HAS_REPE 0x0000000000200000 |
The instruction has the REPE/REPZ prefix (0xF3). | |
| #define | ZYDIS_ATTRIB_HAS_REPZ 0x0000000000200000 |
The instruction has the REPE/REPZ prefix (0xF3). | |
| #define | ZYDIS_ATTRIB_HAS_REPNE 0x0000000000400000 |
The instruction has the REPNE/REPNZ prefix (0xF2). | |
| #define | ZYDIS_ATTRIB_HAS_REPNZ 0x0000000000400000 |
The instruction has the REPNE/REPNZ prefix (0xF2). | |
| #define | ZYDIS_ATTRIB_HAS_BND 0x0000000000800000 |
The instruction has the BND prefix (0xF2). | |
| #define | ZYDIS_ATTRIB_HAS_XACQUIRE 0x0000000001000000 |
The instruction has the XACQUIRE prefix (0xF2). | |
| #define | ZYDIS_ATTRIB_HAS_XRELEASE 0x0000000002000000 |
The instruction has the XRELEASE prefix (0xF3). | |
| #define | ZYDIS_ATTRIB_HAS_BRANCH_NOT_TAKEN 0x0000000004000000 |
The instruction has the branch-not-taken hint (0x2E). | |
| #define | ZYDIS_ATTRIB_HAS_BRANCH_TAKEN 0x0000000008000000 |
The instruction has the branch-taken hint (0x3E). | |
| #define | ZYDIS_ATTRIB_HAS_SEGMENT 0x00000003F0000000 |
| The instruction has a segment modifier. | |
| #define | ZYDIS_ATTRIB_HAS_SEGMENT_CS 0x0000000010000000 |
The instruction has the CS segment modifier (0x2E). | |
| #define | ZYDIS_ATTRIB_HAS_SEGMENT_SS 0x0000000020000000 |
The instruction has the SS segment modifier (0x36). | |
| #define | ZYDIS_ATTRIB_HAS_SEGMENT_DS 0x0000000040000000 |
The instruction has the DS segment modifier (0x3E). | |
| #define | ZYDIS_ATTRIB_HAS_SEGMENT_ES 0x0000000080000000 |
The instruction has the ES segment modifier (0x26). | |
| #define | ZYDIS_ATTRIB_HAS_SEGMENT_FS 0x0000000100000000 |
The instruction has the FS segment modifier (0x64). | |
| #define | ZYDIS_ATTRIB_HAS_SEGMENT_GS 0x0000000200000000 |
The instruction has the GS segment modifier (0x65). | |
| #define | ZYDIS_ATTRIB_HAS_OPERANDSIZE 0x0000000400000000 |
The instruction has the operand-size override prefix (0x66). | |
| #define | ZYDIS_ATTRIB_HAS_ADDRESSSIZE 0x0000000800000000 |
The instruction has the address-size override prefix (0x67). | |
Typedefs | |
| typedef enum ZydisMemoryOperandType_ | ZydisMemoryOperandType |
Defines the ZydisMemoryOperandType enum. | |
| typedef struct ZydisDecodedOperand_ | ZydisDecodedOperand |
Defines the ZydisDecodedOperand struct. | |
| typedef ZyanU64 | ZydisInstructionAttributes |
Defines the ZydisInstructionAttributes data-type. | |
| typedef ZyanU32 | ZydisCPUFlags |
Defines the ZydisCPUFlags data-type. | |
| typedef enum ZydisCPUFlag_ | ZydisCPUFlag |
Defines the ZydisCPUFlag enum. | |
| typedef enum ZydisCPUFlagAction_ | ZydisCPUFlagAction |
Defines the ZydisCPUFlagAction enum. | |
| typedef enum ZydisBranchType_ | ZydisBranchType |
Defines the ZydisBranchType enum. | |
| typedef enum ZydisExceptionClass_ | ZydisExceptionClass |
Defines the ZydisExceptionClass enum. | |
| typedef enum ZydisMaskMode_ | ZydisMaskMode |
Defines the ZydisMaskMode enum. | |
| typedef enum ZydisBroadcastMode_ | ZydisBroadcastMode |
Defines the ZydisBroadcastMode enum. | |
| typedef enum ZydisRoundingMode_ | ZydisRoundingMode |
Defines the ZydisRoundingMode enum. | |
| typedef enum ZydisSwizzleMode_ | ZydisSwizzleMode |
Defines the ZydisSwizzleMode enum. | |
| typedef enum ZydisConversionMode_ | ZydisConversionMode |
Defines the ZydisConversionMode enum. | |
| typedef enum ZydisPrefixType_ | ZydisPrefixType |
Defines the ZydisPrefixType enum. | |
| typedef struct ZydisDecodedInstruction_ | ZydisDecodedInstruction |
Defines the ZydisDecodedInstruction struct. | |
Enumerations | |
| enum | ZydisMemoryOperandType_ { ZYDIS_MEMOP_TYPE_INVALID, ZYDIS_MEMOP_TYPE_MEM, ZYDIS_MEMOP_TYPE_AGEN, ZYDIS_MEMOP_TYPE_MIB, ZYDIS_MEMOP_TYPE_MAX_VALUE = ZYDIS_MEMOP_TYPE_MIB, ZYDIS_MEMOP_TYPE_REQUIRED_BITS = ZYAN_BITS_TO_REPRESENT(ZYDIS_MEMOP_TYPE_MAX_VALUE) } |
Defines the ZydisMemoryOperandType enum. More... | |
| enum | ZydisCPUFlag_ { ZYDIS_CPUFLAG_CF, ZYDIS_CPUFLAG_PF, ZYDIS_CPUFLAG_AF, ZYDIS_CPUFLAG_ZF, ZYDIS_CPUFLAG_SF, ZYDIS_CPUFLAG_TF, ZYDIS_CPUFLAG_IF, ZYDIS_CPUFLAG_DF, ZYDIS_CPUFLAG_OF, ZYDIS_CPUFLAG_IOPL, ZYDIS_CPUFLAG_NT, ZYDIS_CPUFLAG_RF, ZYDIS_CPUFLAG_VM, ZYDIS_CPUFLAG_AC, ZYDIS_CPUFLAG_VIF, ZYDIS_CPUFLAG_VIP, ZYDIS_CPUFLAG_ID, ZYDIS_CPUFLAG_C0, ZYDIS_CPUFLAG_C1, ZYDIS_CPUFLAG_C2, ZYDIS_CPUFLAG_C3, ZYDIS_CPUFLAG_MAX_VALUE = ZYDIS_CPUFLAG_C3, ZYDIS_CPUFLAG_REQUIRED_BITS = ZYAN_BITS_TO_REPRESENT(ZYDIS_CPUFLAG_MAX_VALUE) } |
Defines the ZydisCPUFlag enum. More... | |
| enum | ZydisCPUFlagAction_ { ZYDIS_CPUFLAG_ACTION_NONE, ZYDIS_CPUFLAG_ACTION_TESTED, ZYDIS_CPUFLAG_ACTION_TESTED_MODIFIED, ZYDIS_CPUFLAG_ACTION_MODIFIED, ZYDIS_CPUFLAG_ACTION_SET_0, ZYDIS_CPUFLAG_ACTION_SET_1, ZYDIS_CPUFLAG_ACTION_UNDEFINED, ZYDIS_CPUFLAG_ACTION_MAX_VALUE = ZYDIS_CPUFLAG_ACTION_UNDEFINED, ZYDIS_CPUFLAG_ACTION_REQUIRED_BITS = ZYAN_BITS_TO_REPRESENT(ZYDIS_CPUFLAG_ACTION_MAX_VALUE) } |
Defines the ZydisCPUFlagAction enum. More... | |
| enum | ZydisBranchType_ { ZYDIS_BRANCH_TYPE_NONE, ZYDIS_BRANCH_TYPE_SHORT, ZYDIS_BRANCH_TYPE_NEAR, ZYDIS_BRANCH_TYPE_FAR, ZYDIS_BRANCH_TYPE_MAX_VALUE = ZYDIS_BRANCH_TYPE_FAR, ZYDIS_BRANCH_TYPE_REQUIRED_BITS = ZYAN_BITS_TO_REPRESENT(ZYDIS_BRANCH_TYPE_MAX_VALUE) } |
Defines the ZydisBranchType enum. More... | |
| enum | ZydisExceptionClass_ { ZYDIS_EXCEPTION_CLASS_NONE, ZYDIS_EXCEPTION_CLASS_SSE1, ZYDIS_EXCEPTION_CLASS_SSE2, ZYDIS_EXCEPTION_CLASS_SSE3, ZYDIS_EXCEPTION_CLASS_SSE4, ZYDIS_EXCEPTION_CLASS_SSE5, ZYDIS_EXCEPTION_CLASS_SSE7, ZYDIS_EXCEPTION_CLASS_AVX1, ZYDIS_EXCEPTION_CLASS_AVX2, ZYDIS_EXCEPTION_CLASS_AVX3, ZYDIS_EXCEPTION_CLASS_AVX4, ZYDIS_EXCEPTION_CLASS_AVX5, ZYDIS_EXCEPTION_CLASS_AVX6, ZYDIS_EXCEPTION_CLASS_AVX7, ZYDIS_EXCEPTION_CLASS_AVX8, ZYDIS_EXCEPTION_CLASS_AVX11, ZYDIS_EXCEPTION_CLASS_AVX12, ZYDIS_EXCEPTION_CLASS_E1, ZYDIS_EXCEPTION_CLASS_E1NF, ZYDIS_EXCEPTION_CLASS_E2, ZYDIS_EXCEPTION_CLASS_E2NF, ZYDIS_EXCEPTION_CLASS_E3, ZYDIS_EXCEPTION_CLASS_E3NF, ZYDIS_EXCEPTION_CLASS_E4, ZYDIS_EXCEPTION_CLASS_E4NF, ZYDIS_EXCEPTION_CLASS_E5, ZYDIS_EXCEPTION_CLASS_E5NF, ZYDIS_EXCEPTION_CLASS_E6, ZYDIS_EXCEPTION_CLASS_E6NF, ZYDIS_EXCEPTION_CLASS_E7NM, ZYDIS_EXCEPTION_CLASS_E7NM128, ZYDIS_EXCEPTION_CLASS_E9NF, ZYDIS_EXCEPTION_CLASS_E10, ZYDIS_EXCEPTION_CLASS_E10NF, ZYDIS_EXCEPTION_CLASS_E11, ZYDIS_EXCEPTION_CLASS_E11NF, ZYDIS_EXCEPTION_CLASS_E12, ZYDIS_EXCEPTION_CLASS_E12NP, ZYDIS_EXCEPTION_CLASS_K20, ZYDIS_EXCEPTION_CLASS_K21, ZYDIS_EXCEPTION_CLASS_MAX_VALUE = ZYDIS_EXCEPTION_CLASS_K21, ZYDIS_EXCEPTION_CLASS_REQUIRED_BITS = ZYAN_BITS_TO_REPRESENT(ZYDIS_EXCEPTION_CLASS_MAX_VALUE) } |
Defines the ZydisExceptionClass enum. More... | |
| enum | ZydisMaskMode_ { ZYDIS_MASK_MODE_INVALID, ZYDIS_MASK_MODE_DISABLED, ZYDIS_MASK_MODE_MERGING, ZYDIS_MASK_MODE_ZEROING, ZYDIS_MASK_MODE_CONTROL, ZYDIS_MASK_MODE_CONTROL_ZEROING, ZYDIS_MASK_MODE_MAX_VALUE = ZYDIS_MASK_MODE_CONTROL_ZEROING, ZYDIS_MASK_MODE_REQUIRED_BITS = ZYAN_BITS_TO_REPRESENT(ZYDIS_MASK_MODE_MAX_VALUE) } |
Defines the ZydisMaskMode enum. More... | |
| enum | ZydisBroadcastMode_ { ZYDIS_BROADCAST_MODE_INVALID, ZYDIS_BROADCAST_MODE_1_TO_2, ZYDIS_BROADCAST_MODE_1_TO_4, ZYDIS_BROADCAST_MODE_1_TO_8, ZYDIS_BROADCAST_MODE_1_TO_16, ZYDIS_BROADCAST_MODE_1_TO_32, ZYDIS_BROADCAST_MODE_1_TO_64, ZYDIS_BROADCAST_MODE_2_TO_4, ZYDIS_BROADCAST_MODE_2_TO_8, ZYDIS_BROADCAST_MODE_2_TO_16, ZYDIS_BROADCAST_MODE_4_TO_8, ZYDIS_BROADCAST_MODE_4_TO_16, ZYDIS_BROADCAST_MODE_8_TO_16, ZYDIS_BROADCAST_MODE_MAX_VALUE = ZYDIS_BROADCAST_MODE_8_TO_16, ZYDIS_BROADCAST_MODE_REQUIRED_BITS = ZYAN_BITS_TO_REPRESENT(ZYDIS_BROADCAST_MODE_MAX_VALUE) } |
Defines the ZydisBroadcastMode enum. More... | |
| enum | ZydisRoundingMode_ { ZYDIS_ROUNDING_MODE_INVALID, ZYDIS_ROUNDING_MODE_RN, ZYDIS_ROUNDING_MODE_RD, ZYDIS_ROUNDING_MODE_RU, ZYDIS_ROUNDING_MODE_RZ, ZYDIS_ROUNDING_MODE_MAX_VALUE = ZYDIS_ROUNDING_MODE_RZ, ZYDIS_ROUNDING_MODE_REQUIRED_BITS = ZYAN_BITS_TO_REPRESENT(ZYDIS_ROUNDING_MODE_MAX_VALUE) } |
Defines the ZydisRoundingMode enum. More... | |
| enum | ZydisSwizzleMode_ { ZYDIS_SWIZZLE_MODE_INVALID, ZYDIS_SWIZZLE_MODE_DCBA, ZYDIS_SWIZZLE_MODE_CDAB, ZYDIS_SWIZZLE_MODE_BADC, ZYDIS_SWIZZLE_MODE_DACB, ZYDIS_SWIZZLE_MODE_AAAA, ZYDIS_SWIZZLE_MODE_BBBB, ZYDIS_SWIZZLE_MODE_CCCC, ZYDIS_SWIZZLE_MODE_DDDD, ZYDIS_SWIZZLE_MODE_MAX_VALUE = ZYDIS_SWIZZLE_MODE_DDDD, ZYDIS_SWIZZLE_MODE_REQUIRED_BITS = ZYAN_BITS_TO_REPRESENT(ZYDIS_SWIZZLE_MODE_MAX_VALUE) } |
Defines the ZydisSwizzleMode enum. More... | |
| enum | ZydisConversionMode_ { ZYDIS_CONVERSION_MODE_INVALID, ZYDIS_CONVERSION_MODE_FLOAT16, ZYDIS_CONVERSION_MODE_SINT8, ZYDIS_CONVERSION_MODE_UINT8, ZYDIS_CONVERSION_MODE_SINT16, ZYDIS_CONVERSION_MODE_UINT16, ZYDIS_CONVERSION_MODE_MAX_VALUE = ZYDIS_CONVERSION_MODE_UINT16, ZYDIS_CONVERSION_MODE_REQUIRED_BITS = ZYAN_BITS_TO_REPRESENT(ZYDIS_CONVERSION_MODE_MAX_VALUE) } |
Defines the ZydisConversionMode enum. More... | |
| enum | ZydisPrefixType_ { ZYDIS_PREFIX_TYPE_IGNORED, ZYDIS_PREFIX_TYPE_EFFECTIVE, ZYDIS_PREFIX_TYPE_MANDATORY, ZYDIS_PREFIX_TYPE_MAX_VALUE = ZYDIS_PREFIX_TYPE_MANDATORY, ZYDIS_PREFIX_TYPE_REQUIRED_BITS = ZYAN_BITS_TO_REPRESENT(ZYDIS_PREFIX_TYPE_MAX_VALUE) } |
Defines the ZydisPrefixType enum. More... | |
Defines the basic ZydisDecodedInstruction and ZydisDecodedOperand structs.
| #define ZYDIS_ATTRIB_IS_PRIVILEGED 0x0000000000000100 |
The instruction is privileged.
Privileged instructions are any instructions that require a current ring level below 3.
| enum ZydisBranchType_ |
Defines the ZydisBranchType enum.
| enum ZydisBroadcastMode_ |
| enum ZydisConversionMode_ |
| enum ZydisCPUFlag_ |
Defines the ZydisCPUFlag enum.
| enum ZydisCPUFlagAction_ |
Defines the ZydisCPUFlagAction enum.
| enum ZydisExceptionClass_ |
| enum ZydisMaskMode_ |
Defines the ZydisMaskMode enum.
Defines the ZydisMemoryOperandType enum.
| enum ZydisPrefixType_ |
Defines the ZydisPrefixType enum.
| enum ZydisRoundingMode_ |
Defines the ZydisRoundingMode enum.
| enum ZydisSwizzleMode_ |
1.8.14