Zydis
v2.0.1
|
Defines the basic ZydisDecodedInstruction
and ZydisDecodedOperand
structs.
More...
#include <Zydis/CommonTypes.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.
Data Structures | |
struct | ZydisDecodedOperand_ |
Defines the ZydisDecodedOperand struct. More... | |
struct | ZydisDecodedInstruction_ |
Defines the ZydisDecodedInstruction struct. More... | |
Macros | |
#define | ZYDIS_ATTRIB_HAS_MODRM 0x0000000000000001 |
The instruction has the ModRM byte. | |
#define | ZYDIS_ATTRIB_HAS_SIB 0x0000000000000002 |
The instruction has the SUB 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_IS_FAR_BRANCH 0x0000001000000000 |
The instruction is a far JMP/CALL/RET. | |
#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_BOUND 0x0000000000002000 |
The instruction accepts the bound 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_BOUND 0x0000000000800000 |
The instruction has the bound 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 prefix (0x66). | |
#define | ZYDIS_ATTRIB_HAS_ADDRESSSIZE 0x0000000800000000 |
The instruction has the address-size prefix (0x67). | |
Typedefs | |
typedef ZydisU8 | ZydisMemoryOperandType |
Defines the ZydisMemoryOperandType datatype. | |
typedef struct ZydisDecodedOperand_ | ZydisDecodedOperand |
Defines the ZydisDecodedOperand struct. | |
typedef ZydisU64 | ZydisInstructionAttributes |
Defines the ZydisInstructionAttributes datatype. | |
typedef ZydisU8 | ZydisCPUFlag |
Defines the ZydisCPUFlag datatype. | |
typedef ZydisU32 | ZydisCPUFlagMask |
Defines the ZydisCPUFlagMask datatype. | |
typedef ZydisU8 | ZydisCPUFlagAction |
Defines the ZydisCPUFlagAction datatype. | |
typedef ZydisU8 | ZydisExceptionClass |
Defines the ZydisExceptionClass datatype. | |
typedef ZydisU16 | ZydisVectorLength |
Defines the ZydisVectorLength datatype. | |
typedef ZydisU8 | ZydisMaskMode |
Defines the ZydisMaskMode datatype. | |
typedef ZydisU8 | ZydisBroadcastMode |
Defines the ZydisBroadcastMode datatype. | |
typedef ZydisU8 | ZydisRoundingMode |
Defines the ZydisRoundingMode datatype. | |
typedef ZydisU8 | ZydisSwizzleMode |
Defines the ZydisSwizzleMode datatype. | |
typedef ZydisU8 | ZydisConversionMode |
Defines the ZydisConversionMode datatype. | |
typedef struct ZydisDecodedInstruction_ | ZydisDecodedInstruction |
Defines the ZydisDecodedInstruction struct. | |
Enumerations | |
enum | ZydisMemoryOperandTypes { 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 } |
Values that represent memory-operand types. More... | |
enum | ZydisCPUFlags { 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 } |
Values that represent CPU-flags. More... | |
enum | ZydisCPUFlagActions { ZYDIS_CPUFLAG_ACTION_NONE , ZYDIS_CPUFLAG_ACTION_TESTED , 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 } |
Values that represent CPU-flag actions. More... | |
enum | ZydisExceptionClasses { 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 } |
Values that represent exception-classes. More... | |
enum | ZydisVectorLengths { ZYDIS_VECTOR_LENGTH_INVALID = 0 , ZYDIS_VECTOR_LENGTH_128 = 128 , ZYDIS_VECTOR_LENGTH_256 = 256 , ZYDIS_VECTOR_LENGTH_512 = 512 , ZYDIS_VECTOR_LENGTH_MAX_VALUE = ZYDIS_VECTOR_LENGTH_512 } |
Values that represent vector-lengths. More... | |
enum | ZydisMaskModes { ZYDIS_MASK_MODE_INVALID , ZYDIS_MASK_MODE_MERGE , ZYDIS_MASK_MODE_ZERO , ZYDIS_MASK_MODE_MAX_VALUE = ZYDIS_MASK_MODE_ZERO } |
Values that represent AVX mask-modes. More... | |
enum | ZydisBroadcastModes { 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 } |
Values that represent AVX broadcast-modes. More... | |
enum | ZydisRoundingModes { 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 } |
Values that represent AVX rounding-modes. More... | |
enum | ZydisSwizzleModes { 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 } |
Values that represent swizzle-modes. More... | |
enum | ZydisConversionModes { 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 } |
Values that represent conversion-modes. More... | |
Defines the basic ZydisDecodedInstruction
and ZydisDecodedOperand
structs.
#define ZYDIS_ATTRIB_IS_PRIVILEGED 0x0000000000000100 |
The instruction is privileged.
Priviliged instructions are any instructions that require a current ring level below 3.
enum ZydisBroadcastModes |
enum ZydisConversionModes |
enum ZydisCPUFlagActions |
enum ZydisCPUFlags |
Values that represent CPU-flags.
enum ZydisMaskModes |
Values that represent AVX mask-modes.
Values that represent memory-operand types.
enum ZydisRoundingModes |
enum ZydisSwizzleModes |
enum ZydisVectorLengths |