github zyantific/zydis v2.0.0-beta1

latest releases: v4.1.1, v4.1.0, v4.0.0...
pre-release8 years ago

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

    • BITALG
    • GFNI
    • RDPID
    • VAES
    • VBMI2
    • VNNI
    • VPCLMULQDQ
  • Added implicit operands for instructions with stack-operations

    • Implicit SP/ESP/RSP register-operand
    • Implicit [SP/ESP/RSP] memory-operand
  • Implemented decoder-modes to support ISA-extensions that conflict with existing instructions

    • Added decoder-modes
      • ZYDIS_DECODER_MODE_MINIMAL
      • ZYDIS_DECODER_MODE_AMD_BRANCHES
      • ZYDIS_DECODER_MODE_KNC
      • ZYDIS_DECODER_MODE_MPX
      • ZYDIS_DECODER_MODE_CET
      • ZYDIS_DECODER_MODE_LZCNT
      • ZYDIS_DECODER_MODE_TZCNT
    • Removed ZydisDecoderInitEx and the possibility to pass a decoder-granularity (use ZYDIS_DECODER_MODE_MINIMAL instead)
  • Decoder improvements

    • Instructions which are only valid in protected-mode are now rejected, if ZYDIS_MACHINE_MODE_REAL_16 is used
    • The scale of memory-operands is now correctly set to 1 in 16-bit mode, if an index register was specified
  • Major formatter changes

    • Switched to custom length-aware ZydisString "class" to improve performance and usability
    • Added ZydisFormatterSetAttribute function for simple formatter customization
      • ZYDIS_FORMATTER_PROP_UPPERCASE
      • ZYDIS_FORMATTER_PROP_FORCE_MEMSEG
      • ZYDIS_FORMATTER_PROP_FORCE_MEMSIZE
      • ZYDIS_FORMATTER_PROP_ADDR_FORMAT
      • ZYDIS_FORMATTER_PROP_DISP_FORMAT
      • ZYDIS_FORMATTER_PROP_IMM_FORMAT
      • ZYDIS_FORMATTER_PROP_HEX_UPPERCASE
      • ZYDIS_FORMATTER_PROP_HEX_PREFIX
      • ZYDIS_FORMATTER_PROP_HEX_SUFFIX
      • ZYDIS_FORMATTER_PROP_HEX_PADDING_ADDR
      • ZYDIS_FORMATTER_PROP_HEX_PADDING_DISP
      • ZYDIS_FORMATTER_PROP_HEX_PADDING_IMM
    • Hook refactorings
      • Added ZYDIS_FORMATTER_HOOK_PRE_OPERAND, ZYDIS_FORMATTER_HOOK_POST_OPERAND and ZYDIS_FORMATTER_HOOK_PRINT_REGISTER
      • Renamed ZYDIS_FORMATTER_HOOK_PRINT_DISPLACEMENT to ZYDIS_FORMATTER_HOOK_PRINT_DISP
      • Renamed ZYDIS_FORMATTER_HOOK_PRINT_IMMEDIATE to ZYDIS_FORMATTER_HOOK_PRINT_IMM
      • Renamed ZYDIS_FORMATTER_HOOK_PRINT_OPERANDSIZE to ZYDIS_FORMATTER_HOOK_PRINT_MEMSIZE
      • Removed ZYDIS_FORMATTER_HOOK_PRINT_SEGMENT
  • Improved no-libc support

    • Added ZYDIS_NO_LIBC CMake switch
    • When enabled, removes dependency on memset, memcpy and strlen
    • Added custom integer types
    • Added own NULL
  • Added project logo

  • Added Visual Studio project files

    • Static-, shared- and kernel-mode configuration
    • Contributed by Mattiwatti

Don't miss a new zydis release

NewReleases is sending notifications on new releases.