REA 逆向分析教程:一条命令让 AI 编码助手跑通无源码二进制分析
【免费下载链接】reaReverse engineer anything with agents, from app behavior down to native binaries.项目地址: https://gitcode.com/GitHub_Trending/rea2/rea
手里是一个编译好的二进制或 APK,没有源码,想知道某功能到底怎么实现。REA(reverse-engineer-anything)给 AI 编码助手装上逆向调查技能与 172 个 MCP 工具,让助手在无源码条件下读二进制、追调用、给证据。
它到底是什么
REA 是给 AI 编码助手(Claude Code、Codex、Cursor 这类)接入逆向调查能力的一组技能 + 本地 MCP 服务:setup 往助手注册一个本地 MCP 服务(main 分支的工具目录为 172 个工具),再装一份配套的操作指令(skill)和 6 份按需加载的参考指南——相当于给助手配了反汇编工作台和一本操作手册。助手按指令调用工具检查目标、追踪相关代码,REA 返回的发现自带证据和局限说明:结论分观察、推断、未知三类,每条都能回溯到 Evidence ID,分析全程在本地跑。
完整的调查指令写在 SKILL.md,参考指南挂在 references/ 下(原生与工件、JavaScript 应用、Android、运行时观察、证据工作流、连接与恢复六份)。
动手前的两分钟检查
| 检查项 | 要求 |
|---|---|
| Node.js | 22.x(≥22.19)、24.x(≥24.11)或 26+;Node 23、25 及预发布版不受支持 |
| npm | 与该 Node 运行时配套的那一个 |
REA 复用你已有的 Node.js 和 npm,不会替你升级运行时,也不装无关软件(Homebrew、Java、Ghidra 都包含在内)。
🚀 安装:一条命令四步走完
主路径直接跑:
npx rea-agents setup四步,不用记任何参数:
- 选客户端:多选列表,已有的 REA 注册默认被选中。setup 能直接配置 24 种客户端:Claude Code、Claude Desktop、Codex、Cursor、Gemini CLI、Windsurf、Devin、OpenCode、Antigravity、GitHub Copilot CLI、Command Code、Qwen Code、Kimi Code、VS Code、Grok Build、OMP、Pi、Hermes、Qoder、Factory Droid、Trae、WorkBuddy、ZCode、DeepSeek Harness。
- 审计划:逐个列出检测到的配置路径、技能安装位置、外部软件与网络来源,你逐项批准后才写文件。
- (可选)连引擎:深入原生分析需要 Hopper、Ghidra 或 IDA。Hopper 是独立商业软件,只有在你明确批准后才安装;已有 Ghidra 则只登记验证过的路径。这步可跳过——静态 JavaScript 和 .NET 分析不需要任何引擎。
- 重启生效:完成后按提示重启被点名的助手,工具在新会话里生效。
整个过程会备份现有配置、原子写入、失败可回滚;拒绝或按 Ctrl-C 不会留下任何改动。
轻量路径适合"MCP 已经配好、只想刷一份最新技能指令"的场景:
npx skills add morluto/rea --skill reverse-engineer-anything它只安装技能说明文档和配套参考,不注册 MCP 服务、不装分析引擎。
完整命令选项、手动注册 MCP 的写法和各客户端配置路径,见 docs/installation.md。
🩺 装完怎么验证
按客户端查注册状态(例子里的codex是占位,换成你的实际客户端 ID,对照安装文档支持列表替换):
rea doctor --client codex --json只查逆向技能文件本身:
rea doctor --skill --json看返回里的三个字段:
healthy:该范围检查是否全部通过installed_version:装上的技能指令版本installed_tool_count:工具目录里的工具数
三项正常,就可以开干。
💬 跑通第一次分析
装好之后直接用自然语言提问:
解释"备忘录"应用的搜索功能是如何工作的,展示证据,然后为我的项目实现一个类似功能。把"备忘录"换成你的目标应用。助手按 SKILL.md 的路由规则自己挑工具,你不需要记任何命令:
- ASAR 或已解包的 JavaScript/Electron 树 →
analyze_javascript_application - 原生可执行文件、库 →
open_binary - Android APK 的类与方法 →
inspect_android_package - .NET 程序集 →
inspect_managed_artifact - 固件镜像 →
inspect_firmware_regions - 已打开的网页 →
list_browser_targets
手上没有 MCP、想先静态看一个 JS 应用,直接走 CLI 回退,不依赖注册和引擎:
npx -y rea-agents@latest analyze-javascript-application /绝对路径/应用目录 --json返回的是模块、导入、Electron 边界和完整的 Evidence 记录。
中文 README 里挂了三个公开案例:把某游戏的声像位置计算重建为 C、沿引用把 Electron 剪贴板桥从渲染进程追到主进程、恢复 DOS 游戏的 16 位弹道角度计算——每一步都拿伪代码、交叉引用和 Evidence 做依据,而不是"看起来像"。
🧭 能力边界
它管的是"打包后的成品":
- 原生二进制:伪代码、汇编、字符串、符号、调用与交叉引用
- JavaScript / Electron / ASAR 包
- Android APK
- .NET 程序集
- 固件镜像
- 已打开的网页与保存的网络捕获
它不管:
- 完整源码仓库——SKILL.md 明确说直接用普通仓库工具,不要跑 REA 的就绪检查或引擎命令
- 任何需要凭感觉下结论的场景——REA 的产出必须区分观察、推断与未知,静态分析不宣称观察到过执行
🔄 更新与卸载
REA 迭代快,保持更新:
rea update不再需要时卸载:
rea uninstall卸载只移除 REA 自己写入的注册项和技能文件,Hopper、Node.js、Evidence 记录、捕获、无关技能和其他 MCP 服务都不碰。
🚧 卡点速查
- 助手会话里看不到 REA 工具→ 注册对齐但会话是旧的,重启助手重连即可;doctor 查的是文件和前置条件,不证明当前会话已连上。
- 没有 MCP 又急着看 JS→ 直接跑 CLI 的
analyze-javascript-application,不依赖注册和引擎。 - 要深入反编译二进制但没有引擎→ 先在本地备好 Hopper、Ghidra 或 IDA;setup 只在批准后安装 Hopper,Ghidra 和 IDA 复用你已有的安装。
- 碰到疑似 bug→ 先
rea update,近期版本经常已经修好;还不行再按安装文档的故障排查章节走。
调查结束时用close_binary关掉打开的原生会话(交给助手做就行)。等你哪天不想用了,rea uninstall只带走 REA 自己的注册项和技能文件——Hopper、Node 环境和所有 Evidence 记录原样留在本地,下次想再接上,一条npx rea-agents setup的事。
【免费下载链接】reaReverse engineer anything with agents, from app behavior down to native binaries.项目地址: https://gitcode.com/GitHub_Trending/rea2/rea
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考