35 #include <Zycore/Defines.h>
51 #define ZYDIS_MAX_INSTRUCTION_SEGMENT_COUNT 9
Defines the basic ZydisDecodedInstruction and ZydisDecodedOperand structs.
ZyanU32 ZydisCPUFlags
Defines the ZydisCPUFlags data-type.
Definition: DecoderTypes.h:435
enum ZydisCPUFlagAction_ ZydisCPUFlagAction
Defines the ZydisCPUFlagAction enum.
Status code definitions and check macros.
enum ZydisInstructionSegment_ ZydisInstructionSegment
Defines the ZydisInstructionSegment struct.
#define ZYDIS_MAX_INSTRUCTION_SEGMENT_COUNT
Definition: Utils.h:51
struct ZydisInstructionSegments_ ZydisInstructionSegments
Defines the ZydisInstructionSegments struct.
ZydisInstructionSegment_
Defines the ZydisInstructionSegment struct.
Definition: Utils.h:63
@ ZYDIS_INSTR_SEGMENT_NONE
Definition: Utils.h:64
@ ZYDIS_INSTR_SEGMENT_XOP
The XOP prefix bytes.
Definition: Utils.h:76
@ ZYDIS_INSTR_SEGMENT_IMMEDIATE
The immediate bytes.
Definition: Utils.h:108
@ ZYDIS_INSTR_SEGMENT_OPCODE
The opcode bytes.
Definition: Utils.h:92
@ ZYDIS_INSTR_SEGMENT_MODRM
The ModRM byte.
Definition: Utils.h:96
@ ZYDIS_INSTR_SEGMENT_MVEX
The MVEX prefix bytes.
Definition: Utils.h:88
@ ZYDIS_INSTR_SEGMENT_REX
The effective REX prefix byte.
Definition: Utils.h:72
@ ZYDIS_INSTR_SEGMENT_SIB
The SIB byte.
Definition: Utils.h:100
@ ZYDIS_INSTR_SEGMENT_REQUIRED_BITS
The minimum number of bits required to represent all values of this enum.
Definition: Utils.h:117
@ ZYDIS_INSTR_SEGMENT_EVEX
The EVEX prefix bytes.
Definition: Utils.h:84
@ ZYDIS_INSTR_SEGMENT_VEX
The VEX prefix bytes.
Definition: Utils.h:80
@ ZYDIS_INSTR_SEGMENT_DISPLACEMENT
The displacement bytes.
Definition: Utils.h:104
@ ZYDIS_INSTR_SEGMENT_PREFIXES
The legacy prefixes (including ignored REX prefixes).
Definition: Utils.h:68
@ ZYDIS_INSTR_SEGMENT_MAX_VALUE
Maximum value of this enum.
Definition: Utils.h:113
ZYDIS_EXPORT ZyanStatus ZydisCalcAbsoluteAddress(const ZydisDecodedInstruction *instruction, const ZydisDecodedOperand *operand, ZyanU64 runtime_address, ZyanU64 *result_address)
Calculates the absolute address value for the given instruction operand.
ZYDIS_EXPORT ZyanStatus ZydisCalcAbsoluteAddressEx(const ZydisDecodedInstruction *instruction, const ZydisDecodedOperand *operand, ZyanU64 runtime_address, const ZydisRegisterContext *register_context, ZyanU64 *result_address)
Calculates the absolute address value for the given instruction operand.
ZYDIS_EXPORT ZyanStatus ZydisGetAccessedFlagsRead(const ZydisDecodedInstruction *instruction, ZydisCPUFlags *flags)
Returns a mask of accessed CPU-flags that are read (tested) by the current instruction.
ZYDIS_EXPORT ZyanStatus ZydisGetInstructionSegments(const ZydisDecodedInstruction *instruction, ZydisInstructionSegments *segments)
Returns offsets and sizes of all logical instruction segments (e.g.
ZYDIS_EXPORT ZyanStatus ZydisGetAccessedFlagsWritten(const ZydisDecodedInstruction *instruction, ZydisCPUFlags *flags)
Returns a mask of accessed CPU-flags that are written (modified, undefined) by the current instructio...
ZYDIS_EXPORT ZyanStatus ZydisGetAccessedFlagsByAction(const ZydisDecodedInstruction *instruction, ZydisCPUFlagAction action, ZydisCPUFlags *flags)
Returns a mask of accessed CPU-flags matching the given action.
Defines the ZydisDecodedInstruction struct.
Definition: DecoderTypes.h:892
Defines the ZydisDecodedOperand struct.
Definition: DecoderTypes.h:92
Defines the ZydisInstructionSegments struct.
Definition: Utils.h:124
ZyanU8 count
The number of logical instruction segments.
Definition: Utils.h:128
struct ZydisInstructionSegments_::@7 segments[ZYDIS_MAX_INSTRUCTION_SEGMENT_COUNT]
ZyanU8 size
The size of the segment, in bytes.
Definition: Utils.h:142
ZydisInstructionSegment type
The type of the segment.
Definition: Utils.h:134
ZyanU8 offset
The offset of the segment relative to the start of the instruction (in bytes).
Definition: Utils.h:138
Defines the ZydisRegisterContext struct.
Definition: Register.h:167