Download Latest Version v4.1.1 source code.tar.gz (811.4 kB)
Email in envelope

Get an email when there's a new version of Zydis

Home / v4.0.0
Name Modified Size InfoDownloads / Week
Parent folder
zydis-amalgamated.zip 2022-11-20 409.5 kB
zydis-amalgamated.tar.gz 2022-11-20 408.7 kB
README.md 2022-11-20 4.4 kB
v4.0.0 source code.tar.gz 2022-11-20 596.7 kB
v4.0.0 source code.zip 2022-11-20 852.0 kB
Totals: 5 Items   2.3 MB 0
  • Added encoding functionality, allowing users to use Zydis for code generation and rewriting
  • A huge thanks goes to @mappzor, who contributed pretty much the entire implementation by himself
  • Split instruction and operand decoding, allowing users to decode only the data they actually need
  • Added support for creating amalgamized builds, essentially combining all of Zydis and the required Zycore source code files and headers into a single header and source file, greatly simplifying linking against Zydis on the quick
  • Improved and automatically built documentation for all recent versions of Zydis
  • Added maximally simplified all-in-one disassembler function (see #379 for details)

Check out our corresponding blog article for details and examples!

Porting Guide

We offer a porting guide for the breaking changes from v3 to v4.

Important Changes

Decoder

  • Fix general address-width handling by @flobernd in #238
  • Fix register constraints of certain AMX instructions by @flobernd in #271
  • Fixed constraint enforcement for AMX instructions by @mappzor in #276
  • Decouple operand decoding by @flobernd in #278
  • Remove deprecated accessed_flags flags field from ZydisDecodedInstruction by @flobernd in #262
  • Add unions in decoded instruction and operands by @athre0z in #326
  • Declare structs as anonymous within anonymous unions by @ZehMatt in #329
  • Change st0 operand visibility as specified by SDM by @athre0z in #331
  • Improved signedness data accuracy and consistency (Fixes [#327]) by @mappzor in #336

Encoder

  • Implemented instruction encoder by @mappzor in #254
  • Added ZydisEncoderNopFill by @mappzor in #376
  • Added function to calculate and encode relative operands by @mappzor in #368

Build

  • Add option to use system installed Zycore by @Tachi107 in #250
  • Fix build on macOS 12 by @athre0z in #259
  • Get rid of ZydisExportConfig.h by @athre0z in #301
  • Add script for generating an amalgamated distribution by @athre0z in #302
  • Add WebAssembly support by @williballenthin in #277
  • Improve LTO support by @athre0z in #333
  • Add Makefile for quick access to various operations by @athre0z in #346

Misc

  • Zycore: updated to v1.4.1
  • Utils: remove ZydisPE by @athre0z in #257
  • Docs: add man pages by @Tachi107 in #267
  • Registers: add lookup tables for ZydisRegister and ZydisRegisterClass by @flobernd in #283
  • Tools: improve ZydisInfo by @flobernd in #285
  • Formatter: fix MASM style disassembly by @flobernd in #298
  • Segments: move segment functions into a separate, optional header by @athre0z in #348
  • Formatter: simplify formatter interface by @athre0z in #361
  • Doc: switch Doxygen theme by @athre0z in #373
  • CI: add automated documentation builds by @athre0z in #374

Full Changelog: https://github.com/zyantific/zydis/compare/v3.2.1...v4.0.0

Source: README.md, updated 2022-11-20