#capstone #disassembly #bindings #engine #instructions #x86 #arch

capstone3

对capstone反汇编引擎(http://capstone-engine.org/)的高级绑定

1 个不稳定版本

使用旧的Rust 2015

0.1.0 2016年12月16日

#8 in #capstone


用于 cargo-sym

MIT 协议

25KB
546

包含 (Mach-o可执行文件, 9KB) examples/darwin

capstone3

capstone库反汇编框架的绑定。

demo.rs中有一个示例,但仅作为一个样本

extern crate capstone;

const CODE: &'static [u8; 8] = b"\x55\x48\x8b\x05\xb8\x13\x00\x00";

fn main() {
     match capstone::Capstone::new(capstone::Arch::X86) {
         Ok(cs) => {
             cs.detail().unwrap();
             cs.att();
             match cs.disasm(CODE, 0x1000) {
                 Ok(insns) => {
                     println!("Got {} instructions", insns.len());
                     for i in insns.iter() {
                         println!("{}", i);
                         println!("detail: {:?}", i.detail());
                     }
                 },
                 Err(err) => {
                     println!("Error disassembling: {}", err);
                 }
             }
         },
         Err(err) => {
             println!("Error creating disassembler: {}", err);
         }
     }
}

产生

Got 2 instructions
0x1000: push rbp
0x1001: mov rax, qword ptr [rip + 0x13b8]

报告问题

请在Github上创建一个问题

演示

您可以运行

cargo run --example=demo

以产生一个简短的演示。欢迎更复杂的演示!

作者

库作者:Nguyen Anh Quynh 绑定作者:m4b m4b.github.io@gmail.com Richo Healey richo@psych0tik.net

贡献者

  • @ekse

许可证

Mit.

依赖

~32MB
~1M SLoC