ARTICLE · 1202987
软件行业的天塌了?REA 能让Agent 逆向追查 App 功能吗?
看到一个 App 的功能很顺手,想知道它到底怎么做的;偏偏源代码不开放,光看界面只能猜。REA 把逆向分析工具接给 coding agent,让它去目标程序里找线索、交出证据,再解释功能或帮你实现类似功能。它能追查具体功能,但不是一键还原整款 App 的按钮。
● ● ●
morluto/rea
REA 是 Reverse Engineer Anything,一套通过 MCP 接入 coding agent 的逆向分析工具,也提供终端 CLI。Claude Code、Codex 等 Agent 可以调用它检查目标。我觉得它最有价值的地方在于:会把代码位置、观察记录和没确认的部分一起交出来,Agent 的答案能回到证据上核对,也能据此继续追问、解释或编写并测试实现。[1]
它到底能分析什么?
REA 覆盖的范围远不止传统反编译,会按目标类型走不同的分析流程:[1]
JavaScript / Electron 应用:梳理模块、导入关系、路由、source map 和 IPC 调用链。想知道桌面 App 的某个按钮如何从界面一路触发到主进程,这些线索就派得上用场。[1]
网站与运行时行为:检查页面结构、脚本和网络请求,也能基于浏览器或已保存的网络捕获继续分析。[1]
原生二进制、.NET 和 Android 应用:读取汇编、伪代码、元数据或类与方法等信息;所需的本地分析工具会随目标变化。[1]
静态分析和运行时捕获不是一回事:前者直接读取提供的文件,不启动目标程序;后者会以你当前的用户权限启动程序或与它交互,可能产生真实副作用。“让 Agent 看看”并不总是无风险。[1]
它如何把线索拼成可核查的结论?
Notion 案例看的是桌面版的“复制”功能:REA 沿 clipboard.write(data) → ipcRenderer.invoke → ipcMain.handle 这条链路,追到 Electron 主进程把内容写入系统剪贴板的位置;两端通过 notion:clipboard:write 这个 IPC channel 对接。它展示的是一条具体调用链,不是把整个 Notion 逆向完。[4]

Notion 桌面版剪贴板调用链:页面 API 经 preload 与 Electron 主进程写入系统剪贴板
DX-Ball 案例只重建一个音效声像函数:REA 从游戏二进制中找出计算逻辑,重写成 C;在声像缩放为 1 时,横坐标从 0 到 640,输出从 -500 到 500,中点 320 对应 0。项目再用 3,205 个行为测试用例核对结果。它展示的是单个函数的重建,不是整款游戏的复刻。[5]

DX-Ball 声像函数示意:横坐标映射到左右声像,测试覆盖 3,205 个输入组合
第一次怎么接进 Agent?
先准备受支持的 Node.js 和 npm:官方要求 Node.js 22.19 及以上、24.11 及以上,或 26+。然后运行设置向导:[2]
●●●
npx rea-agents@latest setup在向导里选要接入的 Agent,检查它准备改哪些配置,再批准。它会注册 REA 的 MCP 服务、安装匹配的工作流指引,并备份已有配置;完成后重启 Agent。支持哪些客户端以及每个客户端的配置入口,以官方安装文档为准。[1][2]
接好以后,别只说“把这个 App 逆向一下”。把目标和你关心的功能说清楚,并要求它展示证据。REA README 给出的示例(译)是:[1]
❝弄清 Notes 应用的搜索功能如何工作,展示证据,并为我的项目实现类似功能。
把 Notes 换成你有权分析的目标应用,再补上具体功能。Agent 会先调查实现链路;看过证据,你再决定要不要让它在自己的项目里动手。[1]
如果你只想先分析一个已解包的 JavaScript / Electron 应用目录或 ASAR,也可以绕过长期接入,直接从终端跑 CLI:[3]
●●●
npx -y rea-agents@latest analyze-javascript-application /absolute/path/to/app --json把路径换成目标目录或 ASAR 文件。结果会包含模块图和相关 Evidence;大型应用的完整结果可能很大,先保存到文件,再看摘要或单个模块,比把整份结果塞进对话更实用。[3]
原生二进制分析会调用哪三个工具?
原生二进制这块,Hopper、Ghidra、IDA 是 REA 可接入的本地分析引擎。Agent 把调查请求交给 REA,REA 再调用其中一个;反汇编、伪代码、函数与调用关系等 Evidence 回到 Agent。同一个目标只用一个 provider;若多个引擎都支持它,CLI 用 --provider,MCP 的 open_binary 用 provider_id 点名。[1][3]

Agent 通过 MCP 调用 REA,REA 为当前目标选择 Hopper、Ghidra 或 IDA 中的一个,并将分析 Evidence 回传给 Agent
Hopper:设置向导可在你批准后帮忙安装,REA 会在需要时启动。[1]
Ghidra:使用你本机已有的安装。[1]
IDA:这条接法不太一样。REA 要连接你已有的 IDA 安装和兼容的 IDA MCP server;REA 提供的是适配器,不是 IDA 本体。还要确认正在用的
rea-agents版本已经包含这个适配器。[3]
静态 JavaScript 和 .NET 检查不需要这类原生引擎。网站、Android 等其他目标也各有依赖,不能假设装好 REA 就每种分析都能立刻运行。[1][2]
权限和隐私:REA 在本机分析目标,但 Agent 会收到分析结果,仍要考虑模型提供商的数据政策。只分析你拥有或获准检查的软件;运行时捕获时,目标程序会以你的权限运行。[1]
● ● ●
相关资源
📦 REA 官方中文 README:https://github.com/morluto/rea/blob/main/docs/readme/README_zh.md;GitHub 仓库:https://github.com/morluto/rea
🌐 安装与设置:https://github.com/morluto/rea/blob/main/docs/installation.md
🧰 CLI、Provider 选择与 Evidence 指南:https://github.com/morluto/rea/blob/main/docs/cli.md;IDA provider 接入说明:https://github.com/morluto/rea/blob/main/docs/ida-provider.md
🔍 Notion 剪贴板逆向案例:https://rea.tools/showcase/notion
🧩 DX-Ball 声像函数重建案例:https://rea.tools/showcase/dx-ball















































































