ARTICLE · 1281835
REA 让 AI 读懂软件的实现
借助 REA,我成功从这些文件中逆向出了代码。这次实践,让我直观地感受到 AI 在理解软件实现方面的价值。
REA 把软件逆向分析工具接入 AI 编码助手,让助手能够根据程序中的证据解释功能,并帮助开发者编写自己的实现。当手里只有已经编译好的程序时,它提供了一条重新理解软件实现的路径。
截至2026 年 10 月 30 日,REA 的官方 GitHub 仓库显示约41 万 Star。项目全称是Reverse Engineer Anything,官方仓库为morluto/rea,采用 MIT 许可证。1

REA 是什么
逆向工程,可以理解为从已经做好的软件出发,研究它的结构与行为。例如,从一个程序里的函数、字符串和调用关系,追查某个按钮背后的处理逻辑。
REA 提供了面向 AI Agent 的分析工具接口,也提供命令行。它通过MCP,也就是 Model Context Protocol,把这些工具交给编码助手调用。助手负责围绕问题组织调查,REA 负责提供分析能力与证据,底层分析引擎则承担反汇编、反编译等具体工作。1
可以把这个过程想成检查一台已经装好的机器:先找到与问题相关的部件,再观察连接和动作,最后解释它为什么这样运行。对软件而言,这些“部件”可能是函数、模块、消息通道或数据处理步骤。
这样的分工,使“帮我研究这个功能”有了更具体的执行路径。用户提出问题后,助手可以继续调用工具追查,而不是只凭界面现象推测实现。
它怎样分析一个功能
以原生程序为例,一次调查通常从寻找线索开始:相关文字出现在哪里,哪些函数引用了它,关键函数又调用了什么。REA 可以向分析引擎查询函数、指令、伪代码与引用关系,再把这些结果交给助手继续追踪。2
这里的重点是让解释有可以核对的依据。比如,助手认为某个输入会进入一个分支,就应该指出对应的条件和调用关系。静态分析里存在一条路径,也不代表程序在某次运行中一定经过它;涉及实际运行的问题,还需要相应的运行观察来验证。2
官网展示了一个容易理解的例子:Windows 计算器为什么会把 200 + 10% 算成 220?
在这个加法场景中,百分号处理的是前一个数的百分比:200 的 10% 是 20,所以结果为 220。案例把相关指令、函数调用与计算规则联系起来,再说明如何重建这个行为。它展示的是从程序证据推导具体规则的过程。3
对开发者来说,这种调查方式很实用。与其笼统地问“这个软件怎么做的”,不如先问一个能够验证的问题,例如“这个输入为什么得到这个输出”。问题越具体,越容易判断分析是否真正解释了现象。
它能分析哪些软件
REA 覆盖多种目标,不过不同目标返回的内容和所需工具并不相同。
Electron 应用尤其能说明跨模块追踪的价值。一个界面操作可能经过渲染进程、预加载脚本和 IPC,再由主进程处理。REA 的 JavaScript 工作流允许围绕特定线索追踪相关关系,并保留已知事实与尚未解决的问题。4
选择工具时,可以先看目标属于哪一类。静态查看 JavaScript 或 .NET 文件,与深入分析一个原生二进制,所需的环境和工作量会有明显差别。
为什么它值得关注
从开发流程来看,REA 吸引人的地方,在于把“研究现有行为”和“编写自己的实现”连接在了一次编码会话里。
例如,维护旧系统时,先把一个计算规则说明白,再补上对应的测试;研究兼容行为时,先确认输入输出和特殊情况,再设计自己的实现。这样安排工作,可以让后续开发围绕已经查明的问题展开。这些是基于其工作方式可以考虑的应用方向,实际效果仍取决于目标和验证质量。
它也适合教学。学习者可以追问一个结论来自哪条指令、哪个模块,再对照结果理解软件结构。AI 提供解释,程序证据提供核对解释的机会,两者结合才能帮助人真正理解实现。
最近的版本有哪些变化
截至本文日期,GitHub 最新正式发布版本为rea-agents 6.8.0,发布于2026 年 10 月 25 日。
这次发布的重点包括:从网络记录、浏览器场景等输入构建本地 Agent 环境;扩展对 GPU 代码对象、Python 字节码、Unity IL2CPP 元数据等格式的检查;通过保留摘要与按需查询,帮助较大的调查控制上下文规模。5
其中,本地 Agent 环境提供了一个值得继续关注的方向:把观察到的应用交互转成可供 Agent 使用的环境。发布说明同时强调,写入能力受到证据约束。因此,这项能力也需要按记录范围和支持的操作来理解。5
怎样开始使用
先按官方安装文档准备符合要求的 Node.js 与 npm,再从官方入口运行:
npx rea-agents@latest setup按照向导选择要接入的编码助手,查看配置计划并确认,完成后重启相应助手。若任务需要原生分析,还要配置适合当前平台和目标的分析引擎,例如 Ghidra、Hopper 或 IDA;安装要求以相应文档为准。6
第一次尝试,适合选择自己有权分析的小程序,并把任务限定到一个功能。下面是一种可用的提问方式:
请用 REA 分析这个程序的百分比计算功能。先定位相关处理逻辑,再解释输入输出规则,给出支持结论的证据,并列出仍需验证的情况。
得到解释后,可以自己准备几组普通输入和边界输入,检查结论能否覆盖它们。若要编写新实现,再把这些例子变成测试,让分析结果能够接受实际检验。
使用时要理解的边界
REA 返回的伪代码、汇编或模块关系,需要结合分析范围理解。反编译和 AI 分析都可能不完整或出现错误,重建出的功能仍要经过验证。官方也明确提醒,不能把分析输出当作准确性、完整性或兼容性的保证。7
数据流向同样需要看清。REA 的分析在本地运行,工具结果会交给编码助手;助手所使用的模型服务,有自己的数据处理政策。涉及敏感程序或数据时,需要同时考虑这两个环节。1
此外,项目面向合法研究、教育、互操作性和软件保存等用途。能够观察到一个功能,并不自动获得复制其受保护代码或素材的权利。7
理解 REA,最值得抓住的是它提出的一种工作方式:围绕一个具体问题,调用工具寻找证据,再据此解释和验证软件行为。当 AI 能够把“为什么这样运行”讲清楚,并让人核对依据,它对软件开发的帮助也就有了更扎实的基础。
参考资料
REA 官方 GitHub 仓库与 README REA 原生二进制调查文档 REA 官网与计算器案例 REA JavaScript 应用工作流文档 REA 6.8.0 正式发布说明 REA 安装与配置文档 REA 项目使用说明与分析限制















































































