REA:本地 AI 逆向工程指南,用 1 条命令看清竞品应用的内部实现

REA:本地 AI 逆向工程指南,用 1 条命令看清竞品应用的内部实现

【免费下载链接】reaReverse engineer anything with agents, from app behavior down to native binaries.项目地址: https://gitcode.com/GitHub_Trending/rea2/rea

你在别人的 App 里看到一个想抄的功能,但它没有源码,你连主进程和渲染进程谁在干活都说不清。这时你可以让 AI agent 上手:REA(Reverse Engineer Anything)就是一个本地 MCP 服务器加 CLI 的组合,专门让 AI 在没有源码的前提下逆向应用行为,从 JavaScript、Electron 一路查到原生二进制和固件,而且全程在本地机器完成。

它解决什么问题

传统逆向要么自己开 Hopper、Ghidra 一个个函数看,要么干脆放弃。REA 把这件事外包给你的 AI agent:agent 负责提问和判断,REA 负责调用分析工具、返回结果,并且给每条结论附上证据。

几个值得记住的设计取向:

  • 证据先行:结论必须附带工件身份、来源位置和推理链,而不是甩给你一段“看起来对”的文字。
  • 未知就是未知:官方把"查不到"和"没有"严格区分开。文档里的原话是 "Missing coverage is unknown, not absence"(来源:docs/tool-design.md)——没扫到不等同于不存在。
  • 引擎是你自己的:原生分析可以复用你已有的 Hopper、Ghidra、IDA 或 Kuna;纯静态的 JavaScript/.NET 分析则一个引擎都不用装。

五分钟跑起来

前置条件只有一条:Node.js 22.x(>=22.23.4)、24.x(>=24.22.1)或 26.12.1 以上,外加 npm(README.md)。

把 REA 注册到你的 agent(支持 Claude Code、Codex、Cursor、Gemini CLI 等):

npx rea-agents setup

按提示选择 agent、确认配置变更,然后重启 agent,就可以直接对话提问了。

如果你更习惯命令行,不解装任何引擎也能干活,比如分析一个解包后的 Electron 应用:

npx -y rea-agents@latest analyze-javascript-application /absolute/path/to/app --json

跑通后你会在屏幕上看到一份 JSON:模块列表、导入关系、Electron 的 preload/主进程边界声明,每条都带着 evidence 字段。核对方式很简单——模块路径应该能在目标目录里一一对上,evidence 里指向的文件确实存在。

它内部是怎么工作的

可以把它想象成一个"侦探 + 档案员"的组合。agent 是侦探,负责决定"下一个问题问什么";REA 是档案员,负责调取工具、记录每一页材料,并把材料随结论一起交还。

  • 调查流程:agent 通过 MCP 协议调用 REA 的工具去检查目标、追踪代码,REA 返回"发现 + 证据",agent 再基于这些结果追问、解释行为,甚至直接写一版实现出来。CLI 走的是同一套工作流,只是入口不同。
  • 证据分级:观察到的、推导出来的、推断出来的事实分开存放,不允许混写。所以你看结果时能分辨"文件里确实有这个字符串"和"我猜它大概率是干这个的"。
  • 引擎按需拉起:原生分析需要引擎时,REA 会用你已安装的那一份。以 Ghidra 为例,安装文档说明它在 Linux/macOS 上通过"仅限当前用户的本地 socket 与描述符"通信,不开公网端口(docs/installation.md)。

能做什么、官方明说不做什么

能不做
原生二进制:伪代码、汇编、字符串、符号、调用与引用引擎故障后自动换引擎——"A selected provider is never replaced automatically after a runtime failure"(docs/mcp-contracts.md)
JavaScript/Electron:模块、导入、Source Map、路由、IPC 与原生插件关系把伪代码当原始源码——官方原文 "pseudocode is never treated as original source"(docs/installation.md)
.NET 元数据与 CIL、APK 清单与反编译方法、固件区域与提取静态分析时运行目标应用——静态检查只读文件,不碰进程
Rust/Go 二进制静态检查:内置完成,不需要对应工具链替你做违法分析——README 限定用于合法研究、教育和你有授权检查的软件

支持的目标类型远不止这些,完整清单见 README 的 "What you can analyze" 表格,涵盖 WASM、SQLite、固件、网络抓包等 30 多种。

数据去哪儿了

待分析的文件从头到尾留在你的机器上,官方 FAQ 的回答很直接:REA 在本地分析目标,没有上传环节。两点边界要注意:

  • agent 会收到工具返回的结果,而这些结果最终进入你使用的模型——"its model provider has its own data policy",模型服务商的数据策略需要你自己评估。
  • 分析会话用的临时工程放在 REA 自己管理的临时目录里,会话结束后清理(docs/installation.md)。

新手容易踩的坑

  1. JS 分析输出大到打不开:README 提示真实应用的完整 Evidence 可达数百 MB(文档里给了个例子:334 MB 的 Obsidian 应用)。正确姿势是先把结果重定向到文件,再用rea inspect-analysis-view投影出 summary 或模块页,而不是直接对着终端滚屏。
  2. Linux 上莫名报进程检查失败:Linux 下 REA 需要 PATH 里有一个 procps 兼容的ps命令做进程归属检查,先装发行版的 procps 包,恢复步骤在 docs/installation.md 的 "Linux owned-process prerequisite" 一节。
  3. 引擎起不来就怪 REA:先跑rea doctor(可加--json或--provider指定引擎)拿结构化诊断,它严格只读、不改任何配置;检查失败时退出码为 1(docs/cli.md)。另外注意 npm 发布版可能落后于 main 分支,文档建议对照 docs/roadmap.md 确认功能是否已进发布版。

去哪看更多

  • docs/installation.md:安装、agent 注册、引擎配置与排障
  • docs/cli.md:全部 CLI 命令、Evidence 导入导出与退出码
  • docs/mcp-contracts.md:MCP 工具的输出契约与工具目录
  • src/:TypeScript 源码,按领域分了 application、domain、ghidra、hopper 等目录,想深挖可以看这里

【免费下载链接】reaReverse engineer anything with agents, from app behavior down to native binaries.项目地址: https://gitcode.com/GitHub_Trending/rea2/rea

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考