morluto rea
English · 简体中文 · 繁體中文 · 日本語 · 한국어 · Türkçe · Русский · Tiếng Việt · ไทย · Deutsch · Español · Français · Українська · Polski · Português (Brasil) · العربية · فارسی · Bahasa Indonesia · Italiano · Ελληνικά
REA:逆向工程一切
一个用于跨二进制文件、应用程序和运行时行为进行逆向工程的 MCP。
看到一个你喜欢的功能。理解它的工作原理,深入到二进制层面。
网站 · 指南 · 案例展示
快速开始 · REA 的工作原理 · 你可以分析什么 · 案例展示 · 常见问题 · 文档
npx rea-agents setup
重要提示
请从 morluto/rea、rea.tools 或 rea-agents npm 包获取 REA。请遵循这些官方来源提供的安装和发布链接。相似的仓库名称或复制的 README 并不能证明某个下载是官方的。
加入逆向工程社区
Discord · 问答 · 展示与分享
看到某个应用中的功能,想把它用到自己的产品里?让你的 agent 用 REA 来调查它。REA 可以在没有源代码的情况下检查该应用,解释功能的工作原理,展示证据,并为你的项目构建一个类似的版本。
REA 将你的 agent 连接到用于检查原生二进制文件、JavaScript 和 Electron 应用、.NET 程序集以及网站的工具。你也可以在终端中使用相同的工具。分析在本地运行,结果包含每个结论背后的证据和局限性。
安装程序会将 REA 注册到你的 agent 中,并安装匹配的工作流指令。原生分析可以使用现有的 Hopper、Ghidra 或 IDA 安装;安装程序可以选择在获得批准后安装 Hopper。静态 JavaScript 分析不需要原生分析引擎。
访问 REA 网站获取安装说明、图文指南和真实案例研究。
快速开始
在 Linux 上,Ghidra、JADX、固件工具启动以及静态 JavaScript/Electron 分析需要在 REA 的 PATH 中有一个与 procps 兼容的 ps,用于进程归属检查。恢复步骤见 docs/installation.md 中的“Linux owned-process prerequisite”。
设置你的 agent
在安装 Node.js 和 npm 后,运行:
npx rea-agents setup
选择你的 agent,查看建议的更改,然后批准它们。安装程序会添加 REA 的 MCP 服务器和匹配的工作流指令,并备份现有配置。之后请重启你的 agent。
安装程序支持 Claude Code、Codex、Cursor、Gemini CLI、Grok Build 和其他 agent。有关提供商配置和手动 MCP 注册,请参阅安装与设置。
让你的 agent 执行任务
了解 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 和证据指南。
更新 REA
REA 变化很快,新版本包含频繁的 bug 修复。请保持你的安装为最新版本。
对于通过 npm install --global 或 bun add --global 安装的 CLI:
rea update
Bun 全局更新需要 Bun 1.2.17 或更高版本。如果使用较旧的 Bun 版本,请在运行 rea update 之前手动升级 Bun。
要刷新你的 agent 注册和技能,请运行更新时打印的安装命令。
如果你使用 npx,请用以下命令更新你的 agent 设置:
npx rea-agents@latest setup
查看安装更改并重启你的 agent。
对于一次性 CLI 命令,请使用 npx rea-agents@latest 后跟命令。使用 Bun 时,请用 bunx rea-agents@latest 代替 npx rea-agents@latest。
REA 的工作原理
你的 agent 通过 MCP 调用 REA 来检查目标并追踪相关代码。REA 返回带有证据的发现。agent 利用这些发现来提出后续问题、解释行为,或编写并测试实现。CLI 命令使用相同的工作流。
打开全尺寸图片。
你可以分析什么
REA 需要 Node.js 22.x(>=22.19)、24.x(>=24.11)或 26+,以及 npm。其他工具和主机支持取决于目标:
| 目标 | REA 返回的内容 | 要求和指南 | | --- | --- | --- | | 原生二进制文件 | 伪代码、汇编、字符串、符号、调用和引用 | Hopper、Ghidra 或 IDA;原生分析 | | 离线 ELF 布局 | 节、段、原始符号/重定位和静态缓解候选 | 调用方在 Linux x64 上提供的 pwntools;二进制诊断 | | Go 二进制文件 | 嵌入的编译器版本、模块、替换和构建设置 | 内置静态 ELF/PE/thin Mach-O 检查;无需安装 Go | | Rust 二进制文件 | 嵌入的 cargo-auditable crate 名称、版本、来源和依赖边 | 内置静态 ELF/PE/thin Mach-O 检查;Rust 二进制文件 | | WASM 产物 | 验证、节、精确的导入/导出 WAT 形式和已解码的 WAT | 调用方提供的 WABT 1.0.42;inspect_wasm_artifact | | EVM 字节码 | 分发选择器、字节偏移、推断的参数和可变性 | Linux x64 上的本地 raw/hex 载体;离线 EVM 指南 | | SQLite 数据库 | 表、列、索引、视图、触发器和选定的普通表行 | 本地数据库/WAL 快照;Node.js 24.x >=24.15 或 26+ 及原生 SQLite 限制 | | 记录的 Linux 崩溃 | 原始记录、每个已记录线程的寄存器/信号和可选的映射候选 | 调用方在 Linux x64 上提供的 pwntools;可选的 GDB/pwndbg;记录的崩溃 | | JavaScript / Electron | 模块、导入、source map、路由、IPC 和原生插件关系 | Node.js 和 npm;Linux:与 procps 兼容的 ps;应用分析 | | 网站 | 页面结构、脚本、网络观察和请求的截图 | Chrome 系列浏览器;浏览器分析 | | 保存的网络捕获 | 请求、响应、暴露的载荷和源位置 | HAR 或 Fiddler Everywhere SAZ;Linux 上的 mitmdump 用于原生 mitmproxy |