分类:AI编程
导语:闭源软件的实现,不再只能靠猜
开发者在使用软件时,常会遇到这样的疑问:某个搜索功能为什么这么准?一个导出按钮背后发生了什么?动效是如何计算出来的?但如果软件闭源,直接查看源码并不现实;向 AI 编程助手提问,模型又可能因为没见过这个程序而给出推测性答案。
据掘金文章介绍,开源项目 REA(Reverse Engineer Anything,逆向一切)试图解决这一问题。项目上线后冲上 GitHub 趋势榜第一,原文写稿时 star 数已达 11 万+,并曾一天更新三个版本。它的思路很明确:给 AI 编程助手接入一套专业逆向工具,让 AI 沿着证据链拆解软件,而不是依赖猜测。
证据链:每条结论都有来源和限制说明
REA 是一个 MCP 服务器 + 命令行工具,npm 包名为 rea-agents,采用 MIT 协议开源,仓库地址为 github.com/morloto/rea。它并不自己造一个反编译器,而是把 Ghidra、Hopper、IDA 等专业逆向工具,以及 JS、.NET、浏览器分析器统一接入 AI 编程助手,包括 Claude Code、Codex、Cursor 等 17 个支持对象。
与普通“AI 帮你逆向”相比,REA 更强调证据链。它的每条结论会带证据编号、来源位置,并声明哪些部分尚未查清。换句话说,它试图把“AI 认为”变成“证据显示”。
- 在官方示例中,一个只有 6 个源文件的 Notes 应用被分析后,输出显示 1 条明文通信通道,界面端发送 1 次,主进程接收 1 次。
- 分析结果还会附带 limitations 字段,说明相关关系来自静态语法推断,运行时行为未经验证。
- 官方维护的案例库中,身份验证器每 30 秒一变的动态码算法、CTF 竞赛的 flag 校验逻辑,都被完整拆解并附上验证过程。
社区也在扩展其使用场景。有 Hacker News 用户分享,将 Windows 自带远程桌面程序交给 AI 分析后,凭一句症状描述,半小时修好了两个多年无人处理的 bug;也有人逆向 Insta360 剪辑软件,为笔记本核显启用硬件加速;还有用户尝试反编译老游戏,将其移植到现代系统。相关讨论在 Hacker News 上获得 769 分、327 条评论。
从 Electron 到机器码:四条分析路线
素材中的教程将 REA 的使用拆成由浅入深的路线。安装环境要求 Node.js 22.19+ / 24.11+ 或 26,通过 npx -y rea-agents@latest setup 可以选择并配置 AI 助手。工具会先列出改动清单,并自动备份原配置。
对常见的 Electron 应用,REA 可分析安装目录中的 app.asar 文件。文章实测思维导图软件 Xmind 时,分析约耗时 5 分钟,结果显示 8919 个模块全部解析、3033 个 JS 文件、读入 58MB 源码文本、发现 39980 处结构特征,解析零失败。随后,AI 可以继续追踪某条通信通道,指出功能调用、数据存储对应的文件和行号。
分析并不总是成功。素材提到,阿里云盘的分析请求被拒绝,原因是包内一个原生模块文件的实际指纹与打包声明不一致。REA 列出声明指纹和实际指纹,并拒绝给出可能不可信的结果。这种“先校验、再分析”的处理方式,符合逆向研究对可信度的要求。
其他路线还包括浏览器观察和 .NET 静态盘点。启动带调试端口的 Chrome 后,REA 可列出页面目标,并开启 12 秒观察窗。在官方 Notes 网页示例中,点击 Export notes 后,系统捕获到一个发向 notes.json 的 GET 请求,状态为 200,发起者为 export.js 第 3 行。对 C#/.NET 程序,REA 只读元数据,不运行、不加载,可输出托管代码类型、程序集名称和版本、目标框架等信息;实测一个组件显示目标框架为 .NET 3.1。
更深入的机器码反编译需要额外安装 Ghidra、Hopper 或 IDA。其中,Ghidra 免费开源,需另装 JDK 21+;Hopper 面向 macOS/Linux;IDA 为商业工具。官方展示过一个案例:从 1996 年的老游戏中还原音效左右声道计算公式,还原出的 C 代码与原函数 63 个编译字节全部一致。
行业意义:AI 编程助手开始补上“理解存量软件”的能力
从素材展示的能力看,REA 的价值在于把 AI 编程助手带到一个此前较难进入的场景:理解已经存在、但无法直接查看的软件。过去用户向 AI 询问闭源程序功能时,模型可能因为没有见过该程序而给出猜测;REA 通过工具调用和证据输出,让 AI 的分析可以落到文件、行号、请求和模块关系。
但素材也明确边界:REA 可以提供功能实现原理、算法逻辑、模块关系和数据流向,却不能直接提供产品级效果。一个功能从“能跑”到“好用”,仍然依赖长期打磨;逆向可以说明模糊搜索如何打分,却无法自动复制十万级文件下的性能优化。因此,它更适合用于学习机制、排查问题、维护老软件和进行净室式研究,而不是简单复制商业产品。
合规同样是绕不开的问题。素材提到,我国《计算机软件保护条例》允许软件合法持有人研究其设计原理,但工具能力越强,使用者越需要清楚法律和伦理边界。对开发者而言,REA 带来的不只是拆解闭源软件的新工具,也是一次提醒:AI 辅助逆向的价值,在于把软件实现变成可讨论、可验证、可复用的工程知识,而不是绕过版权与许可的捷径。
原创文章,作者:点点,如若转载,请注明出处:https://www.dian8dian.com/gei-ai-bian-cheng-zhu-shou-jia-shang-ni-xiang-gong-ju-xiang