Skip to content

Latest commit

 

History

History
121 lines (69 loc) · 3.78 KB

File metadata and controls

121 lines (69 loc) · 3.78 KB

Unreleased

Nothing here yet.

Added

  • InstructionBytes which can be used by Sleigh to disassemble a sequence of bytes

Added

  • Support for serializing libsla structures using serde. Thanks @soruh

Fixed

  • AddressSpace from another Sleigh instance is now properly recognized.

Changed

  • LoadImage trait renamed to InstructionLoader.
  • disassemble_native returns a single instruction instead of a singleton list.
  • GhidraSleighBuilder sla parsing simplified. Internally no longer supports libsla-sys XML decoding.

Minor update moving code out of symbolic-pcode workspace and into its own repository

Changed

  • Updated README.md to link to this change log

Added

  • Support for fuzzing libsla-sys
  • New raw sla encoding format which does not include compression or data header

Changed

  • Updated README.md to reflect release of the sleigh-config crate. This crate removes the need to manually compile Ghidra .slaspec files, which in most cases should eliminate the need to reference the Ghidra repository.

Added

  • Added an alternative build method to GhidraSleighBuilder to enable building with sla file contents directly. This limitation was introduced during the upgrade to Ghidra 11.4.

Changed

  • Upgraded to Ghidra 11.4.
  • Extracted internal sys module to its own libsla-sys crate.

Changed

  • Updated documentation regarding compilation of .sla files. Can now build .sla files from Rust using sleigh-compiler crate.
  • Upgraded thiserror from 1 to 2

Added

  • Sleigh::register_name: Get the name for a register identified by VarnodeData.
  • Sleigh::register_name_map: Get a mapping of all registers as VarnodeData to their respective names.
  • Implemented PartialOrd and Ord on VarnodeData and dependent types to support ordering in register_name_map.

Changed

  • DependencyError::source must now implement Send and Sync. This is required to convert Error to the error reporting type of other reporting frameworks such as eyre.
  • Debug implementations for Address and AddressSpaceId to use hex values. For Ghidra the internal AddressSpaceId is actually the virtual address of the AddressSpace C++ structure.

Changed

  • Replaced GhidraSleigh::new with GhidraSleigh::builder to improve construction ergonomics. The necessary objects required to construct GhidraSleigh (.pspec and .sla files) must be provided before it is possible to instantiate the object.

Fixed

  • Various Rust clippy lints

Fixed

  • Only publish relevant Ghidra files when publishing crate

Fixed

  • Crate publishing mistake

Added

  • README.md

Initial release!