1
0
mirror of https://github.com/bitdefender/bddisasm.git synced 2024-12-22 22:18:09 +00:00
bddisasm/rsbddisasm
2021-10-19 17:54:48 +03:00
..
bddisasm Initial Rust bindings implementation 2021-10-19 17:54:48 +03:00
bddisasm-sys Initial Rust bindings implementation 2021-10-19 17:54:48 +03:00
Cargo.toml Initial Rust bindings implementation 2021-10-19 17:54:48 +03:00
README.md Initial Rust bindings implementation 2021-10-19 17:54:48 +03:00

bddisasm Rust bindings

Build

Run cargo build or cargo build --release.

Directory structure

bddisasm-sys

This crate uses the *-sys crate convention and links with libbddisasm, exposing a raw, low-level, interface.

bddisasm

This crate aims to offer a higher-level interface over bddisasm-sys. It is currently held back by the fact that I don't really know Rust.

Parts of it are auto-generated, with slight manual changes (for example, the Mnemonic enum and related functions).

TODO

  • encode registers, not just the register index (for example, instead of Gpr we should have Gpr::Rax, Gpr::Eax, etc)
  • more documentation for the operand module, with examples on how to work wit h each operand type
  • more examples for cpuid
  • more examples for cpu_modes
  • an API to check if an instruction is supported with certain CPU modes on or off (currently a user has to manually check the CpuModes structure)
  • implement Display for more types (especially those in operand)