This is the first beta release, the public interface is now expected to be stable.
Detailed changelog (since v2.0.0-alpha2)
-
Added new ISA-extensions
BITALGGFNIRDPIDVAESVBMI2VNNIVPCLMULQDQ
-
Added implicit operands for instructions with stack-operations
- Implicit
SP/ESP/RSPregister-operand - Implicit
[SP/ESP/RSP]memory-operand
- Implicit
-
Implemented decoder-modes to support ISA-extensions that conflict with existing instructions
- Added decoder-modes
ZYDIS_DECODER_MODE_MINIMALZYDIS_DECODER_MODE_AMD_BRANCHESZYDIS_DECODER_MODE_KNCZYDIS_DECODER_MODE_MPXZYDIS_DECODER_MODE_CETZYDIS_DECODER_MODE_LZCNTZYDIS_DECODER_MODE_TZCNT
- Removed
ZydisDecoderInitExand the possibility to pass a decoder-granularity (useZYDIS_DECODER_MODE_MINIMALinstead)
- Added decoder-modes
-
Decoder improvements
- Instructions which are only valid in protected-mode are now rejected, if
ZYDIS_MACHINE_MODE_REAL_16is used - The
scaleof memory-operands is now correctly set to1in 16-bit mode, if an index register was specified
- Instructions which are only valid in protected-mode are now rejected, if
-
Major formatter changes
- Switched to custom length-aware
ZydisString"class" to improve performance and usability - Added
ZydisFormatterSetAttributefunction for simple formatter customizationZYDIS_FORMATTER_PROP_UPPERCASEZYDIS_FORMATTER_PROP_FORCE_MEMSEGZYDIS_FORMATTER_PROP_FORCE_MEMSIZEZYDIS_FORMATTER_PROP_ADDR_FORMATZYDIS_FORMATTER_PROP_DISP_FORMATZYDIS_FORMATTER_PROP_IMM_FORMATZYDIS_FORMATTER_PROP_HEX_UPPERCASEZYDIS_FORMATTER_PROP_HEX_PREFIXZYDIS_FORMATTER_PROP_HEX_SUFFIXZYDIS_FORMATTER_PROP_HEX_PADDING_ADDRZYDIS_FORMATTER_PROP_HEX_PADDING_DISPZYDIS_FORMATTER_PROP_HEX_PADDING_IMM
- Hook refactorings
- Added
ZYDIS_FORMATTER_HOOK_PRE_OPERAND,ZYDIS_FORMATTER_HOOK_POST_OPERANDandZYDIS_FORMATTER_HOOK_PRINT_REGISTER - Renamed
ZYDIS_FORMATTER_HOOK_PRINT_DISPLACEMENTtoZYDIS_FORMATTER_HOOK_PRINT_DISP - Renamed
ZYDIS_FORMATTER_HOOK_PRINT_IMMEDIATEtoZYDIS_FORMATTER_HOOK_PRINT_IMM - Renamed
ZYDIS_FORMATTER_HOOK_PRINT_OPERANDSIZEtoZYDIS_FORMATTER_HOOK_PRINT_MEMSIZE - Removed
ZYDIS_FORMATTER_HOOK_PRINT_SEGMENT
- Added
- Switched to custom length-aware
-
Improved no-libc support
- Added
ZYDIS_NO_LIBCCMake switch - When enabled, removes dependency on
memset,memcpyandstrlen - Added custom integer types
- Added own
NULL
- Added
-
Added project logo
- Contributed by LekoArts
-
Added Visual Studio project files
- Static-, shared- and kernel-mode configuration
- Contributed by Mattiwatti