2026-10-16
从零跑通 REA:装机、证据、第一个 Electron 任务
这是 rea.run 上的 REA(Reverse Engineer Anything)运维入门长文。目标:装好、用 Evidence 验证、在你有权分析的目标上跑通一个免引擎的 Electron/JavaScript 任务。本站教学钉版:[email protected]。英文孪生:/blog/rea-beginner-guide/。版本细节另见:/zh/blog/rea-agents-6-5-0/。

读完你能带走什么
| 关卡 | 通过标准 |
|---|---|
| Node | node -v 为 22.19+、24.11+ 或 26+(不是 23/25/预览版) |
| 钉版 | 能跑 npx -y [email protected] doctor --json |
| 重启 | setup 后 MCP 客户端已完全退出再开 |
| 首任务 | 免引擎 analyze-javascript-application(或 Agent skill)在授权路径上返回 JSON/MD |
| Evidence 习惯 | 你留下的每条结论都有位置/摘要/未知清单 |
| 合规 | 目标为自有/授权/清洁室——/zh/compliance/ · /zh/faq/legal-boundary/ |
最短路径(可收藏):装好受支持的 Node → npx -y [email protected] setup → doctor --json → 重启 Agent → 拆一个你有权检查的 Electron/JS 应用 → 读 Evidence → 再决定要不要 Hopper/Ghidra/IDA。交互安装演示:/zh/docs/install-demo/。动手实验室:/zh/lab/。
一、REA 到底是什么

逆向工程就是把做好的东西拆开,看它怎么做成的——玩具里的齿轮,或打包好的程序文件。适用于你自有软件、持有书面授权,或清洁室/许可夹具。未授权商业逆向不在本站范围内(/zh/faq/legal-boundary/)。
MCP(Model Context Protocol)是给 AI Agent 装「手」的统一接口:打印机、计算器、档案柜——在这里是逆向工具。没有 MCP,聊天框只能让你粘贴文本。
REA 钉在中间。左边:你的 Agent(Claude Code、Codex、Cursor 等,见 /zh/docs/clients/ 矩阵)。右边:Hopper、Ghidra、IDA(原生二进制需自备)。REA 是 MCP 服务器/CLI,把 Agent 意图翻成工具指令,再用大白话返回带 Evidence 的结果。上游定位很克制:它不是新的反编译器——是接口层。工具仓库:morluto/rea。npm 包:rea-agents。
| 传统逆向工具(Ghidra、IDA) | 仅网页聊天 | REA + Agent | |
|---|---|---|---|
| 谁在操作 | 你自己;得看得懂汇编 | 只会说;碰不到本地文件 | Agent 自己动手 |
| 没有源码时 | 能拆;结果要你自己啃 | 完全没辙 | 能拆,还能用大白话讲 |
| 结论可核对吗 | 你自己判断 | 可能一本正经地瞎编 | 每条结论带 Evidence/未知 |
发现信号(不是安装 SLA):公开仓库 morluto/rea 在 2026-10-16 GitHub API 快照约为 27.5 万 star、6.9 万 fork(创建于 2026-04-14)。计数会变——引用前请重抓。星标 ≠ 许可,也 ≠ 本机 doctor 绿灯(/zh/blog/evaluating-rea-claims/)。
二、能干什么·不能干什么

能干的(按额外要装多少分档)
| 档次 | 能拆什么 | 要额外装东西吗 |
|---|---|---|
| 最省事 | JavaScript/Electron 应用、网站、SQLite、网页存档、包与资源 | 不用——Node + rea-agents |
| 中等 | 原生二进制(Mach-O、ELF、PE、Mac .app)、Go、.NET、WASM、EVM、Linux 崩溃转储 | 配一个分析引擎(Hopper/Ghidra/IDA) |
| 要折腾 | Android APK 与设备、固件、抓包、录制逻辑信号、JEB 工程、Flutter | 目标专属配套(ADB、JEB、Wireshark…) |
新手先盯第一档。Electron 应用(VS Code、Notion 等桌面软件)是网页技术包成桌面端——门槛最低,不必 Hopper。装好后可走 /zh/lab/dino-speed/ 或 /zh/lab/calculator-percent/ 做引导练习。
不能干的
- 不给你原始源码。输出是反编译/分析器还原:逻辑可以是真的;
local_18/sub_401230这类命名是猜的。 - REA 在本机分析目标——目标文件不经 REA 上传。你家 Agent 所用模型仍有自己的数据政策;那条线单独算。
- 它支持「看懂」,不是「整包复制上线」。在授权下用自己的表述与资产重建——见 /zh/compliance/。
三、下载和装

先走命令行——报错最直白——再注册 Agent。站内安装文档:/zh/docs/install/ · 演示流程 /zh/docs/install-demo/。
第一步:装 Node.js
版本挑得很细:只认 22.x ≥22.19、24.x ≥24.11,或 26+。23 与 25(以及预览版)不行。setup 不会替你升级 Node,也不会替引擎装 Java/Python。
node -v
# 期望 22.19+、24.11+ 或 26+
# nvm 示例:
nvm install --lts
nvm use --lts
第二步:一条命令装(钉 6.5.0)
npx -y [email protected] setup
# 交互:选客户端、可选 Hopper、审计划、批准
npx 临时下载跑完即可——新手最干净。全局替代:
npm install --global [email protected]
rea --help
第三步:setup 会问你什么
| 客户端(示例) | 填写值 |
|---|---|
| Claude Code | claude_code |
| Codex | codex |
| Cursor | cursor |
| Gemini CLI | gemini_cli |
| VS Code | vscode |
完整客户端矩阵(约二十个 id,含 6.5.0 新增行):/zh/docs/clients/。检测到 ≠ 自动勾选——已装过的默认选中;新发现的只列出、不强制勾。
第二问:Mac 上可选装 Hopper(厂商收费工具)。第一次建议不装——第一档根本不需要。第三问:审计划(文件、命令、下载来源)再批准。两次批准是常态:npm 下包一次,REA 改配置再一次。想先看计划:
npx -y [email protected] setup --client codex --dry-run
第四步:装完先做三件事
1. 体检(只读):
npx -y [email protected] doctor --json
# 限定范围示例:
npx -y [email protected] doctor --provider ghidra --json
npx -y [email protected] doctor --client codex --json
healthy: false 常常只是「全矩阵里某块你没装」,不等于「第一档也跑不了」。把体检范围收窄到你真正要用的客户端/引擎。
2. 把 Agent 完全退掉再开。MCP 注册写在配置文件里;已开着的会话不会自动读到。典型症状:doctor 绿灯,聊天却说「没有这个工具」。
3. 免引擎冒烟(绝对路径;仅授权目标):
npx -y [email protected] analyze-javascript-application "/ABS/PATH/TO/YourApp.app" --json
# Electron ASAR 示例形态(macOS),仅当你有权检查该副本:
# npx -y [email protected] analyze-javascript-application \
# "/Applications/YourApp.app/Contents/Resources/app.asar" --format json \
# --integrity-policy=record-and-continue
带签名原生 .node 模块的应用常撞上 artifact_integrity_mismatch。加 --integrity-policy=record-and-continue 会把校验从「对不上就停」改成「记下来接着跑」——是这类打包的常态,不等于你装错了。
更新与卸载
rea update # 全局安装用这句
npx -y [email protected] setup # npx/重新注册
rea uninstall # 只摘 REA 写进去的配置与说明书
rea uninstall --purge-data # 连缓存/状态一起清
卸载不动 Hopper、Node、你自己的抓包,以及其他 MCP 服务器。
四、三个分析引擎怎么挑

JavaScript/Electron/网站/SQLite 可以完全不装引擎。引擎是给原生机器码准备的。正确顺序:先用第一档跑通 Agent 闭环,再为二进制付学费。
| Hopper | Ghidra | IDA | |
|---|---|---|---|
| 费用 | 收费;功能受限试用 | 免费开源 | 收费(通常最贵) |
| 来源 | 商业产品 | NSA 开源放出 | 老牌商业逆向套件 |
| 安装 | Mac 上 REA 可协助 | 自备 JDK + Ghidra;把路径告诉 REA | 跟厂商手册;自备 |
| 适合 | Mac、想少折腾 | 预算为零、愿意动手 | 已有许可的专业用户 |
三个里装一个就够。同一次分析多个都能干时,要加 --provider/provider_id,否则它不知道该叫谁。setup 与引擎 FAQ:/zh/faq/setup-vs-providers/。Ghidra 笔记:/zh/blog/ghidra-mcp-with-rea/。
Ghidra(免费那条路)
export GHIDRA_INSTALL_DIR=/path/to/ghidra_12.1.4_PUBLIC
export JAVA_HOME=/path/to/jdk-21 # java 已在 PATH 则可省
npx -y [email protected] doctor --json
npx -y [email protected] setup # 把路径存进去
上游教学钉版常点名 Ghidra 12.1.x 与 JDK 21+(64 位,带 javac)。REA 不会替你下 Ghidra 或 Java。
Hopper(Mac 省事)
Mac 上 setup 可能提供 Hopper:下官方包、校验大小与摘要、装到 ~/Applications/,再打开试用或输授权。该路径不需要 Homebrew/管理员权限。卸载 REA 不会带走 Hopper。试用限制由厂商定。macOS 自动化权限在「系统设置 → 隐私与安全性 → 自动化」。
启动超时
export REA_HOPPER_STARTUP_TIMEOUT_MS=300000
export REA_GHIDRA_STARTUP_TIMEOUT_MS=300000
环境变量要设在启动 REA 的那一层。同时把 Agent 自己的请求超时放宽——REA 肯等,客户端先断也没用。
五、第一个任务(免引擎 Electron/JS)

挑一个你有权分析的桌面应用(自建、许可夹具、书面授权)。路径必须是绝对路径。./app 相对路径会找不到。
npx -y [email protected] analyze-javascript-application /Applications/YourApp.app --json
JSON 里重点看:模块清单、引用/依赖边,以及 Electron 边界——渲染层(界面)、预加载层(桥)、主进程(系统能力)。界面默认碰不到系统 API;要经预加载桥喊主进程。把这些桥标出来,就是第一档的教学收获。
某次授权的 Claude Desktop ASAR 实测规模(运维实验笔记——你的数字会不同;不要当成通用 SLA):数百个文件、数千条发现、带名字的原生模块(如电脑操作/终端类 .node),以及数十到上百条 IPC 频道名。大文件可能在 limitations 里写「堆爆了,只保留部分事实」——这种诚实是特性。
npx -y [email protected] analyze-javascript-application \
"/Applications/YourApp.app/Contents/Resources/app.asar" \
--format md --integrity-policy=record-and-continue \
> ~/Desktop/analysis.md
REA 只往终端打结果,不自动落盘。自己重定向。--format 可选 md、json、yaml、jsonl。只要切片时用 --filter-output statistics,summary。6.5.0 的精确路径选择与保留 Evidence 分页见 /zh/blog/rea-agents-6-5-0/,本页不重复整篇版本指南。
六、证据:REA 最值钱的地方

上游设计原则第一条是证据优先:每条结论应说明*凭什么*——文件位置/路径、摘要、JSON 路径——并单独列出这次分析没能确定的事。多数工具只报发现;REA 也会报缺口。
运维为何在意:模型不确定时会编得像真的。聊天里最多尴尬;逆向里会带你走错几小时。Evidence 把「信我」变成「你去核」。但仍注意:证据也是工具输出——工具会错。价值在可核对,不在「一定对」(/zh/blog/evaluating-rea-claims/)。
七、让 Agent 自己干
命令行用来证明管子通了。真正用法是 Agent 带着 skill 调 MCP。setup 会写 MCP 注册和说明书。只有 skill 或只有 MCP,Agent 都是半武装。
# 若 MCP 已注册,只刷新说明书:
npx skills add morluto/rea --skill reverse-engineer-anything
对齐 REA 用法的提示词模板:
拆一下[授权目标]里的[某个功能]。
1. 用大白话讲它怎么实现
2. 每条结论带上 Evidence
3. 没能确定的地方单独列出
4. 再按这个思路,在*我的*仓库写*我自己的*版本
每次都主动要不确定清单。超大 ASAR/图优先落盘再切片分析——否则 Agent 上下文会爆(见站内省 token FAQ)。Agent 实验室安全姿态:/zh/blog/rea-agent-security-posture/。

八、三个案例尺度
用来感受「分辨率」有多细——不是许可你去拆任意商业软件。
DX-Ball(1996 打砖块)。社区重建还原了立体声像计算;站内记载 3,205 = 641 × 5 行为用例。完整 Evidence:/zh/showcase/dx-ball/。发现帖孪生:/zh/blog/dx-ball-rea-discovery/。

Notion 类 Electron 剪贴板链路。把「复制」从渲染层追到预加载桥、主进程、再到系统剪贴板——第五节三层模型的活示范。仅限你有权检查的副本。

TH04/PC-98 子弹环计算。说明在自备引擎、有权持有夹具时,目标可以有多老、多偏门。同一课:还原具体计算,而不是气氛。
九、坑集锦

- 没重启 Agent——doctor 查的是文件,不是当前会话连接。
- Node 差一点点——22.18、23、25 直接拒绝;先看
node -v。 - 看到
healthy: false就慌——把体检收窄到你的客户端/引擎。 - 只点一次同意——下包与改配置是两次;先
--dry-run。 - 指望原始源码——你拿到的是伪代码与猜测命名。
- 敏感目标进模型上下文——REA 本机分析;模型厂商政策另算。
- 一上来就装引擎——先跑通第一档。
- 相对路径——写绝对路径;macOS 入口写到
.app那一层。 - 有没有权利——好奇之前先授权(/zh/faq/legal-boundary/)。
十、常见问题

| 问题 | 短答 |
|---|---|
| 必须装 Hopper 或 Ghidra 吗? | JS/Electron/网站/SQLite 静态分析不必 |
| Hopper 要提前打开吗? | 不用——需要时 REA 会启动 |
| 哪些 Agent 能用? | 支持本地 MCP 的客户端;矩阵见 /zh/docs/clients/ |
| 返回的是源码吗? | 不是——伪代码/还原事实 |
| 软件会上传吗? | 不经 REA;模型厂商政策另算 |
| 支持 Windows 吗? | Agent 侧可用;Windows 上 Ghidra 多为实验状态;Hopper 自动安装偏 Mac;主力是 Mac/Linux |
| 升级/会留垃圾吗? | 见第三节;卸载只摘 REA 自己写进去的 |
| 教学实验室钉哪版? | 本站 [email protected]——/zh/blog/rea-agents-6-5-0/ |
收束清单

- REA = 钉在 Agent 与 Hopper/Ghidra/IDA 之间的 MCP/CLI 工具箱
- 两个词:逆向 = 拆开看;MCP = 给模型装的手
- 装完三件:
doctor --json→ 重启 Agent → 免引擎命令 - 第一档可以零引擎
- Evidence + 未知 优于气氛
- 口诀:先免引擎跑通;要结论就顺手要证据
读完本页后常用的 Agent 一句话(每次批准仍要自己审):
帮我安装 [email protected],相关 skill 与 MCP 一并装上,把受支持的 Node/运行时准备好,
然后只分析我有权检查的目标。
仓库:https://github.com/morluto/rea

合规
- 仅授权/自有/清洁室目标。无破解、keygen、绕 DRM 教程(/zh/compliance/、/zh/faq/legal-boundary/)。
- 引擎与配套(Hopper、Ghidra、IDA、JEB、Wireshark…)一律自备,走厂商官方渠道。
- rea.run 是社区运维指南;页脚声明保持原样——正文标题不堆「非官方」。
- 主 CTA 留在 rea.run;GitHub 是工具仓库脚注。
来源
- 工具上游:morluto/rea · npm
rea-agents· 教学钉版 6.5.0(发行说明) - 星标/fork 快照:GitHub API 2026-10-16(约 27.5 万★/6.9 万 forks)——引用前请重核
- 站内:/zh/docs/install/ · /zh/docs/install-demo/ · /zh/docs/clients/ · /zh/docs/breaking/ · /zh/lab/ · /zh/showcase/dx-ball/ · /zh/blog/rea-agents-6-5-0/ · /zh/blog/what-is-rea-reverse-engineer-anything/ · /zh/compliance/
- 英文孪生:/blog/rea-beginner-guide/