Skip to content

v4.0.0

Compare
Choose a tag to compare
@athre0z athre0z released this 20 Nov 17:10
· 64 commits to master since this release
  • 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

Build

Misc

Full Changelog: v3.2.1...v4.0.0