Zydis
v2.0.0-alpha1
|
Defines the basic ZydisDecodedInstruction
and ZydisDecodedOperand
structs.
More...
#include <Zydis/CommonTypes.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. More... | |
#define | ZYDIS_ATTRIB_HAS_SIB 0x0000000000000002 |
The instruction has the SUB byte. More... | |
#define | ZYDIS_ATTRIB_HAS_REX 0x0000000000000004 |
The instruction has the REX prefix. More... | |
#define | ZYDIS_ATTRIB_HAS_XOP 0x0000000000000008 |
The instruction has the XOP prefix. More... | |
#define | ZYDIS_ATTRIB_HAS_VEX 0x0000000000000010 |
The instruction has the VEX prefix. More... | |
#define | ZYDIS_ATTRIB_HAS_EVEX 0x0000000000000020 |
The instruction has the EVEX prefix. More... | |
#define | ZYDIS_ATTRIB_IS_RELATIVE 0x0000000000000040 |
The instruction has one or more operands with position-relative offsets. More... | |
#define | ZYDIS_ATTRIB_IS_PRIVILEGED 0x0000000000000080 |
The instruction is privileged. More... | |
#define | ZYDIS_ATTRIB_ACCEPTS_LOCK 0x0000000000000100 |
The instruction accepts the lock prefix (0xF0). More... | |
#define | ZYDIS_ATTRIB_ACCEPTS_REP 0x0000000000000200 |
The instruction accepts the rep prefix (0xF3). More... | |
#define | ZYDIS_ATTRIB_ACCEPTS_REPE 0x0000000000000400 |
The instruction accepts the repe/repz prefix (0xF3). More... | |
#define | ZYDIS_ATTRIB_ACCEPTS_REPZ 0x0000000000000400 |
The instruction accepts the repe/repz prefix (0xF3). More... | |
#define | ZYDIS_ATTRIB_ACCEPTS_REPNE 0x0000000000000800 |
The instruction accepts the repne/repnz prefix (0xF2). More... | |
#define | ZYDIS_ATTRIB_ACCEPTS_REPNZ 0x0000000000000800 |
The instruction accepts the repne/repnz prefix (0xF2). More... | |
#define | ZYDIS_ATTRIB_ACCEPTS_BOUND 0x0000000000001000 |
The instruction accepts the bound prefix (0xF2). More... | |
#define | ZYDIS_ATTRIB_ACCEPTS_XACQUIRE 0x0000000000002000 |
The instruction accepts the xacquire prefix (0xF2). More... | |
#define | ZYDIS_ATTRIB_ACCEPTS_XRELEASE 0x0000000000004000 |
The instruction accepts the xrelease prefix (0xF3). More... | |
#define | ZYDIS_ATTRIB_ACCEPTS_HLE_WITHOUT_LOCK 0x0000000000008000 |
The instruction accepts the xacquire/xrelease prefixes (0xF2, 0xF3) without the lock-prefix (0x0F). More... | |
#define | ZYDIS_ATTRIB_ACCEPTS_BRANCH_HINTS 0x0000000000010000 |
The instruction accepts branch hints (0x2E, 0x3E). More... | |
#define | ZYDIS_ATTRIB_ACCEPTS_SEGMENT 0x0000000000020000 |
The instruction accepts segment prefixes (0x2E, 0x36, 0x3E, 0x26, 0x64, 0x65). More... | |
#define | ZYDIS_ATTRIB_HAS_LOCK 0x0000000000100000 |
The instruction has the lock prefix (0xF0). More... | |
#define | ZYDIS_ATTRIB_HAS_REP 0x0000000000200000 |
The instruction has the rep prefix (0xF3). More... | |
#define | ZYDIS_ATTRIB_HAS_REPE 0x0000000000400000 |
The instruction has the repe/repz prefix (0xF3). More... | |
#define | ZYDIS_ATTRIB_HAS_REPZ 0x0000000000400000 |
The instruction has the repe/repz prefix (0xF3). More... | |
#define | ZYDIS_ATTRIB_HAS_REPNE 0x0000000000800000 |
The instruction has the repne/repnz prefix (0xF2). More... | |
#define | ZYDIS_ATTRIB_HAS_REPNZ 0x0000000000800000 |
The instruction has the repne/repnz prefix (0xF2). More... | |
#define | ZYDIS_ATTRIB_HAS_BOUND 0x0000000001000000 |
The instruction has the bound prefix (0xF2). More... | |
#define | ZYDIS_ATTRIB_HAS_XACQUIRE 0x0000000002000000 |
The instruction has the xacquire prefix (0xF2). More... | |
#define | ZYDIS_ATTRIB_HAS_XRELEASE 0x0000000004000000 |
The instruction has the xrelease prefix (0xF3). More... | |
#define | ZYDIS_ATTRIB_HAS_BRANCH_NOT_TAKEN 0x0000000008000000 |
The instruction has the branch-not-taken hint (0x2E). More... | |
#define | ZYDIS_ATTRIB_HAS_BRANCH_TAKEN 0x0000000010000000 |
The instruction has the branch-taken hint (0x3E). More... | |
#define | ZYDIS_ATTRIB_HAS_SEGMENT 0x00000007E0000000 |
The instruction has a segment modifier. More... | |
#define | ZYDIS_ATTRIB_HAS_SEGMENT_CS 0x0000000020000000 |
The instruction has the CS segment modifier (0x2E). More... | |
#define | ZYDIS_ATTRIB_HAS_SEGMENT_SS 0x0000000040000000 |
The instruction has the SS segment modifier (0x36). More... | |
#define | ZYDIS_ATTRIB_HAS_SEGMENT_DS 0x0000000080000000 |
The instruction has the DS segment modifier (0x3E). More... | |
#define | ZYDIS_ATTRIB_HAS_SEGMENT_ES 0x0000000100000000 |
The instruction has the ES segment modifier (0x26). More... | |
#define | ZYDIS_ATTRIB_HAS_SEGMENT_FS 0x0000000200000000 |
The instruction has the FS segment modifier (0x64). More... | |
#define | ZYDIS_ATTRIB_HAS_SEGMENT_GS 0x0000000400000000 |
The instruction has the GS segment modifier (0x65). More... | |
#define | ZYDIS_ATTRIB_HAS_OPERANDSIZE 0x0000000800000000 |
The instruction has the operand-size prefix (0x66). More... | |
#define | ZYDIS_ATTRIB_HAS_ADDRESSSIZE 0x0000001000000000 |
The instruction has the address-size prefix (0x67). More... | |
Typedefs | |
typedef struct ZydisDecodedOperand_ | ZydisDecodedOperand |
Defines the ZydisDecodedOperand struct. More... | |
typedef uint64_t | ZydisInstructionAttributes |
Defines the ZydisInstructionAttributes datatype. More... | |
typedef uint8_t | ZydisCPUFlag |
Defines the ZydisCPUFlag datatype. More... | |
typedef uint32_t | ZydisCPUFlagMask |
Defines the ZydisCPUFlagMask datatype. More... | |
typedef uint8_t | ZydisCPUFlagAction |
Defines the ZydisCPUFlagAction datatype. More... | |
typedef uint16_t | ZydisExceptionClass |
Defines the ZydisExceptionClass datatype. More... | |
typedef uint16_t | ZydisVectorLength |
Defines the ZydisVectorLength datatype. More... | |
typedef uint8_t | ZydisMaskMode |
Defines the ZydisMaskMode datatype. More... | |
typedef uint16_t | ZydisBroadcastMode |
Defines the ZydisBroadcastMode datatype. More... | |
typedef uint8_t | ZydisRoundingMode |
Defines the ZydisRoundingMode datatype. More... | |
typedef uint16_t | ZydisSwizzleMode |
Defines the ZydisSwizzleMode datatype. More... | |
typedef uint16_t | ZydisConversionMode |
Defines the ZydisConversionMode datatype. More... | |
typedef struct ZydisDecodedInstruction_ | ZydisDecodedInstruction |
Defines the ZydisDecodedInstruction struct. More... | |
Defines the basic ZydisDecodedInstruction
and ZydisDecodedOperand
structs.
#define ZYDIS_ATTRIB_ACCEPTS_BOUND 0x0000000000001000 |
The instruction accepts the bound prefix (0xF2).
#define ZYDIS_ATTRIB_ACCEPTS_BRANCH_HINTS 0x0000000000010000 |
The instruction accepts branch hints (0x2E, 0x3E).
#define ZYDIS_ATTRIB_ACCEPTS_HLE_WITHOUT_LOCK 0x0000000000008000 |
The instruction accepts the xacquire/xrelease prefixes (0xF2, 0xF3) without the lock-prefix (0x0F).
#define ZYDIS_ATTRIB_ACCEPTS_LOCK 0x0000000000000100 |
The instruction accepts the lock prefix (0xF0).
#define ZYDIS_ATTRIB_ACCEPTS_REP 0x0000000000000200 |
The instruction accepts the rep prefix (0xF3).
#define ZYDIS_ATTRIB_ACCEPTS_REPE 0x0000000000000400 |
The instruction accepts the repe/repz prefix (0xF3).
#define ZYDIS_ATTRIB_ACCEPTS_REPNE 0x0000000000000800 |
The instruction accepts the repne/repnz prefix (0xF2).
#define ZYDIS_ATTRIB_ACCEPTS_REPNZ 0x0000000000000800 |
The instruction accepts the repne/repnz prefix (0xF2).
#define ZYDIS_ATTRIB_ACCEPTS_REPZ 0x0000000000000400 |
The instruction accepts the repe/repz prefix (0xF3).
#define ZYDIS_ATTRIB_ACCEPTS_SEGMENT 0x0000000000020000 |
The instruction accepts segment prefixes (0x2E, 0x36, 0x3E, 0x26, 0x64, 0x65).
#define ZYDIS_ATTRIB_ACCEPTS_XACQUIRE 0x0000000000002000 |
The instruction accepts the xacquire prefix (0xF2).
#define ZYDIS_ATTRIB_ACCEPTS_XRELEASE 0x0000000000004000 |
The instruction accepts the xrelease prefix (0xF3).
#define ZYDIS_ATTRIB_HAS_ADDRESSSIZE 0x0000001000000000 |
The instruction has the address-size prefix (0x67).
#define ZYDIS_ATTRIB_HAS_BOUND 0x0000000001000000 |
The instruction has the bound prefix (0xF2).
#define ZYDIS_ATTRIB_HAS_BRANCH_NOT_TAKEN 0x0000000008000000 |
The instruction has the branch-not-taken hint (0x2E).
#define ZYDIS_ATTRIB_HAS_BRANCH_TAKEN 0x0000000010000000 |
The instruction has the branch-taken hint (0x3E).
#define ZYDIS_ATTRIB_HAS_EVEX 0x0000000000000020 |
The instruction has the EVEX prefix.
#define ZYDIS_ATTRIB_HAS_LOCK 0x0000000000100000 |
The instruction has the lock prefix (0xF0).
#define ZYDIS_ATTRIB_HAS_MODRM 0x0000000000000001 |
The instruction has the ModRM byte.
#define ZYDIS_ATTRIB_HAS_OPERANDSIZE 0x0000000800000000 |
The instruction has the operand-size prefix (0x66).
#define ZYDIS_ATTRIB_HAS_REP 0x0000000000200000 |
The instruction has the rep prefix (0xF3).
#define ZYDIS_ATTRIB_HAS_REPE 0x0000000000400000 |
The instruction has the repe/repz prefix (0xF3).
#define ZYDIS_ATTRIB_HAS_REPNE 0x0000000000800000 |
The instruction has the repne/repnz prefix (0xF2).
#define ZYDIS_ATTRIB_HAS_REPNZ 0x0000000000800000 |
The instruction has the repne/repnz prefix (0xF2).
#define ZYDIS_ATTRIB_HAS_REPZ 0x0000000000400000 |
The instruction has the repe/repz prefix (0xF3).
#define ZYDIS_ATTRIB_HAS_REX 0x0000000000000004 |
The instruction has the REX prefix.
#define ZYDIS_ATTRIB_HAS_SEGMENT 0x00000007E0000000 |
The instruction has a segment modifier.
#define ZYDIS_ATTRIB_HAS_SEGMENT_CS 0x0000000020000000 |
The instruction has the CS segment modifier (0x2E).
#define ZYDIS_ATTRIB_HAS_SEGMENT_DS 0x0000000080000000 |
The instruction has the DS segment modifier (0x3E).
#define ZYDIS_ATTRIB_HAS_SEGMENT_ES 0x0000000100000000 |
The instruction has the ES segment modifier (0x26).
#define ZYDIS_ATTRIB_HAS_SEGMENT_FS 0x0000000200000000 |
The instruction has the FS segment modifier (0x64).
#define ZYDIS_ATTRIB_HAS_SEGMENT_GS 0x0000000400000000 |
The instruction has the GS segment modifier (0x65).
#define ZYDIS_ATTRIB_HAS_SEGMENT_SS 0x0000000040000000 |
The instruction has the SS segment modifier (0x36).
#define ZYDIS_ATTRIB_HAS_SIB 0x0000000000000002 |
The instruction has the SUB byte.
#define ZYDIS_ATTRIB_HAS_VEX 0x0000000000000010 |
The instruction has the VEX prefix.
#define ZYDIS_ATTRIB_HAS_XACQUIRE 0x0000000002000000 |
The instruction has the xacquire prefix (0xF2).
#define ZYDIS_ATTRIB_HAS_XOP 0x0000000000000008 |
The instruction has the XOP prefix.
#define ZYDIS_ATTRIB_HAS_XRELEASE 0x0000000004000000 |
The instruction has the xrelease prefix (0xF3).
#define ZYDIS_ATTRIB_IS_PRIVILEGED 0x0000000000000080 |
The instruction is privileged.
Priviliged instructions are any instructions that require a current ring level below 3.
#define ZYDIS_ATTRIB_IS_RELATIVE 0x0000000000000040 |
The instruction has one or more operands with position-relative offsets.
typedef uint16_t ZydisBroadcastMode |
Defines the ZydisBroadcastMode
datatype.
typedef uint16_t ZydisConversionMode |
Defines the ZydisConversionMode
datatype.
typedef uint8_t ZydisCPUFlag |
Defines the ZydisCPUFlag
datatype.
typedef uint8_t ZydisCPUFlagAction |
Defines the ZydisCPUFlagAction
datatype.
typedef uint32_t ZydisCPUFlagMask |
Defines the ZydisCPUFlagMask
datatype.
typedef struct ZydisDecodedInstruction_ ZydisDecodedInstruction |
Defines the ZydisDecodedInstruction
struct.
typedef struct ZydisDecodedOperand_ ZydisDecodedOperand |
Defines the ZydisDecodedOperand
struct.
typedef uint16_t ZydisExceptionClass |
Defines the ZydisExceptionClass
datatype.
typedef uint64_t ZydisInstructionAttributes |
Defines the ZydisInstructionAttributes
datatype.
typedef uint8_t ZydisMaskMode |
Defines the ZydisMaskMode
datatype.
typedef uint8_t ZydisRoundingMode |
Defines the ZydisRoundingMode
datatype.
typedef uint16_t ZydisSwizzleMode |
Defines the ZydisSwizzleMode
datatype.
typedef uint16_t ZydisVectorLength |
Defines the ZydisVectorLength
datatype.
enum ZydisBroadcastModes |
Values that represent AVX broadcast-modes.
enum ZydisConversionModes |
enum ZydisCPUFlagActions |
enum ZydisCPUFlags |
Values that represent CPU-flags.
Values that represent exception-classes.
enum ZydisMaskModes |
enum ZydisRoundingModes |
enum ZydisSwizzleModes |
enum ZydisVectorLengths |