REA:逆向一切
REA:逆向一切
通过一个 MCP 服务,逆向分析二进制文件、应用程序和运行时行为。
看到喜欢的功能,弄清它的工作原理,深入到二进制层面。
npm version MCP tool catalog skills.sh
npx rea-agents setup
在应用中看到一个想加入自己产品的功能?让智能体用 REA 调查它。即使没有源代码,智能体也可以检查应用、解释功能的工作方式、展示证据,并为你的项目实现类似功能。
REA 将智能体连接到分析工具,用于检查原生二进制文件、JavaScript 和 Electron 应用、.NET 程序集以及网站。你也可以在终端中使用同样的工具。分析在本机运行,结果包含支撑各项结论的证据和相关限制。
设置流程会向智能体注册 REA,并安装匹配的工作流指引。原生分析可以使用已有的 Hopper 或 Ghidra;设置流程也可以在你批准后安装 Hopper。静态 JavaScript 分析不需要这两个引擎。
快速开始
设置智能体
安装 Node.js 和 npm 后,运行:
npx rea-agents setup
选择智能体,检查计划中的变更并批准。设置流程会添加 REA 的 MCP 服务和匹配的工作流指引,并备份已有配置。完成后重启智能体。
设置流程支持 Claude Code、Codex、Cursor、Gemini CLI、Grok Build 和其他智能体。提供方配置和手动注册 MCP 的方法见安装与设置。
询问智能体
弄清 Notes 应用的搜索功能如何工作,展示证据,并为我的项目实现类似功能。
把 Notes 替换为目标应用,并描述你想了解的功能。
使用终端
检查已解包的 JavaScript/Electron 应用目录或 ASAR 文件:
npx -y rea-agents@latest analyze-javascript-application /absolute/path/to/app --json
结果包含模块、导入、Electron 边界及相关证据。将路径替换为你的目标路径,例如 Windows 上的 "D:/apps/example"。
如果需要经常使用,可以安装 rea 命令:
npm install --global rea-agents
rea --help
原生分析需要先配置分析提供方。原生命令、提供方选择、快照和脚本用法见 CLI 与 Evidence 指南。
更新 REA
REA 更新较快,新版本经常包含错误修复。请保持安装的版本为最新。
通过 npm 安装的 CLI 使用:
rea update
要更新智能体注册和 skill,请运行更新命令输出的设置命令。
如果使用 npx,通过以下命令更新智能体设置:
npx rea-agents@latest setup
检查设置变更并重启智能体。单次 CLI 操作可使用 npx rea-agents@latest,后接所需命令。
REA 的工作原理
智能体通过 MCP 调用 REA,检查目标并追踪相关代码。REA 返回发现及对应证据。智能体据此提出后续问题、解释行为,或编写并测试实现。CLI 命令使用同样的工作流。
可以分析什么
REA 需要 Node.js 22.x(>=22.19)、24.x(>=24.11)或 26+,以及 npm。额外工具和主机支持取决于分析目标:
| 目标 | REA 返回的内容 | 要求与指南 |
|---|---|---|
| 原生二进制文件 | 伪代码、汇编、字符串、符号、调用和引用 | Hopper、Ghidra 或 IDA;原生分析 |
| 离线 ELF 布局 | 节、段、原始符号/重定位信息及静态防护机制候选项 | Linux x64 上由调用方提供的 pwntools;二进制诊断 |
| EVM 字节码 | 分派选择器、字节偏移、推断的参数和状态可变性 | Linux x64 上的本地原始字节/十六进制输入载体;离线 EVM 指南 |
| 已记录的 Linux 崩溃 | 原始 note 记录、每个已记录线程的寄存器/信号及可选的映射候选项 | Linux x64 上由调用方提供的 pwntools;可选的 GDB/pwndbg;已记录崩溃 |
| JavaScript / Electron | 模块、导入、source map、路由、IPC 和原生扩展关系 | Node.js 和 npm;应用分析 |
| 网站 | 页面结构、脚本、网络观察结果和按请求获取的截图 | Chrome 系浏览器;浏览器分析 |
| 已保存的网络捕获 | 请求、响应、可访问的载荷和来源位置 | HAR;原生 mitmproxy 捕获需要 Linux 上的 mitmdump;捕获指南 |
| 数据包捕获 | 端点、DNS、TLS SNI、协议分布和 HTTP 请求 | 调用方提供的 tshark 和 capinfos;pcap 指南 |
| .NET 程序集 | 元数据、CIL 指令、声明的原生依赖和构建对比 | 静态检查;托管代码指南 |
| Android APK | 清单声明、类、反编译的方法和引用 | Linux/macOS/Windows x64 上的无界面 JADX 和完整 JDK;Android 指南 |
| Android 设备 | 设备、软件包、进程、日志、转储、屏幕截图以及 APK/文件传输 | 调用方提供的 adb(模拟器或实体设备);ADB 指南 |
| JEB 项目 | 引擎支持的项目单元、工件摘要和类型/方法的伪代码 | 由调用方启动、提供 MCP 的 JEB 客户端,通过 REA_JEB_MCP_URL 选择;JEB 指南 |
| Android 资源 | 解码后的清单、字符串表、语言区域和版本信息 | 调用方提供的 Apktool 启动器;资源指南 |
| Flutter 应用 | Dart 快照哈希、按 ABI 的库摘要及引擎构建溯源 | 无(静态 APK 解析);Flutter 指南 |
| 固件 | 区域、提取结果和转交原生分析的内容 | Linux 上的 Binwalk / Unblob;固件指南 |
| 抓包文件 | 指定字段、重复值、过滤条件与解码规则 | Linux: TShark 4.x + prlimit; 抓包分析指南 |
| 录制的逻辑信号 | 解码注释、样本范围和诊断信息 | Linux: sigrok-cli 0.7.2 + prlimit; 信号记录指南 |
| 软件包与资源 | 文件清单、摘要、plist、Apple bundle 结构和提取的资源 | 制品与 JavaScript 指南、Apple 应用 |
| 进程行为 | 终端输出、交互、退出和文件系统观察结果,以及运行对比 | 支持原生 PTY 的 Linux/macOS;进程捕获 |
静态 JavaScript 和 .NET 检查读取提供的文件,不运行应用。运行时捕获会以你的用户权限运行目标或与之交互;各运行时指南说明了具体影响。
不同提供方支持的原生格式和主机系统有所不同。
案例
DX-Ball 声音平移、Notion 剪贴板桥接与 TH04 弹幕环案例的插图
DX-Ball:重建声像计算
沿声音调用追踪到根据位置计算声像的辅助函数,检查指令,将不完整的伪代码转为 C。重建结果通过了 3,205 个原始 x86 测试用例,并复现了编译后函数的全部 63 个字节。
Notion:追踪 Electron 剪贴板桥
找到渲染进程的剪贴板 API,沿 preload 和 IPC 追踪到主进程,并检查富格式剪贴板数据。
TH04:恢复 DOS 环形子弹的计算
检查原始 PC-98 游戏的 16 位指令,恢复固定角度和瞄准角度的计算,并将重建的 C++ 与当年的编译器输出进行对比。
如果你用 REA 分析了有趣的目标,我们很想了解。欢迎通过 issue 或 pull request 分享案例,说明目标、你的问题、REA 如何提供帮助,以及你的发现。
常见问题
哪些智能体可以使用 REA?
任何支持本地 MCP 服务的智能体都可以使用。
需要 Hopper、Ghidra 或 IDA 吗?
深入的原生分析需要其中一个引擎。静态 JavaScript 和 .NET 检查不需要原生分析引擎。设置流程可以在你批准后安装 Hopper;Ghidra 和 IDA 则使用已有安装。
需要先启动 Hopper 吗?
REA 会在操作需要时启动 Hopper。在 macOS 上,首次运行时可能会出现对话框,让你选择演示模式或激活许可证。
从 skills.sh 安装 skill 有什么作用?
skill 为智能体提供调查指引。使用 npx rea-agents setup 注册 REA 的 MCP 服务并安装匹配的指引,然后重启智能体。
REA 返回什么代码?
原生分析返回伪代码和汇编。JavaScript/Electron 分析恢复模块及其关系。智能体利用这些发现编写并测试实现。
REA 会上传我的应用吗?
REA 在本机分析目标。智能体会接收工具结果,其模型提供商有自己的数据政策。
遇到错误时该怎么办?
先更新;最近的版本可能已经修复了问题。
通过 npm 安装的 CLI 使用:
rea update
通过 npx 设置智能体时使用:
npx rea-agents@latest setup
如果正在使用智能体,请完成设置更新并重启智能体。重试同一任务。如果问题仍然存在,请提交 issue,附上 REA 版本、目标类型、复现步骤和错误输出。
注意
REA最近太火了,但有两点需要注意:
- 千万千万千万别让Codex和Claude去逆向,封号警告
- 它并不是一键逆向任何软件,只是一个智能体
本质上只是让 AI 调用现有逆向工具,自动分析软件功能。



评论6次
这个我们内部分析对比过,与IDAMCP进行了对比,还是差一点
现在的门槛是越来越低了,想想以前用OD的年代。。
其实不然,一个是在自己脑子里,一个是在工具里. 有区别的. 你没发现几行代码完成的事情,ai会给你你一堆没用的代码, 冷只是ai是谁搞出来的,拿啥写的>
感觉没那么好用 而且有点废token
不好用。
现在的门槛是越来越低了,想想以前用OD的年代。。
这个我们内部分析对比过,与IDAMCP进行了对比,还是差一点
REA 本质是把本地逆向工具链(Hopper/Ghidra/JADX/mitmproxy/adb/pwntools 等)通过 MCP 协议暴露给 AI 智能体调度,
npx rea-agents setup会把 MCP 服务和 skill 注册到 Claude Code、Codex、Cursor 等客户端。由于它以当前用户权限运行并且具备执行命令、访问设备、捕获网络流量的能力,安全边界需要主动控制。主要风险面和对应的缓解措施:
1. MCP 服务的网络暴露面参考 Burp Suite MCP 服务被报告的 DNS Rebinding SSRF(HackerOne #3176157):本地 MCP 端点如果没有 Origin 校验和 CORS 限制,恶意网页可以借助 DNS rebinding 把受害者浏览器连到
127.0.0.1上的 MCP 服务,再用send_http1_request类工具访问 localhost 服务、内网段和云元数据端点(169.254.169.254)。REA 同样监听本地端口并暴露工具能力,配置时要把绑定地址锁在127.0.0.1或 Unix socket,禁止0.0.0.0监听;如果你要跨主机调用,加一道反向代理并强制 mTLS,不要直接放开。2. 本机权限边界REA 文档写明"运行时捕获会以你的用户权限运行目标或与之交互",涉及
process-capture、原生 PTY、adb设备交互、pwntools 执行时,等于把当前账户的全部权限交给 LLM 调度。任何能影响 MCP 输入的来源(网页内容、被分析的文档、第三方 skill)都可能在你的权限下执行任意命令。建议用一个专用低权限账户跑涉及进程/设备交互的分析,主账户只做纯静态分析(JS 静态检查、.NET 元数据读取);高敏目标放进 VM 或容器。3. 供应链投毒MITRE ATLAS AML.T0104 描述的攻击模式正是针对这种情况:npm、GitHub、skill 注册表缺乏审核,攻击者发布带 prompt injection 或恶意代码的"工具",等你装进 MCP 客户端就会劫持智能体行为。REA 自己也是从 npm 拉取,setup 流程还会从远程仓库同步 skill。用
npm install --global rea-agents而不是npx @latest来固定版本,校验package-lock.json的 integrity hash,setup 前先在隔离环境 dry-run 看它要写哪些配置文件。4. 逆向结果回传 LLM 的数据外泄OWASP GenAI LLM02:2025 Sensitive Information Disclosure 适用:REA 输出的伪代码、字符串表、符号、source map、网络捕获内容、APK 反编译结果都会随 prompt 提交到模型提供方(Anthropic/OpenAI/Google)。即使你分析的目标不含密钥,逆向过程中的副产品(硬编码的 API key、内网主机名、AWS ARN、数据库连接串、员工邮箱)本身就经常泄露凭证。处理商业软件或含客户数据的二进制时,把分析放在离线 VM 里,禁用分析结果上传,用本地模型(如 Ollama + Qwen/DeepSeek)跑推理。
5. 账号风控贴子里已经提了,Codex 和 Claude 对逆向活动会自动封号。如果你用主账号接入,等于拿工作流赌账号安全。
6. 工具调用的间接注入REA 的工作流是"LLM 读取目标→生成后续问题→调用 MCP 工具→基于结果继续分析"。如果目标文件包含针对 LLM 的 prompt injection(比如 README、注释、HTML 中的隐藏指令),智能体可能偏离你的实际任务。Hopper/Ghidra 的反编译视图和 JADX 的反编译 Java 都在潜在注入面内——分析前对目标做一轮 prompt injection 扫描(关键词:
ignore previous instructions、system:、`` 等),可疑目标走人工复核而不是全自动链路。实操上比较稳的配置:隔离账户 + 127.0.0.1 绑定 + 固定 npm 版本 + 离线敏感目标 + 本地模型跑分析。REA 的价值在于把"读懂二进制"这件枯燥活的初轮筛选自动化,最终决策和落地实现还是回到人手比较可控。