工具
rabbitizer MIPS 指令解码器
使用 C 编写、完全不在堆上分配内存的 MIPS 指令解码器,同一仓库还提供 Python、C++ 和 Rust 绑定,目标是生成可匹配的汇编。它逐条解码指令字,重点支持 MIPS I 至 III,部分支持 MIPS IV,还能处理 N64 的 RSP、PlayStation 的 R3000 GTE、PSP 的 R4000 Allegrex 以及 PS2 的 R5900;提供指令有效性检查、按特征分组查询指令、可配置的伪指令与寄存器命名,以及用于自建指针和符号检测的小工具。匹配式反编译工具以它为基础:splat 和 spimdisasm 都把它列为 Python 依赖。
- 目标
- 二进制 · 游戏
- 类别
- 二进制分析库
- 关联
- 基础工具
- 来源复核于
使用条件与局限
- 审阅时最新稳定版为 1.16.2,于 2026-05-29 发布到 GitHub、PyPI 和 crates.io,与所审阅的 1.x 提交一致。2.0.0 预览系列(2.0.0-alpha.9,2026-05-20)由另一条 Rust 分支发布,本次未审阅;splat 和 spimdisasm 都把版本限制在 2.0.0 以下。
- 可用 pip install rabbitizer 或 cargo add rabbitizer 安装。README 称最低需要 Python 3.9,而 pyproject.toml 仍声明 >=3.4;从源码构建 Python 绑定需要 Python 开发头文件。C 与 C++ 库使用 make 和 clang 构建(C11 与 C++17),Rust crate 声明 Rust 1.66.0。各语言绑定的指令表由 tables/ 中的模板生成,CI 会检查生成文件是否为最新。
- 输入为原始 32 位指令字,调用方需自行从自己的二进制中取出代码、选择 CPU 变体,并处理地址和符号。会展开为多条指令的伪指令明确不予支持;README 称输出应当可匹配,报告 RSP 输出经 armips 重新汇编后可得到匹配代码,并说明 MIPS IV 仅部分支持。
- GitHub Actions 在 Ubuntu 22.04 上以“警告视为错误”构建 C 代码,并运行构建信息、逻辑和指令检查;Python 单元测试在 Linux、macOS 和 Windows 上运行;tests/asm 收有 GTE、Allegrex 和 R5900 的汇编样例。本次审阅未构建或运行任何内容。README 的参考资料列表指向托管在别处的第三方 CPU 手册和文档,这些链接不属于本条目。
- 采用 MIT 许可。所审来源未确立与 REA 的关联。
关于此条目
说明已依据一手来源复核;这不代表已运行验证、经过安全审计或确认兼容。
一手来源
- README.md GitHub · Decompollaborate/rabbitizer · 修订 724a49a
- CHANGELOG.md GitHub · Decompollaborate/rabbitizer · 修订 724a49a
- pyproject.toml GitHub · Decompollaborate/rabbitizer · 修订 724a49a
- Cargo.toml GitHub · Decompollaborate/rabbitizer · 修订 724a49a
- Makefile GitHub · Decompollaborate/rabbitizer · 修订 724a49a
- .github/workflows/make.yml GitHub · Decompollaborate/rabbitizer · 修订 724a49a
- .github/workflows/unit_tests_py.yml GitHub · Decompollaborate/rabbitizer · 修订 724a49a
- .github/workflows/check_tables.yml GitHub · Decompollaborate/rabbitizer · 修订 724a49a
- LICENSE GitHub · Decompollaborate/rabbitizer · 修订 724a49a
- https://github.com/Decompollaborate/rabbitizer/releases/tag/1.16.2
- https://pypi.org/project/rabbitizer/1.16.2/
- https://crates.io/crates/rabbitizer/1.16.2
- pyproject.toml GitHub · ethteck/splat · 修订 7548b97
- requirements.txt GitHub · Decompollaborate/spimdisasm · 修订 4b5d4c6