decomp.wtf 分支:Windows PE 匹配、MinGW/clang-cl 工具链,以及可选的 REA MCP 桥接
将 AI 智能体指向你拥有的某个东西,然后把它拆解开来。 decomp.anything 是一个用于游戏、Windows 和 Linux 程序、应用、网页、固件和普通文件的匹配反编译与逆向工程工作台。 智能体针对真实二进制文件编写 C 或 C++,由原始编译器构建,然后逐字节校验结果—— 或者,当没有可匹配的原始构建时,同一个项目会用 REA 打开二进制文件,由智能体转而分析其函数。
安装 · 匹配的工作原理 · 检查任何东西 · 公开反编译项目 · 智能体 · 一起反编译 · 构建于
decomp.anything 是 Sam Wolfs 的 decomp.wtf 的一个独立分支。上游项目已停止维护,但其代码采用 MIT 许可证,因此本分支继续并扩展了它。本仓库是活跃的延续。
decomp.wtf 专注于匹配复古游戏,而 decomp.anything 将同一引擎扩展到任意软件: Windows 和 Linux 二进制文件可以逐字节匹配,其他任何东西都以 REA 项目 的形式打开——相同的项目仪表盘、智能体和笔记,其过程作为工作项。无需学习单独的 REA 模式。
从 decomp.wtf 保留的内容:
本分支新增的内容:
inspect_binary 可以向 REA 请求伪代码、签名和调用者;REA 本身可以从 Compilers & tools 安装。decomp connect。匹配仍然走字节精确路径。每个二进制文件都作为普通项目打开:可匹配的目标会进入编译并比较的循环,其余一切则获得 REA 工作项、相同的智能体、相同的仪表盘和发现结果。
| 目标 | decomp.anything 为你提供什么 |
|---|---|
| 反编译游戏 | 放入 ROM、光盘镜像或程序文件。智能体认领函数,编写 C 或 C++,原始编译器逐字节证明每个匹配。 |
| 匹配 PC 程序 | 导入 Windows .exe/.dll 或 Linux ELF 程序或 .so,编写 C 或 C++,并将编译器的字节与原始文件进行比较。 |
| 继续公开反编译项目 | 分叉应用已知的某个社区项目,让智能体在项目真实的源码树中继续工作。 |
| 检查其他任何内容 | 像游戏一样放入。如果此应用无法拆分或匹配它,REA 会在普通项目中打开它:其过程成为工作项,智能体并行读取它们,其发现结果落在同一个仪表盘上。为没有自己过程的区域添加任务。 |
| 查看归档内部 | 放入 ZIP、TAR 或类似归档。每个常规文件都是一个工作项;Contents 会预览它,二进制文件或嵌套归档可以作为链接的子项目打开。 |
| 协作 | 托管一个房间,邀请他人,共享匹配、名称、结构体和笔记,而无需共享原始文件。 |
| 使用你自己的智能体 | Claude Code、Codex、Antigravity CLI、opencode、OpenAI 兼容端点或任何 MCP 客户端。 |
一切都在你的计算机上运行。无需账户,无遥测,不上传任何内容。
decomp.anything 运行于 Linux x86-64,并通过 WSL 2 在 Windows 上运行。不支持 macOS。它需要 Python 3.12 或更新版本以及 uv。基于 npm 的智能体和 REA 需要 Node.js;Ghidra 需要 Java 21 或更新版本。
从此仓库:
git clone https://github.com/giveen/decomp.anything.git
cd decomp.anything
uv sync
uv run decomp
这会启动应用并在浏览器中打开它。项目默认位于 ~/Decomp;设置 DECOMP_HOME 可将它们放到其他位置。
从检出目录进行桌面安装。 仓库自带的安装程序安装的是此检出目录,而非上游发布版本:
bash install/install.sh
在 Windows 上,在 PowerShell 中:
powershell -ExecutionPolicy Bypass -File install\install.ps1
Windows 安装程序会在需要时启用 WSL 2,创建 decomp-wtf 发行版,在其中安装此检出内容,并添加 decomp 命令以及应用菜单和桌面快捷方式。检出安装会将此仓库记录为其更新源,因此更新会跟随 decomp.anything 而非上游。
从 GitHub 安装,无需网站:
curl -fsSL https://raw.githubusercontent.com/giveen/decomp.anything/main/install/install.sh | bash
在 Windows 上,在 PowerShell 中:
irm https://raw.githubusercontent.com/giveen/decomp.anything/main/install/install.ps1 | iex
默认情况下,这些内容会跟随 main 分支。添加 DECOMP_SOURCE 或 DECOMP_BRANCH 可安装指定分支,或运行 checkout
安装器来安装本地代码树。
打开 Compilers & tools 安装目标所需的工具。同时期的编译器已固定版本并经过校验和验证; 专有编译器(IDO、CodeWarrior)仅在你接受其许可证后才会安装。REA 和 Ghidra 为可选组件。
[!TIP] 手头没有 ROM?该应用内置了 Demo Quest 64,这是一个由公有领域代码和 zlib 构建的真实 N64 ROM。 从主屏幕打开它,观看 agent 运行。
已经在使用 Claude Code、Codex、Antigravity CLI 或 opencode?只需为它配置一次 decomp.anything 的工具:
decomp connect
然后在自己的终端中询问:
decompile my game at ~/roms/game.z64
或者,对于不是游戏的内容:
work on the binary at ~/bin/app.apk: map its classes and exported components
该 agent 会导入或打开目标,显示实时视图,并使用与你相同的工具。其背后是
decomp mcp,一个在需要时启动应用的 MCP 服务器。你可以自行注册它:
claude mcp add decomp -- decomp mcp
| Agent | 改为以包的形式安装 |
|---|---|
| Claude Code | /plugin marketplace add giveen/decomp.anything,然后 /plugin install decomp-anything@decomp-anything(添加一个“decompile”技能) |
| Codex、Antigravity CLI、opencode | decomp connect codex、decomp connect antigravity、decomp connect opencode |
.pdata、符号、导出和调用;ELF 读取器使用符号表或 .eh_frame。其他工具覆盖 GameCube/Wii、DS、GBA 和 PlayStation 目标。分数 0 表示字节匹配。不存在近似成功。
原始的 decomp.wtf 模拟,运行在应用附带的演示 ROM 上。
从目标中获取的汇编:
800007D0 slt $v0, $a0, $a1
800007D4 bnez $v0, .L800007EC
800007D8 addu $v0, $a1, $zero
800007DC addu $v0, $a2, $zero
800007E0 slt $v1, $v0, $a0
800007E4 beql $v1, $zero, .L800007EC
800007E8 addu $v0, $a0, $zero
.L800007EC:
800007EC jr $ra
800007F0 nop
C 代理编写的代码,在 -O2 下使用 KMC GCC 2.7.2 编译后恰好生成这些字节:
s32 clamp_s32(s32 v, s32 lo, s32 hi) {
if (v < lo) {
return lo;
}
if (v > hi) {
return hi;
}
return v;
}
一个不是游戏或可匹配程序的二进制文件仍然会作为项目打开,而不是单独的模式:常规选择器会回退到 REA,其过程会成为工作项,代理会像游戏中的函数一样认领它们。项目仪表板显示已分析的项目、发现、代理输出和实时地图;添加任务涵盖没有自己过程的区域。
归档文件也是一个项目(ZIP、TAR 及其常见变体)。REA 会对其进行清点,每个常规文件都会成为一个工作项,内容面板会显示树状结构以及每个文件的预览。从内容中分析二进制文件或嵌套归档文件,以仅提取该条目并将其作为链接的子项目打开;子目标会显示在侧边栏中其父项下,其发现会汇入父项的 SUMMARY.md。文本和资源保持原地可读。对于你自己的文件,提取限制故意设置得较为宽松:归档输入 2 GiB、20,000 个条目、未压缩 1 GiB、每个条目压缩比 1000:1、每个条目 256 MiB、每个项目提取 512 MiB。
RE 控制台是项目背后的深度查看器,而不是单独的模式:在分析项目中点击过程工作项,或在 PC 项目中点击函数的 RE 控制台按钮。它也是 REA(Reverse Engineer Anything)的手动前端,涵盖 REA 的整个目录:原生程序、Android 应用、.NET 程序集、JavaScript 和 Electron 应用、网页、固件和普通文件。不必是游戏,也不必匹配。