命令行工具 活跃维护

rea

morluto/rea

使用代理对任何事物进行逆向工程,从应用行为到本地二进制文件。

50578
Stars 标星
8952
Forks 分支
157
Watchers 关注
118
Open Issues
TypeScript
主要语言
MIT
开源协议
38.9 MB
仓库大小
1 小时前
最后推送
一键安装扩展 / 插件指令
dsh plugin --profile web add github:morluto/rea
git clone https://github.com/morluto/rea.git
git clone git@github.com:morluto/rea.git
README.md main

官方中文正文为项目官方提供的中文文档(原文转载),本站未作翻译、未改动文字,仅剔除图片与无关章节。

REA:逆向分析一切

通过一个 MCP 服务,逆向分析二进制文件、应用程序和运行时行为。

看到喜欢的功能,弄清它的工作原理,深入到二进制层面。

网站 · 指南 · 案例

快速开始 · REA 的工作原理 · 可以分析什么 · 案例 · 常见问题 · 文档

npx rea-agents setup





加入逆向工程社区

Discord · 问答 · 成果分享



在应用中看到一个想加入自己产品的功能?让智能体用 REA 调查它。即使没有源代码,智能体也可以检查应用、解释功能的工作方式、展示证据,并为你的项目实现类似功能。

REA 将智能体连接到分析工具,用于检查原生二进制文件、JavaScript 和 Electron 应用、.NET 程序集以及网站。你也可以在终端中使用同样的工具。分析在本机运行,结果包含支撑各项结论的证据和相关限制。

设置流程会向智能体注册 REA,并安装匹配的工作流指引。原生分析可以使用已有的 Hopper 或 Ghidra;设置流程也可以在你批准后安装 Hopper。静态 JavaScript 分析不需要这两个引擎。

访问 REA 网站,查看设置说明、图解指南和真实案例。

快速开始

设置智能体

安装 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 字节码 分派选择器、字节偏移、推断的参数和状态可变性 本地原始字节/十六进制输入载体;离线 EVM 指南
已记录的 Linux 崩溃 原始 note 记录、每个已记录线程的寄存器/信号及可选的映射候选项 调用方提供的 pwntools;可选的 GDB/pwndbg;已记录崩溃
JavaScript / Electron 模块、导入、source map、路由、IPC 和原生扩展关系 Node.js 和 npm;应用分析
网站 页面结构、脚本、网络观察结果和按请求获取的截图 Chrome 系浏览器;浏览器分析
已保存的网络捕获 请求、响应、可访问的载荷和来源位置 HAR;原生 mitmproxy 捕获需要 Linux 上的 mitmdump;捕获指南
.NET 程序集 元数据、CIL 指令、声明的原生依赖和构建对比 静态检查;托管代码指南
Android APK 清单声明、类、反编译的方法和引用 Linux/macOS 上的无界面 JADX 和完整 JDK;Android 指南
固件 区域、提取结果和转交原生分析的内容 Linux 上的 Binwalk / Unblob;固件指南
软件包与资源 文件清单、摘要、plist、Apple bundle 结构和提取的资源 制品与 JavaScript 指南、Apple 应用
进程行为 终端输出、交互、退出和文件系统观察结果,以及运行对比 支持原生 PTY 的 Linux/macOS;进程捕获

静态 JavaScript 和 .NET 检查读取提供的文件,不运行应用。运行时捕获会以你的用户权限运行目标或与之交互;各运行时指南说明了具体影响。

不同提供方支持的原生格式和主机系统有所不同。请参阅 Hopper 与 Ghidra 设置、IDA 指南和实验性 Windows Ghidra 支持。Ghidra 也支持 16 位 DOS 分析。提供方选择见 CLI 指南。对于最新 npm 版本发布后新增的功能,请查看发布可用性。

案例

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 服务的智能体都可以使用。设置流程会配置受支持的智能体;其他客户端可通过手动注册 MCP 使用。

需要 Hopper、Ghidra 或 IDA 吗?

深入的原生分析需要其中一个引擎。静态 JavaScript 和 .NET 检查不需要原生分析引擎。设置流程可以在你批准后安装 Hopper;Ghidra 和 IDA 则使用已有安装。见提供方设置。

需要先启动 Hopper 吗?

REA 会在操作需要时启动 Hopper。在 macOS 上,首次运行时可能会出现对话框,让你选择演示模式或激活许可证。见 Hopper 启动与故障排查。

从 skills.sh 安装 skill 有什么作用?

skill 为智能体提供调查指引。使用 npx rea-agents setup 注册 REA 的 MCP 服务并安装匹配的指引,然后重启智能体。见仅安装 skill。

REA 返回什么代码?

原生分析返回伪代码和汇编。JavaScript/Electron 分析恢复模块及其关系。智能体利用这些发现编写并测试实现;案例提供了完整示例。

REA 会上传我的应用吗?

REA 在本机分析目标。智能体会接收工具结果,其模型提供商有自己的数据政策。

遇到错误时该怎么办?

先更新;最近的版本可能已经修复了问题。

通过 npm 安装的 CLI 使用:

rea update

通过 npx 设置智能体时使用:

npx rea-agents@latest setup

如果正在使用智能体,请完成设置更新并重启智能体。重试同一任务。如果问题仍然存在,请提交 issue,附上 REA 版本、目标类型、复现步骤和错误输出。

文档

可以先阅读网站上的实操指南。具体选项、前提条件和结果契约见:

请按照 SECURITY.md 报告漏洞。

Star 历史

🎉 GitHub Star 达到 50,000 个,感谢大家!

感谢每一位使用 REA、报告错误、提出功能需求、测试构建和贡献修复的朋友。

免责声明

REA 为合法的逆向工程研究、分析和重建提供工具。你有责任取得所需授权并遵守适用法律。项目不支持非法或未经授权的使用。

参与贡献

欢迎帮助改进 REA!你可以提交 issue 报告错误或建议功能,也可以提交 pull request 改进代码或文档。

开发设置和检查见 CONTRIBUTING.md,验证流程见测试指南,项目结构见架构图。

许可证

MIT

本站来源与版权声明
  • 本文标题:rea - 使用代理对任何事物进行逆向工程
  • 本文链接:https://www.cn121.com/cli/morluto-rea.html
  • 原项目:morluto/rea 版权归原作者 morluto 及贡献者所有
  • 收录信息:本站于 2026-10-10 收录本项目,本页所列协议与仓库指标均为收录当时的状态;该日期之后原项目的版本更新与协议变更,本页不作同步。
  • 开源协议:收录时本项目采用 MIT(查看 LICENSE 原文),本站转载其原始文档(未改动文字,仅剔除图片与无关章节);使用、修改、分发请以该仓库 LICENSE 原文为准。
  • 站点出处:本文首发于 OneTwoOne,收录自 GitHub 开源项目 morluto/rea。
  • 内容说明:本页正文为项目官方提供的中文文档(原文转载),本站未作翻译、未改动文字,仅剔除了图片与赞助等无关章节、并把相对链接改为绝对地址;页首简介为机器翻译自仓库描述。
  • 引用声明:商业转载、第三方聚合或 AI 检索训练引用时,请务必保留以上来源出处、本文永久链接,以及原项目的版权声明与许可信息。
  • 下架通道:若原项目此后变更或收紧了许可协议、或作者/权利人认为本站的收录方式(译文、排版适配、简介翻译等)超出其授权范围,请通过 xyd3302001@163.com 发送下架通知,并附上项目地址与本页链接。本站核实后将第一时间删除本页内容,或改为不复制原文的目录性收录;署名更正等其他要求可一并提出。