夜雨聆风学习资料网

ARTICLE · 1189305

看上别家 App 的功能?让 Agent 借 REA 把实现“问”出来

看上别家 App 的功能?让 Agent 借 REA 把实现“问”出来

    你看到一个笔记应用的搜索很顺手、一个 Electron 软件的剪贴板很聪明、一个老游戏的角度算法很刁钻,第一反应通常是:

    “这玩意儿到底怎么写的?”

    没源码的时候,传统做法是打开 Ghidra、IDA、Hopper,和汇编死磕。现在有个更省力的思路:把“调查任务”交给 AI Agent,让 REA(Reverse Engineer Anything) 当它的显微镜。

    REA 不是新造的反编译器,而是一个 MCP 服务 + CLI 工具:它把 Agent 和本机已有的逆向/分析工具连起来,让 Claude Code、Cursor、Codex、Gemini CLI、Grok Build 这些智能体去“翻文件、追调用、拿证据”,最后用人话解释,还能在你的项目里复刻类似功能。

一、快速开始:一条命令接好 Agent

    环境先备齐:Node.js 22.19+、24.11+ 或 26+,以及 npm。

    终端里跑:

npx rea-agents setup

    它会让你选正在用的 Agent,展示“准备改哪些配置”,你批准后会:

  1. 注册 REA 的 MCP 服务。
  2. 安装配套的工作流 / skill 指引。
  3. 备份原有 Agent 配置。
  4. 改完重启 Agent 即可。

不想走 Agent,也可以纯终端用:

npx -y rea-agents@latest analyze-javascript-application /absolute/path/to/app --json

常用就全局装:

npm install --global rea-agentsrea update

REA 发版很勤,遇到怪问题,先更新再报 issue。

二、REA 的工作原理:Agent 动脑,REA 动手

    REA 的定位很克制:

智能体负责提问、推理、写代码;REA 负责调工具、查本机目标、把发现整理成“带证据”的结果。

    流程是闭环的:

  1. 你问:“Notes 的搜索是怎么做的?把证据给我。”
  2. Agent 通过 MCP 调 REA。
  3. REA 查模块、函数、字符串、IPC、伪代码、汇编。
  4. 返回的不是“应该是这样”,而是“我在哪看到的、依据是什么、哪里还不确定”。
  5. Agent 继续追问,或开始在你的仓库里写实现、跑测试。

    最关键的是 Evidence(证据)。

    REA 不装神弄鬼说“我已还原源码”,它会把观察、推断、未知项分开。你拿到的是可复核的调研报告,不是 AI 幻觉小作文。

三、可以分析什么?

  • JavaScript / Electron:模块、import、preload、IPC 边界、富文本剪贴板数据→ 不需要 Ghidra / IDA / Hopper,门槛最低。
  • .NET 程序集:静态读元数据、CIL、依赖,不运行目标。
  • 原生二进制(exe / dylib / so / ELF / Mach-O):伪代码、汇编、符号、交叉引用→ 需要 Hopper、Ghidra 或 IDA;setup 可在你同意后装 Hopper。
  • 网站:页面结构、脚本、网络行为、运行时观察。
  • APK / 固件 / WASM / EVM / 进程行为等:由对应工具和指南支撑。

    一句话:JS 和 .NET 能直接起步;原生二进制才需要专业反编译引擎。

四、三个很“硬”的官方案例

1. Notion 剪贴板桥

    从渲染进程的剪贴板 API 出发,沿 preload 和 IPC 追到主进程,看清富格式剪贴板数据怎么流转。

2. DX-Ball 声音声像计算

    沿声音调用追到“按位置算声像”的辅助函数,把不完整伪代码重建成 C。

    重建结果通过 3205 个原始 x86 测试用例,并复现编译后函数的 全部 63 个字节。

3. PC-98 老游戏弹幕角度

    看 16 位指令,恢复固定角度和瞄准角度计算,再把重建的 C++ 和当年编译器输出对照。

    这三个案例的共同点:

    不是“AI 编代码”,而是在机器码 / 老指令上做考古,最后落回可验证的实现。

五、常见问题

Q:哪些 Agent 能用?

    任何支持本地 MCP 的 Agent。Claude Code、Codex、Cursor、Gemini CLI、Grok Build 有 setup 支持;别的客户端手动注册 MCP 也行。

Q:必须装 IDA 吗?

    不是。JS / Electron / .NET 静态分析不需要原生引擎;原生二进制才要 Hopper / Ghidra / IDA 三选一。

Q:分析会上传吗?

    分析在本机跑;但工具结果会进你选用的模型服务商,隐私政策各自看清。

Q:能还原原始源码吗?

    不能保证。REA 给的是证据、结构和可复刻思路,不是把闭源项目变回原仓。

Q:合法边界?

    只分析你拥有或获授权检查的软件。别拿它碰没权限的商业闭源程序。

六、GNU objdump 和 Rizin 在哪起作用?

    很多人只记得 Hopper / Ghidra / IDA,但 REA 也支持调用方自备的 GNU objdump 和 Rizin 做离线原生检查。

  • GNU objdump:看段、符号、反汇编、重定位信息,适合快速瞄二进制结构。
  • Rizin / radare2 系:更偏交互式逆向、脚本化分析、交叉引用和函数图。

要注意:

REA 不会帮你安装或更新 objdump / Rizin,得自己先在系统里准备好。它们适合“我不想开大型 GUI 引擎,但也想让 Agent 看一眼原生指令”的场景。

对大二进制,还可以加:

REA_GHIDRA_STARTUP_TIMEOUT_MS=120000REA_HOPPER_STARTUP_TIMEOUT_MS=120000

别让引擎没启动完就被超时打断。

七、文档与进阶

官方站点:rea.tools

仓库:github.com/morluto/rea

npm:rea-agents

值得重点看的文档:

  • 安装与设置:MCP 注册、手动接入、skill 安装。
  • CLI 与 Evidence 指南:每条命令返回什么、证据格式是什么。
  • 提供方设置:Hopper / Ghidra / IDA / objdump / Rizin 怎么配。
  • 各运行时指南:静态检查、运行时捕获、进程权限边界。
    GitHub Star 达到 250,000 个

八、最后一句话

    REA 最迷人的地方,不是“逆向一切”这种口号,而是它把逆向从专家黑话变成了Agent 工作流:

看到喜欢的功能 → 让 Agent 查到二进制层 → 拿到证据 → 在自己项目里重做一遍。

    工具越锋利,手越要稳。

    会用 REA 的人,不是在“破解软件”,而是在向优秀实现学习。

相关学习资料