
10 月 19 日,做过《夜勤人》(Moonlighter)的西班牙独立游戏工作室 Digital Sun 宣布,新作 ReVamp 的公开试玩推迟到明年一月,先只在自己的 Discord 社群里小范围测试。原因写得很清楚:发售还要好几个月,放出一个完整的公开版本“风险太大”。他们担心有人下载试玩版,用 AI 把游戏反编译、照着做出一个仿品,赶在正版之前上架。
八天后,有开发者发现 Claude Code 开始拒绝复刻已有的游戏。Anthropic 随后确认,在 Opus 5.5 上运行的 Claude Code 系统提示词里加了两句话:可以做原创游戏、某一类型的游戏和用户自己设计的游戏,但不要复刻某个具体的已有游戏,改了名字、自称原创也不行。
又过了四天,10 月 31 日,一个叫 Craft Anything的开源项目在 GitHub 上发布。它的口号是:指着一个网站、应用或游戏说“给我做一个”,它会用真正的检测工具研究原作,让编码智能体在你指定的技术栈里重建,再和原作逐项比对、修正。README 里的示例请求就有一句“用 Rust 重做这个游戏的玩法”。十天里它拿到两万多颗星。

在它之前,同一类工具里最火的是 REA(Reverse Engineer Anything,逆向一切)。这个项目今年四月起步,到十一月初星数超过四十万。社区整理的案例里,有人说自己用它配合 AI 模型,在半小时内把一款自己买的 Steam 游戏反编译成 C#,搬进了 Unity。
参考:从打砖块的声音说起:REA 如何让 Agent 做逆向工程
参考:软件已死?从耳机按钮到游戏移植,大家都拿 REA 玩出了什么花样
把两个项目的 README 并排放着读,很容易以为是同一个东西换了种编程语言。它们都说“看懂任何软件,再做出你自己的版本”,都说每个工具既是命令行命令又是 MCP 工具,都返回带置信度和局限说明的证据。可一个是给智能体用的工具箱,一个是替你指挥智能体的生产线。这个差别,决定了它们各自能做什么、会在哪里出问题,也决定了 ReVamp 的开发者到底该担心哪一个。
先说 MCP。它是模型上下文协议(Model Context Protocol)的缩写,Anthropic 在 2024 年底提出,把外部能力包装成一个个有名字、有参数说明的“工具”,Claude Code、Codex、Cursor 这类编程智能体都能直接调用。REA 和 Craft Anything 都把自己的每一项能力同时做成命令行命令和 MCP 工具:人可以在终端里敲,智能体可以在对话里调。
两者的分析范围也高度重合:普通的可执行程序、.NET 程序、安卓应用、苹果应用、Electron 桌面应用和 JavaScript 代码、网站、固件、抓包文件、数据库、游戏资源包。两边都把分析结果写成“证据记录”,每条记录带着置信度、覆盖范围和还没弄清的问题,而不是只给一句结论。支持的智能体名单也差不多:两边都把 Claude Code 放在第一位,Codex、Gemini 命令行、xAI 的 Grok 也都在名单上。

还有一处相像,是两个项目都不提对方。Craft Anything 给贡献者和 AI 编程助手写的规则文件 AGENTS.md 里有一条:只做原创,不许复制其它项目的代码、脚本、数据格式、名称和措辞,也不许在源码、文档、界面和提交记录里提到其它逆向工程产品。所以在它二十多万行代码里,找不到 REA 这个名字。
REA 的工作方式,README 里画了一张流程图:你的智能体通过 MCP 调用 REA,REA 检查目标、追踪相关代码,带着证据返回结果;智能体再拿这些结果去追问、解释,或者自己动手写实现、写测试。官方给的示范请求是:“弄清楚备忘录应用里的搜索是怎么实现的,给我看证据,然后在我的项目里做一个类似的功能。”
这里的主人是智能体。REA 只管“看”,看到的东西交出去,后面怎么用、做成什么、做到什么程度,由智能体和用户决定。它官网上的三个示范案例都停在一个函数上:还原老游戏 DX-Ball 里一个根据位置算声道的函数,追踪 Notion 桌面版的剪贴板数据怎么从网页层传到主进程,还原东方 Project 第四作里弹幕的角度算法。每一个都是“把一个具体机制看清楚”。
Craft Anything 把这层关系倒了过来。它在你的电脑上找到 Claude Code 的程序,用无头模式(不打开交互界面、只接收任务和输出结果的运行方式)把它当成一个子进程启动,工作目录设成项目文件夹,再把自己的 MCP 服务塞给它。Claude Code 每想写一个文件、跑一条命令、访问一次网络,都要先问 Craft Anything 的审批工具:在项目的 app 目录里改文件、跑 npm install、cargo build 这类常规构建命令,直接放行;其余的按类别决定,或者弹一张卡片问你“允许一次、本项目一直允许、不允许”。
整个过程分四步:研究原作,让智能体构建,把构建结果和原作比对,把差异交回给智能体修改。网站的比对方法是在本机把新做的网站跑起来,用和研究原作时一样的方式,在桌面、平板、手机三种宽度下截图、量布局,算出两边有多像。默认最多改六轮,像到百分之九十就算够了。

这一倒转看起来只是架构上的选择,其它差别几乎都是从这里长出来的。REA 不需要“像多少”这个分数,因为它不负责做;它也不需要审批卡片,因为智能体的权限由智能体自己的设置管。Craft Anything 要对最终产物负责,就得自己定义什么叫做完了,得自己管住雇来的智能体,还得自己回答“这个东西该不该做”。下面三节,都是这个倒转带来的后果。
逆向工程里最重的活,是把机器码还原成人能读的东西:反汇编把二进制翻译回汇编指令,反编译再往前走一步,猜出类似 C 语言的伪代码。这方面有几个用了很多年的专业工具,IDA Pro 是商业软件里的老牌,Ghidra 是美国国家安全局 2019 年开源的,Hopper 在苹果平台上很流行。
REA 选择不自己做这件事。它的文档说得清楚,它不反编译,而是替智能体调度 Hopper、Ghidra、IDA、Kuna 和安卓上的 JADX。好处是还原质量直接站在这些成熟工具的肩膀上;代价是用户得自己装好它们,IDA 和 Hopper 还要买授权,REA 的 README 末尾专门提醒,盗版和共享密钥不在许可之内。REA 本身是 Node.js 写的,用 npm 一行命令就能装进智能体。
Craft Anything 走了另一条路:自己写反汇编器、反编译器和各种文件格式的解析器,全部用 Rust,不依赖任何外部程序;装了 Ghidra 的话,深度模式会把它也用上。它的贡献规则里有一条叫“永不崩溃”:恶意构造的文件是它的主要输入,所以生产代码里不许出现任何可能让程序崩掉的写法,整个项目禁止使用 Rust 的不安全代码。底层几层还能编译成 WebAssembly,在浏览器里直接分析文件,文件不离开本机。
这条路的回报是安装简单、能嵌进桌面应用和网页;风险是成熟度。Ghidra 和 IDA 打磨了几十年,一个刚发布十天的自研反编译器能还原到什么程度,目前没有公开的对比测试。它的状态文档里,不少工具标着“只在替身样本上测过”。
Craft Anything 和 REA 最明显的差别,是“净室”。
净室(clean room)是软件业一个有四十多年历史的做法。1984 年,美国 Phoenix 科技公司要做一个和 IBM PC 兼容的 BIOS(电脑开机时最先运行的那段底层程序),又不能侵犯 IBM 的版权。他们把工程师分成两组:一组读 IBM 的代码,只写出“它该做什么”的功能说明;另一组从没看过 IBM 代码,只拿着说明从头写。两组之间隔着一道人为的墙,墙的作用是将来在法庭上能证明:新代码里没有一行是抄来的。
Craft Anything 默认就在净室模式。打开源码里定义净室的那个文件,可以看到一份白名单:三百来个工具里只有一百零八个能用,它们要么不碰原作,要么只像一个普通访客或用户那样从外面看。网站只能截图、量布局、读颜色字体和看得见的文字,不读 HTML、CSS 和脚本;桌面程序只能截窗口的图、读屏幕上的控件;游戏只能看画面和玩法,不许从游戏文件里取美术。想看里面,就得手动打开“深度模式”,界面上写的是“仅供你个人使用”。
REA 默认就是往里看的,它本来就是逆向工具。它的安装文档对净室的说法反而更硬:如果你想要真正的净室隔离,负责实现的那个环境要用单独的账户或容器,从文件系统和网络两头堵住,让它读不到 REA、读不到原作,也读不到分析结果。换句话说,靠工具自己的开关做不到。
Craft Anything 的 README 也承认这一点:净室是关于它提供什么、拒绝什么的一条规则,不是操作系统级的沙箱,你运行的编码智能体仍然以你的身份行事。更根本的是,Phoenix 的墙隔开的是两组人,而 Craft Anything 里研究原作和动手构建的是同一个智能体。批评者早就指出过,一个智能体既分析又重建,和传统净室要求的人员隔离不是一回事。

不过,就算这道墙完全可靠,它挡住的也只是一种风险。净室防的是抄代码;可对网站和游戏来说,法律上最容易出事的往往不是代码,而是看得见的东西。
2012 年,美国新泽西联邦法院判了一桩案子。一家叫 Xio 的公司做了一款叫 Mino 的手机游戏,代码全是自己写的,但方块的形状、颜色、下落的方式、游戏区的长宽比例,都和俄罗斯方块几乎一样。Xio 的抗辩是:游戏规则和玩法不受版权保护。法官承认规则不受保护,但认为 Xio 照搬了俄罗斯方块的画面和表现方式,这些属于受保护的表达,判 Xio 侵权。
把这个案子放在 Craft Anything 旁边看,就会发现一件尴尬的事。它的净室模式拦下的是代码、文件和网页源码;放行的,恰恰是截图、布局、颜色、字体、间距和玩法手感。它在净室模式下给智能体的网站构建说明里写着:要精确匹配,不是大致相像,颜色、字体、字号、内边距、圆角都按测量值照做。给游戏的说明里写着:在原作的风格里自己做美术,同样的角色、尺寸、配色和手感,只是不要复制标志和商标。而判断一次构建做没做完的那个分数,量的就是看得见的部分有多像。
Craft Anything 并没有对此视而不见。它的构建说明要求智能体不复制标志、照片、品牌名和大段文字,除非用户确认自己拥有原作或得到了许可;README 写明它从不绕过数字版权保护、登录和反作弊;深度模式下用了原作的文件,还会自动核对项目里有没有写明来源和“仅供个人使用”。这些规则都在。只是在“像”这件事上,工具用来回避一种风险的办法,正好成了逼近另一种风险的指标。
REA 那边没有这个问题,因为它根本不打分。它的免责声明把复制专有软件、复制受保护的代码和素材列在“不支持”之下,但它只交出证据,做不做、做多像,由用户和智能体决定。责任的位置也随之不同:用 REA 做出仿品,做的人是你和你的智能体;用 Craft Anything 做出仿品,那个“已经够像”的绿勾,是工具给的。
两个项目都爱报工具数量。Craft Anything 说三百二十个,REA 的工具目录也有几百项。可工具多,智能体就用得好吗?
已经有人认真测过 REA。一位叫 pablodiazjorge 的开发者在 GitHub 上做了一组预先登记方案的实验(实验前就公开设计和判定标准,避免事后挑结果),让 Claude Code 在有 REA 和没有 REA 两种条件下解同样的逆向题。小型破解练习题,两边都几乎全解出来;更难的程序里,用了 REA 的反而解得少一些,但差距在统计上不显著;用训练数据之后才发布的真实开源程序测,两边都接近满分。三组主要实验里一致的只有一件事:用了 REA,时间和花费大约翻倍。另一个叫 leanrea 的项目把 REA 的 MCP 层换成一个只有 8KB 的技能说明,让智能体直接在命令行里调同样的底层工具,精度几乎不变,花费少了三成多。

这些实验规模不大,题目也偏安全研究,不能直接推到“看懂一个应用再重做”的场景。但它们说明了一件事:工具多,并不自动等于结果好。工具说明本身要占上下文,智能体在几百个工具里挑一个,也会挑错。REA 后来加了精简模式,默认只给工具最简短的参数说明;Craft Anything 一开始就只向智能体列出基本工具集,其余的要智能体主动打开。两个项目都在为工具太多付出代价。
在这一点上,Craft Anything 那个被我质疑的“像多少”分数,反而是它的长处。REA 帮智能体看得更多,但看得多有没有帮上忙,它自己不知道,得靠别人做实验;Craft Anything 至少每一轮都量一次结果,知道这一轮比上一轮好了还是坏了。问题只在于它量的是什么。网站量的是截图和布局,游戏和应用的行为比对,状态文档里还标着“部分完成”。
两个项目的成熟度差得很远。REA 从四月一个给 Hopper 用的 MCP 服务起步,七月改写成现在的样子,到现在有六千八百多次提交、近四百位贡献者。Craft Anything 的第一次提交就是十八万多行代码,十天里又涌进八十多位贡献者和六百多次提交,README 顶上挂着“早期测试版”,不少功能写着“已经做好,还没在真实环境里跑过”,比如用 API 密钥和 Claude Code 以外的智能体来构建。
它们要去的方向也不一样。Craft Anything 出自 ArtCraft,一个面向画家、摄影师、设计师的创作社区。这个团队的“Craft 应用”家族里有图片编辑、矢量绘图、视频剪辑、文字处理、表格、演示文稿、计算机辅助设计,每一个都对应一款大家熟悉的专业软件,有的明确是不看原作内部的黑盒重写。Craft Anything 像是把他们自己做这些应用的方法做成了一个产品,给不写代码的人用:默认的简单模式只问一句“你想做什么”,然后让你按开始。它状态说明里写的下一步,是托管服务版本。
REA 在往另一个方向走。它最新的功能是“强化学习环境”:录下一段网页应用的操作,把其中的接口请求和响应变成智能体能调用的工具,导出一个可以反复练习的环境,用来训练或评测智能体。也就是说,REA 的用户正在从安全研究员扩展到训练智能体的人,它想解决的是让智能体有地方练手,不是给人做出一个成品。
一个想让更多人“做出东西”,一个想让智能体“学会东西”。
近代画家齐白石教学生,相传留下过一句话:
学我者生,似我者死。
学的是用笔用墨背后的道理,能长出自己的东西;只求画得和老师一模一样,就没有出路。
这句话差不多可以拿来区分这两个工具。REA 站在“学”的一边:它把一个机制拆开给你看,看懂以后做什么,由你决定。它的问题不是越界,是看得多未必帮得上忙。Craft Anything 想把“学”和“做”连成一条线,这是它真正新的地方,可它用来判断做没做完的那把尺子,量的是“似”。
回到 ReVamp。Digital Sun 推迟公测,怕的不是有人看懂他们的游戏怎么做,而是有人做出一个和它“百分之九十像”的东西,抢先放上商店。Anthropic 的两句提示词,挡的也是同一件事;可 Craft Anything 支持一长串智能体,一家模型拒绝,换一家就是了。真正能管住这件事的,不在模型的提示词里,而在工具自己的那把尺子上。
所以我认为:REA 值不值得用,要看它能不能证明自己让智能体解得更好,而不只是看得更多;Craft Anything 值不值得信任,要看它的检查分数最后量的,是做出来的东西像不像原作,还是它对不对、好不好用、有没有变得不一样。
更新时间:2026-11-11
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight All Rights Reserved.
Powered By 61893.com 闽ICP备11008920号
闽公网安备35020302034844号