夜雨聆风学习资料网

ARTICLE · 1152174

不用源码,让 Claude 拆开一个 App 是什么体验

不用源码,让 Claude 拆开一个 App 是什么体验
REA 是个开源的逆向工程 MCP,全名 Reverse Engineer Anything。你的 Agent 通过它拆解二进制、Electron 应用、APK、网站,结论附证据。分析全程跑在本地。

看到别人 App 里一个功能,想知道怎么实现的,你会怎么办?

以前的路子:装 Ghidra,啃汇编,对着几万个函数掉头发。现在另一条路:跟 Agent 说一句话,它自己去拆。

> 分析一下 Notes 的搜索是怎么实现的,   给我证据,然后给我的项目写一个类似的

REA 是什么

REA 本质是一台取证机器。它本身不做逆向的"判断",它负责把目标拆开、把证据摆出来——伪代码、汇编、字符串、调用关系、IPC 链路。判断和复现是 Agent 的活。

形态有两种,底层是同一套工作流:

  • -MCP server
    :注册给你的 Agent(Claude Code、Codex、Cursor、Gemini CLI、Grok Build 都支持),Agent 需要逆向能力时自动调用
  • -CLI
    :终端直接跑,rea analyze-javascript-application 一类命令,输出 JSON

调查流程一句话讲完:Agent 提问 → REA 拆目标、trace 相关代码 → 返回带证据的结论 → Agent 追问、解释、或者直接写个实现出来。

有个细节值得夸:每个结论都附带证据和局限性说明。哪些是确认的、哪些是推断的,分得清清楚楚。逆向这行当,最怕的就是把猜的当成测的。

安装:一条命令

要求 Node.js 22.x(≥22.19)、24.x(≥24.11)或 26+,有 npm 就行。

npx rea-agents setup

跑起来会让你选 Agent、审一遍它要改的配置、然后确认。它会注册 MCP server 和配套的工作流指令,改之前会备份原配置。完事重启 Agent 生效。

要长期用 CLI 的话:

npm install --global rea-agents rea --help rea update   # 更新,这项目迭代挺快

原生二进制分析需要 Hopper、Ghidra 或 IDA 里至少一个,setup 时可以选装 Hopper。纯 JS/Electron 分析不需要任何原生引擎,零门槛。

真实使用示例

例一:让 Agent 研究一个功能

对着 Claude Code 直接说:

Understand how search works in the Notes app, show me the evidence, and build a similar feature for my project.

把 Notes 换成你的目标 App,把 search 换成你想懂的功能。Agent 会调 REA 去拆,回来给你讲原理、给证据,然后动手写实现。

例二:CLI 拆 Electron 应用

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

输出包含模块清单、import 关系、Electron 边界(renderer/preload/main 的分界),每项都带证据。Windows 路径写 "D:/apps/example" 这种正斜杠格式。

例三:DX-Ball 声像公式重建(官方案例)

1996 年的老游戏 DX-Ball,REA 顺着一次声音调用挖到 position-to-pan 的计算辅助函数,把不完整的伪代码重建成 C。重建结果跑过 3,205 个原 x86 测试用例,并复现了编译后全部 63 个字节的函数体。逐字节复刻,这就是"带证据的逆向"能做到的程度。

另一个案例是 Notion:从 renderer 的 clipboard API 一路追过 preload、IPC 到主进程,把富文本剪贴板的桥接链路画了个通透。

例四:拆个 APK 或网站

Android APK 用 headless JADX 反编译出 manifest、类、方法引用;网站分析走 Chrome 系浏览器,给你页面结构、脚本清单、网络请求和截图。目标类型一共 12 种,下面一张表说清。

12 类目标速查表

目标
REA 给你什么
额外依赖
原生二进制
伪代码、汇编、符号、调用
Hopper/Ghidra/IDA
JS / Electron
模块、import、IPC、source map
只要 Node
网站
结构、脚本、网络、截图
Chrome 系浏览器
Android APK
manifest、类、反编译方法
JADX + JDK
.NET 程序集
元数据、CIL、native 依赖
无
EVM 字节码
selector、参数、mutability
无
固件
region、提取、转原生分析
Binwalk/Unblob
网络抓包
请求响应、payload 定位
HAR 文件
Linux 崩溃记录
寄存器、信号、映射候选
pwntools
进程行为
终端输出、文件系统变化
Linux/macOS PTY
ELF 布局
段、符号、缓解措施候选
pwntools
包与资源
文件清单、plist、bundle 结构
无

先说清楚边界

合规边界

逆向工程不是法外之地。拿 REA 拆商业软件去复刻功能、去绕授权,该踩的线一条不少。学习原理、分析自己有权限的目标、做安全研究、修没有源码的老旧程序——这些是正经用途。拿之前想清楚你对目标有没有合理的使用权限。工具中性,用途不是。

写在最后

适合两种人:想学逆向但被 Ghidra 劝退过的开发者,以及经常需要弄懂"这个功能到底怎么做的"的人。不适合想找一键破解工具的——REA 全程输出证据链,压根就不是干那个的。

npx rea-agents setup,五分钟,让 Agent 先拆个 Electron 应用给你看看。

项目地址:github.com/morluto/rea

相关学习资料