capstone-rs-git
This is a fork of capstone-rs that is sourced directly from the master branch of the upstream repository, allowing the use of certain unreleased features.
The purpose of re-publishing the crate is to allow libraries that also depend on said unreleased features to be published on crates.io.
Bindings to the capstone library disassembly framework.
The Capstone struct is the main interface to the library.
Requirements
capstone-rs uses the capstone-sys crate to provide the low-level bindings to the Capstone C library.
See the capstone-sys page for the requirements and supported platforms.
- Minimum Rust Version:
1.81.0
Example
extern crate capstone;
use *;
const X86_CODE: &'static = b"\x55\x48\x8b\x05\xb8\x13\x00\x00\xe9\x14\x9e\x08\x00\x45\x31\xe4";
/// Print register names
/// Print instruction group names
Produces:
Found 4 instructions
0x1000: pushq %rbp
read regs: rsp
write regs: rsp
insn groups: mode64
0x1001: movq 0x13b8(%rip), %rax
read regs:
write regs:
insn groups:
0x1008: jmp 0x8ae21
read regs:
write regs:
insn groups: jump
0x100d: xorl %r12d, %r12d
read regs:
write regs: rflags
insn groups:
To see more demos, see the examples/ directory.
More complex demos welcome!
Features
full†: do not compile Capstone C library in diet modestd†: enablestd-only features, such as theErrortraituse_bindgen: runbindgento generate Rust bindings to Capstone C library instead of using pre-generated bindings (not recommended)arch_$ARCH†: enable arch$ARCHsupport in capstone, e.g.arch_arm64enables arch arm64 supportsupport_all_archs†: enable all archs available in capstone, imply allarch_$ARCHfeaturescheck_only: do not compile and link capstone C library, you can enable it to speed upcargo checkby 5x
†: enabled by default
Reporting Issues
Please open a Github issue
Author
- Library Author: Nguyen Anh Quynh
- Binding Author(s):
- m4b m4b.github.io@gmail.com
- Richo Healey richo@psych0tik.net
- Travis Finkenauer tmfinken@gmail.com
You may find a full list of contributors on Github.