正在打开工具详情…
正在打开工具详情…
一个 MCP 服务,让编码代理去逆向原生二进制、Electron 应用、.NET 程序集和网站,每条结论都附证据。适合想复刻某个功能的人;代价是深度分析要自备 Hopper / Ghidra / IDA。
想知道某个闭源功能到底怎么实现、并要在自己项目里复刻的人;以及做二进制 / 移动端 / 固件分析的安全研究人员。
Windows 为主且指望全功能的人(大量分析只在 Linux 验证过);也不适合不愿意自备 Hopper / Ghidra / IDA 就想看原生伪代码的人。
REA(Reverse Engineer Anything)把逆向工程的工具链接进编码代理。用法不是「你学逆向」,而是给代理一句「弄明白 Notes 里的搜索是怎么做的,给我证据,再给我的项目做一个」。代理通过 MCP 调 REA 去查目标,REA 返回结论加证据,代理据此追问、解释或写实现。
它的覆盖很宽:原生二进制、Go 二进制、WASM、EVM 字节码、SQLite、Linux 崩溃记录、JavaScript / Electron、网站、HAR/SAZ 抓包、.NET 程序集、Android APK 与设备、Flutter、固件、pcap、逻辑信号、进程行为。每条边都带 EXTRACTED(源码里明写)或 INFERRED(REA 推出来)标签,你能分清哪些是读出来的、哪些是猜的——这一点比「代理自信地编一段」强得多。
平台是最大的坑:很多能力只在 Linux 上。固件分析要 Binwalk/Unblob、抓包要 TShark、信号要 sigrok-cli、EVM 与崩溃分析要 pwntools,都写着 Linux 验证;进程捕获是 Linux/macOS;只有 Android APK、.NET、Flutter、静态 JS 这些能在 Windows 上跑。所以 Windows 用户买到的能力是不完整的,别按 README 那张表全量预期。
另外 REA 要求 Node.js 22.19+ / 24.11+ / 26+,版本不够直接失败;分析大二进制时可能要调大 REA_GHIDRA_STARTUP_TIMEOUT_MS 或 REA_HOPPER_STARTUP_TIMEOUT_MS。
上手步骤之外的具体做法:常见场景怎么配、命令怎么写、报错怎么处理。
按第一次用会卡在哪讲:Node 版本这条硬门槛、agent 与终端两种用法、原生分析为什么必须配 Hopper/Ghidra/IDA、以及「Windows 上哪些能力其实没有」这件事。
REA 的要求写得非常死:Node.js 22.x(>=22.19)、24.x(>=24.11)或 26+,外加 npm。低于这些版本不是警告,是装不上。
bashnode --version给代理用(主力场景):
bashnpx rea-agents setup向导让你选要接入哪些 agent(Claude Code、Codex、Cursor、Gemini CLI、Grok Build 等),列出将要改动什么,你确认后才写,并且会备份已有配置。改完必须重启 agent。之后直接说人话:
text弄明白 Notes 应用里的搜索是怎么做的,给我证据,再给我的项目做一个类似的。在终端用:
bashnpx -y rea-agents@latest analyze-javascript-application /absolute/path/to/app --json这个命令吃的是已解包的 JavaScript / Electron 目录或 ASAR,返回模块、导入、Electron 边界和各自证据。路径要写绝对路径。
想长期用就装成全局命令:
bashnpm install --global rea-agents
rea --help这是最容易踩空的一层。REA 自己不实现反汇编,它调度你机器上已有的:
| 目标 | 需要的引擎 |
|---|---|
| 原生二进制 | Hopper / Ghidra / IDA 三者之一 |
| WASM | 自备 WABT 1.0.42 |
| Android APK | headless JADX + 完整 JDK |
静态的 JavaScript 和 .NET 分析不需要任何原生引擎,读文件即可,不运行目标程序。所以如果你只想看 Electron 应用或 .NET 程序集,这一层完全不用管。
大二进制经常卡在引擎启动上,加长超时:
bashREA_GHIDRA_STARTUP_TIMEOUT_MS=600000 rea ...那张「能分析什么」的表里,大量行是 Linux 限定:
买之前先按自己的系统筛一遍,别按整张表预期。
REA 返回的每条边都标 EXTRACTED(源码里明写)或 INFERRED(REA 推出来的)。看到 INFERRED 多的时候,结论要自己再验证一遍,不要直接当事实写进代码。