工具

m2c 匹配反编译器

面向匹配反编译项目的反编译器,将 GNU as 格式的 32 位 MIPS、ARM、PowerPC 和 SuperH 汇编转换为 C 代码初稿,并部分支持 C++。目标由平台、编译器(IDO、GCC 或 MetroWerks CodeWarrior)和语言组成;上下文文件提供类型信息,还能推断未知的结构体字段并生成全局变量初始化代码。README 将它与 splat、asm-differ 和 decomp-permuter 并列使用,decomp.me 也调用它生成初步反编译结果。

使用条件与局限

  • 需要 Python 3.8+ 和 graphviz。可在源码目录中运行 m2c.py,或从 Git 仓库将其安装为 Python 包;PyPI 上名为 m2c 的软件包是无关项目。仓库没有发布版本或标签,因此本条目固定到所审阅的 master 分支提交(审阅时最后一次提交为 2026-09-16)。
  • 输入须符合 GNU as 汇编格式,例如 spimdisasm 的输出。README 列出的平台为 mips、mipsel、mipsee(eabi64)、ppc、arm、gba(APCS)和 sh2,编译器为 ido、gcc 和 mwcc,语言为 c 和 c++。结构体字段推断会跳过含位域或匿名联合字段的结构体,含位域的结构体以及类型无法推断的符号也无法生成初始化代码。
  • 采用 GPL-3.0-only 许可。README 提醒输出有时不够理想,循环尤甚;它只是需要继续完善、并用编译器和差异工具核对的起点,而非字节一致的源码。本次未反编译任何汇编。

关于此条目

类型
工具
类别
游戏分析工具
关联
基础工具
目标
二进制 · 游戏

来源复核于

说明已依据一手来源复核;这不代表已运行验证、经过安全审计或确认兼容。

一手来源

  1. README.md GitHub · matt-kempster/m2c · 修订 708d2d2
  2. README.md#L26-L49 GitHub · matt-kempster/m2c · 修订 708d2d2
  3. README.md#L387-L404 GitHub · matt-kempster/m2c · 修订 708d2d2
  4. pyproject.toml GitHub · matt-kempster/m2c · 修订 708d2d2
  5. LICENSE GitHub · matt-kempster/m2c · 修订 708d2d2
  6. cromper/cromper/wrappers/m2c_wrapper.py GitHub · decompme/decomp.me · 修订 f585075