fix(errors): stop recommending retries for non-retryable failures (#1869)
- fix(errors): stop recommending retries for non-retryable failures
Unreadable output and provider adapter failures project retryable=false, but their standard message and remediation said “Retry once”, so a firmware run whose expected report was never published told callers to repeat a non-retryable operation. Point those failures at
rea doctorand the reported details instead, leaving retryability decided once by the projected error code.Fixes #1855
Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com
- fix(errors): align Hopper remote failure guidance with retryability
Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com
Co-authored-by: Claude Opus 5.5 noreply@anthropic.com
版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9
京公网安备 11010802047560号
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加入逆向工程社区
Discord · 问答 · 成果分享
在应用中看到一个想加入自己产品的功能?让智能体用 REA 调查它。即使没有源代码,智能体也可以检查应用、解释功能的工作方式、展示证据,并为你的项目实现类似功能。
REA 将智能体连接到分析工具,用于检查原生二进制文件、JavaScript 和 Electron 应用、.NET 程序集以及网站。你也可以在终端中使用同样的工具。分析在本机运行,结果包含支撑各项结论的证据和相关限制。
设置流程会向智能体注册 REA,并安装匹配的工作流指引。原生分析可以使用已有的 Hopper 或 Ghidra;设置流程也可以在你批准后安装 Hopper。静态 JavaScript 分析不需要这两个引擎。
快速开始
设置智能体
安装 Node.js 和 npm 后,运行:
选择智能体,检查计划中的变更并批准。设置流程会添加 REA 的 MCP 服务和匹配的工作流指引,并备份已有配置。完成后重启智能体。
设置流程支持 Claude Code、Codex、Cursor、Gemini CLI、Grok Build 和其他智能体。提供方配置和手动注册 MCP 的方法见安装与设置。
询问智能体
把 Notes 替换为目标应用,并描述你想了解的功能。
使用终端
检查已解包的 JavaScript/Electron 应用目录或 ASAR 文件:
结果包含模块、导入、Electron 边界及相关证据。将路径替换为你的目标路径,例如 Windows 上的
"D:/apps/example"。如果需要经常使用,可以安装
rea命令:原生分析需要先配置分析提供方。原生命令、提供方选择、快照和脚本用法见 CLI 与 Evidence 指南。
更新 REA
REA 更新较快,新版本经常包含错误修复。请保持安装的版本为最新。
通过 npm 安装的 CLI 使用:
要更新智能体注册和 skill,请运行更新命令输出的设置命令。
如果使用
npx,通过以下命令更新智能体设置:检查设置变更并重启智能体。单次 CLI 操作可使用
npx rea-agents@latest,后接所需命令。REA 的工作原理
智能体通过 MCP 调用 REA,检查目标并追踪相关代码。REA 返回发现及对应证据。智能体据此提出后续问题、解释行为,或编写并测试实现。CLI 命令使用同样的工作流。
打开完整尺寸的图示。
可以分析什么
REA 需要 Node.js 22.x(>=22.19)、24.x(>=24.11)或 26+,以及 npm。额外工具和主机支持取决于分析目标:
静态 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 使用:
通过
npx设置智能体时使用:如果正在使用智能体,请完成设置更新并重启智能体。重试同一任务。如果问题仍然存在,请提交 issue,附上 REA 版本、目标类型、复现步骤和错误输出。
文档
可以先阅读网站上的实操指南。具体选项、前提条件和结果契约见:
请按照 SECURITY.md 报告漏洞。
Star 历史
🎉 GitHub Star 达到 90,000 个,感谢大家!
感谢每一位使用 REA、报告错误、提出功能需求、测试构建和贡献修复的朋友。
免责声明
REA 为合法的逆向工程研究、分析和重建提供工具。你有责任取得所需授权并遵守适用法律。项目不支持非法或未经授权的使用。
参与贡献
欢迎帮助改进 REA!你可以提交 issue 报告错误或建议功能,也可以提交 pull request 改进代码或文档。
开发设置和检查见 CONTRIBUTING.md,验证流程见测试指南,项目结构见架构图。
许可证
MIT