reverse-engineer-anything:3 条命令把 REA 逆向工作流装进 AI 编码助手的完整教程
【免费下载链接】reaReverse engineer anything with agents, from app behavior down to native binaries.项目地址: https://gitcode.com/GitHub_Trending/rea2/rea
手里只有一个没有源码的发布产物——某个 App 的 .asar 包、一个原生可执行文件、或者一份 Android APK——而你想弄清它某个功能到底是怎么实现的。开源项目 REA 的reverse-engineer-anything技能,正是给 Claude Code、Codex、Cursor 这类 AI 编码助手装上 MCP 逆向调查工作流:从反编译伪代码、追踪字符串与交叉引用,到对比版本行为差异,由助手自己选工具、自己往下追,最后给出带证据的结论。下面按"动手前检查 → 选安装路径 → 首跑验证 → 日常维护与排障"的顺序,把全链路走一遍。
REA 适合什么场景,什么时候不该用它
装好这个技能后,助手相当于一本随身携带的逆向调查手册,内置路由规则由它自己执行:
| 你的目标类型 | 助手走的路径 | 产出 |
|---|---|---|
| ASAR 包、Electron/JavaScript 应用 | analyze_javascript_application | 模块图 + 行为证据 |
| 原生二进制 | open_binary打开后接 Hopper 或 Ghidra 引擎 | 反编译伪代码、调用链追踪 |
| Android APK | inspect_android_package再下钻 | 具体的 smali 与资源 |
这些工具名你不需要逐个背,SKILL.md 里的方法论和路由规则会让助手按目标类型选路,并沿调用者、交叉引用一路追到"这个功能怎么工作",最后把结论转成可落地的方案。
但有一条边界要先讲死:如果你要分析的是完整源码仓库,用普通仓库工具就够了,不要启动逆向流程。REA 解决的是"只有发布产物、一行源码都没有"的场景——原生二进制、打包应用、.NET 程序集、固件镜像。拿现成代码库找它读,属于工具用错场合。
动手前先确认 Node.js 版本
一切安装动作之前,只有一项前置检查:
node -v确认本地 Node.js 落在支持区间内:22.x 需 ≥22.19、24.x 需 ≥24.11、或 26+;23、25 版本和预发布版全部不在支持范围。注意 REA 只用你已有的运行时,全程不会替你升级 Node.js、npm 或 Homebrew,版本不满足时换运行时而不是指望安装过程兜底。
按你的现状挑一条命令
你的处境不同,入口命令就不同,下面是三条路径,每条只出现一次:
- 状态:第一次接触 REA,MCP 完全没配—— 跑完整安装:
npx rea-agents setup技能文件 + MCP 注册一次配齐,引导式流程,可审可取消。 - 状态:MCP 已配好,只想刷新技能说明书—— 只写技能指令:
npx skills add morluto/rea --skill reverse-engineer-anything不碰 MCP 注册,不装引擎,也不给正在运行的会话添加工具。 - 状态:装完了,想确认环境没断链—— 只读体检:
rea doctor --client codex --json把codex换成你的 client ID,输出结构化 JSON,逐项列出依赖与注册状态。
下面分别说清每条路径的行为细节。
首次完整安装:setup 实际会做什么
上面第 1 条命令是引导式的,整个流程分四步,每一步你都有否决权:
- 选客户端:列表里勾选要接入的助手,如 Claude Code(
claude_code)、Codex、Cursor、Gemini CLI、Windsurf、OpenCode、VS Code 等,完整 client ID 对照表见安装文档。 - 审变更计划:先逐项列出要改的配置文件、备份位置和技能的落盘路径,你确认后才会真正写文件;写入走备份 + 原子方式,失败自动回滚,中途按 Ctrl-C 也不会留下半写状态。
- 接分析引擎(可选):要分析原生二进制需要 Hopper 或 Ghidra。setup 可以代装 Hopper,但必须等你明确点头,绝不自己先装为敬。
- 重启客户端:按完成提示重启对应助手,注册即刻生效。
顺利跑完,你会看到一份最终检查汇总,列出哪些客户端、哪些分析工具、哪些工作流文件通过了验证。
只刷新技能说明书时发生什么
如果走的是第 2 条路径,它只写入技能说明书和若干份按需加载的参考指南(references目录覆盖原生二进制、JavaScript 应用、证据工作流、运行时观察等主题),不注册 MCP、不装引擎、不给运行中的会话添加工具。已注册好的工具可以立刻用;如果发现某个工具缺席,回到体检命令查对应客户端的注册情况。
环境体检命令的正确姿势
rea doctor严格只读,不改任何配置,两种视角按需选:
- 查某个客户端的完整状态(依赖 + 注册),用上面第 3 条命令,输出是逐项的结构化 JSON;
- 只关心技能文件本身是否齐全,换这个视角:
rea doctor --skill --json
装完先做两步验证,再抛第一个问题
doctor 通过、客户端重启之后,先别急着问大功能。第一步是确认工具真的在会话里:直接对助手说"你有哪些 REA 工具",看到open_binary、analyze_javascript_application这类工具名才算注册生效。之所以要这一步,是因为 doctor 检查的是文件和前置条件,证明不了当前会话已经连上 MCP,人工确认是独立的一环。
确认工具在场后,就可以抛出第一个真实问题,例如:
解释目标 App 的搜索功能是怎么实现的,展示证据,然后在我的项目里实现类似功能。
助手会按路由规则自己选工具往下追,你不用记任何命令。
MCP 没连上时的 CLI 回退通道
万一 MCP 没连上、或者客户端根本不支持,还有一条完全不依赖任何逆向引擎的静态 JavaScript 分析回退——直接走命令行,把完整 Evidence 记录打到终端:
npx -y rea-agents@latest analyze-javascript-application /绝对路径/应用目录 --json跑完直接拿到 Evidence 记录、模块图和局限说明,可照常用于分析。但要记住:它只是回退通道,跑通不代表 MCP 已经配好。
日常维护:更新与卸载各一条命令
rea update只更新当前 CLI 所属的那个安装(npm 或 Bun 全局),建议隔三差五跑一次。
rea uninstall只移除 REA 自己写入的注册项和技能文件,不碰你本地的 Hopper、Node.js、npm;若要把 REA 的缓存和状态路径一起清掉,加上--purge-data参数。
真卡住时按这个顺序排障
出问题时先定位再动手,顺序不要乱:
- 再跑一次全量体检
rea doctor --json(或用第 3 条的单客户端命令),从结构化报告里定位断点——缺 provider、注册过期,还是会话没重连; - 只查某个引擎时,缩到单引擎粒度:
rea doctor --provider ghidra --json把ghidra换成hopper或ida; - 需要修配置时,先跑只读计划:
rea setup --client codex --dry-run --json看清它提议改哪些路径,再决定批不批; - 更细的手动注册与故障排查看安装文档,MCP 契约与工具行为见MCP contracts,中文语境可对照README 中文版。
走通这一整套之后,你的 AI 编码助手就多了一项硬能力:沿着证据链读懂二进制、追调用、重建行为——从搞懂一个功能到把它搬进自己的项目,全程在本地完成。
【免费下载链接】reaReverse engineer anything with agents, from app behavior down to native binaries.项目地址: https://gitcode.com/GitHub_Trending/rea2/rea
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考