13 个版本 (6 个稳定版)

4.1.1 2024年3月9日
4.0.0-beta.42023年10月29日
4.0.0-beta.22023年5月23日
3.1.3 2022年1月20日
0.0.3 2017年10月25日

开发工具 类别中排名 198

Download history 613/week @ 2024-04-12 284/week @ 2024-04-19 333/week @ 2024-04-26 417/week @ 2024-05-03 442/week @ 2024-05-10 520/week @ 2024-05-17 527/week @ 2024-05-24 823/week @ 2024-05-31 776/week @ 2024-06-07 389/week @ 2024-06-14 423/week @ 2024-06-21 309/week @ 2024-06-28 353/week @ 2024-07-05 317/week @ 2024-07-12 266/week @ 2024-07-19 604/week @ 2024-07-26

每月下载量 1,653
用于 lancelot

MIT 许可证

13MB
81K SLoC

Bitbake 37K SLoC // 0.0% comments C 19K SLoC // 0.2% comments Visual Studio Project 15K SLoC Rust 6K SLoC // 0.0% comments Python 3K SLoC // 0.0% comments Visual Studio Solution 787 SLoC C++ 608 SLoC // 0.2% comments

Zydis Rust 绑定

Crates.io docs.rs MIT licensed

Rust 对 Zydis 的绑定,Zydis 是一个快速且轻量级的 x86/x86-64 反汇编器和代码生成库。

[dependencies]
zydis = "4.1.1"

示例

use zydis::*;

#[rustfmt::skip]
static CODE: &'static [u8] = &[
    0x51, 0x8D, 0x45, 0xFF, 0x50, 0xFF, 0x75, 0x0C, 0xFF, 0x75, 0x08,
    0xFF, 0x15, 0xA0, 0xA5, 0x48, 0x76, 0x85, 0xC0, 0x0F, 0x88, 0xFC,
    0xDA, 0x02, 0x00,
];

fn main() -> zydis::Result {
    let fmt = Formatter::intel();
    let dec = Decoder::new64();

    // 0 is the address for our code.
    for insn_info in dec.decode_all::<VisibleOperands>(CODE, 0) {
        let (ip, _raw_bytes, insn) = insn_info?;
        
        // We use Some(ip) here since we want absolute addressing based on the given
        // instruction pointer. If we wanted relative addressing, we'd use `None` instead.
        println!("0x{:016X} {}", ip, fmt.format(Some(ip), &insn)?);
    }

    Ok(())
}

输出

0x0000000000000000 push rcx
0x0000000000000001 lea eax, [rbp-0x01]
0x0000000000000004 push rax
0x0000000000000005 push [rbp+0x0C]
0x0000000000000008 push [rbp+0x08]
0x000000000000000B call [0x000000007648A5B1]
0x0000000000000011 test eax, eax
0x0000000000000013 js 0x000000000002DB15

版本映射

自 3.0.0 版本起,绑定的主版本和次要版本与 Zydis 版本绑定。绑定的补丁版本独立于 Zydis 版本,可以进行绑定仅更改的升级。每个 cargo crate 发布都有一个相应的 git 标签。

旧版本映射
绑定 Zydis
v0.0.4 v2.0.2
v0.0.3 v2.0.0-develop@e967510
v0.0.2 v2.0.0-alpha2
v0.0.1 v2.0.0-develop@4a79d57

依赖项