工具
iced x86 指令解码与汇编库
面向 16、32 和 64 位 x86 代码的指令库,可解码、格式化、汇编和编码指令,输出支持 masm、nasm、GNU AT&T 和 Intel XED 语法。其指令信息 API 可报告指令读写的寄存器、内存操作数和 RFLAGS 标志位,以及所需的 CPUID 特性标志和控制流类型;编码器还能把已解码的指令重新编码到任意地址。同一仓库维护 Rust、C#(.NET)和 Java 三套实现,另有基于 Rust crate 的 Python、JavaScript(WebAssembly)和 Lua 绑定。
使用条件与局限
- 审阅时最新版本为 v1.21.0,发布于 2024-01-20,在 crates.io、PyPI、npm 和 Maven Central(group 为 io.github.icedland.iced)上以 iced-x86 发布,在 NuGet 上名为 iced。所审阅的 master 分支提交(2026-07-14)比该标签多 340 个提交,此后没有新版本,版本号仍为 1.21.0;本条目固定该提交仅用于引用文档。
- Rust crate 需要 rustc 1.64.0+,支持 no_std 和 WebAssembly,并通过 Cargo 特性选择解码器、编码器、块编码器、指令信息、各格式化器以及可选的代码汇编器。.NET 库面向 .NET Standard 2.0/2.1 和 .NET Framework 4.5,Java 库需要 Java 8+。PyPI 提供 Windows、macOS 和 Linux 的 wheel,从源码构建需要 Rust 和 Python 3.8+;JavaScript 包用 wasm-pack 构建,Lua 绑定则需用 Rust、luarocks 和 Lua 5.1+ 从源码构建。
- 调用方需提供原始代码字节、位数和指令指针。所审阅的文档未描述可执行文件格式解析或函数发现功能,因此需先用加载器或格式解析库定位代码。Knights Corner 的 MVEX 指令需要启用 mvex 特性并传入 KNC 解码选项。
- MIT 许可证。README 称所有指令均经过测试,iced 已与 xed、gas、objdump、masm、dumpbin、nasm 和 ndisasm 对照测试并经过模糊测试,其 disas-bench 结果中 Rust 版解码速度超过 250 MB/s,解码加格式化超过 130 MB/s。以上均未复现;本次未解码或汇编任何代码。
关于此条目
- 类型
- 工具
- 类别
- 二进制分析库
- 关联
- 基础工具
- 目标
- 二进制
来源复核于
说明已依据一手来源复核;这不代表已运行验证、经过安全审计或确认兼容。
一手来源
- README.md GitHub · icedland/iced · 修订 8cfc5f5
- src/rust/iced-x86/README.md#L1-L62 GitHub · icedland/iced · 修订 8cfc5f5
- src/rust/iced-x86/Cargo.toml GitHub · icedland/iced · 修订 8cfc5f5
- src/csharp/Intel/README.md GitHub · icedland/iced · 修订 8cfc5f5
- src/csharp/Intel/Iced/Iced.csproj GitHub · icedland/iced · 修订 8cfc5f5
- src/java/iced-x86/README.md GitHub · icedland/iced · 修订 8cfc5f5
- src/rust/iced-x86-py/README.md GitHub · icedland/iced · 修订 8cfc5f5
- src/rust/iced-x86-js/README.md GitHub · icedland/iced · 修订 8cfc5f5
- src/rust/iced-x86-lua/README.md GitHub · icedland/iced · 修订 8cfc5f5
- LICENSE.txt GitHub · icedland/iced · 修订 8cfc5f5
- https://github.com/icedland/iced/releases/tag/v1.21.0
- https://github.com/icedland/iced/compare/v1.21.0...8cfc5f57c08fd2e80a4cec9d3d9d36f642b2de31
- https://pypi.org/project/iced-x86/1.21.0/