开源项目第235期:REA — 让 AI Agent 逆向任何东西,从网站/Electron 应用一路分析到二进制层

引言

"See a feature you like. Understand how it works, down to the binary level."

这是「每日一个开源项目」系列的第 235 篇 。今天的项目是 REA(Reverse Engineer Anything) ------ 一个把 AI Agent 和逆向工程工具连接起来的 MCP 服务器,作者 morluto,187,000+ Stars,MIT 许可证,上线仅半年即进入 Trendshift 趋势榜。

逆向工程一直是一门门槛很高的手艺:要懂汇编、要会用 Hopper/Ghidra/IDA 这类专业工具、要能从反编译出的伪代码里拼出业务逻辑。REA 的做法是把这套能力封装成 MCP 工具,交给 AI Agent 去调用------你只需要用自然语言告诉 Agent "我想知道这个 App 的某个功能是怎么实现的",Agent 就会自己调用 REA 提供的各种分析工具,逐步深入到字节码、汇编、符号表层面,拿到带证据链的分析结果,再据此帮你写出一个类似的实现。

你会学到什么

  • REA 的核心定位:MCP 工具 + Agent,而不是一个独立的逆向平台
  • 它能分析的目标清单有多广:从网站、Electron 应用,到 Native 二进制、EVM 字节码、Android APK、固件
  • "证据 + 局限性"的结果设计,为什么对 AI 辅助分析特别重要
  • 快速上手:npx rea-agents setup 到让 Agent 开始分析
  • 原生二进制分析依赖 Hopper/Ghidra/IDA,但 JS/Electron 分析不需要

前提知识

  • 了解 MCP(Model Context Protocol)的基本概念
  • 使用过 Claude Code、Cursor、Codex 等支持 MCP 的 AI Agent
  • 对逆向工程术语(反汇编、伪代码、符号表)有基础认识会更容易理解,但不是必需

项目背景

概述

REA 的核心主张很直接:看到一个应用里喜欢的功能,让 Agent 去调查它。 不需要源码,Agent 就能检查这个应用,解释功能的工作原理,给出证据,然后在你自己的项目里实现一个类似版本。REA 本身不是一个"全能逆向平台",而是把现有的逆向工具(Hopper、Ghidra、IDA 等)包装成标准化的 MCP 接口,让 Agent 能够驱动它们完成分析任务------分析过程完全在本地运行。

作者 / 团队

  • 作者: morluto
  • 主要语言: TypeScript
  • 许可证: MIT License
  • 创建时间: 2026-04-14(上线仅约半年)
  • 当前状态: 活跃开发中,社区贡献者众多,Discord 社区活跃

项目数据

  • ⭐ GitHub Stars: 187,000+
  • 🍴 Forks: 45,000+
  • 📄 许可证: MIT
  • 📅 创建时间: 2026-04-14
  • 🔥 Trendshift 趋势仓库(trendshift.io/repositories/82054)
  • 👥 核心贡献者:作者 morluto(1,389 次提交)领衔,N0zoM1z0(504 次)、kaoru0822-kitauji(407 次)等多名活跃贡献者
  • 🏷️ Topics: agent-skills, ai-agents, binary-analysis, claude-code, cli, codex, ctf, decompiler, disassembler, ghidra, hopper, llm, mcp, model-context-protocol, reverse-engineering, static-analysis

说明:项目半年内积累近 19 万 Star 确实惊人,但 Trendshift 官方趋势徽章和稳定的多贡献者提交记录(而非单一账号刷量)都印证了这是一个真实的、处于"AI Agent + 逆向工程"风口上的热门项目,而不是刷星仓库。


快速上手

配置 Agent

安装好 Node.js 和 npm 后:

bash 复制代码
npx rea-agents setup

命令会让你选择要接入的 Agent,展示即将做出的改动,经你确认后才会写入配置(并自动备份原有配置)。配置完成后记得重启 Agent。目前官方支持 Claude Code、Codex、Cursor、Gemini CLI、Grok Build 等多个 Agent。

向 Agent 提问

text 复制代码
Understand how search works in the Notes app, show me the evidence, and build a
similar feature for my project.

把 Notes 换成你想分析的目标应用,把"search"换成你想理解的功能即可,剩下的交给 Agent 和 REA 配合完成。

命令行直接用

分析一个解压后的 JavaScript/Electron 应用目录或 ASAR 包:

bash 复制代码
npx -y rea-agents@latest analyze-javascript-application /absolute/path/to/app --json

结果包含模块、依赖导入、Electron 进程边界及对应证据。如果要长期使用,可以全局安装:

bash 复制代码
npm install --global rea-agents
rea --help

原生二进制分析需要先配置一个分析引擎(Hopper/Ghidra/IDA 任选其一)。


核心剖析:工作流程与"证据+局限性"的结果设计

Agent 通过 MCP 调用 REA,REA 返回带证据的发现

REA 的工作流程很清晰:Agent 通过 MCP 调用 REA 检查目标并追踪相关代码,REA 返回发现(findings)及其证据,Agent 据此继续追问、解释原理,或者直接写代码并测试实现。命令行用的是同一套工作流,所以你也可以不经过 Agent,直接在终端里跑分析命令、生成快照、做脚本化处理。

这个设计的关键在于:REA 本身不负责"下结论",它只负责提供有证据支撑的分析事实,真正的推理、解释、代码生成都交给调用它的 Agent 完成。这种分工让 REA 保持工具的单一职责,同时让分析结果天然带有"可审查性"------Agent 给出的每一个结论都能追溯到具体的反汇编行、字符串引用或模块依赖关系。

分析目标清单:覆盖面是这个项目最硬核的部分

REA 支持的分析目标种类相当惊人,README 里列出了一张详尽的表格,这里摘录一些有代表性的:

分析目标 返回内容 依赖
Native 二进制 伪代码、汇编、字符串、符号、调用关系 Hopper / Ghidra / IDA
Go 二进制 内嵌的编译器版本、模块、构建设置 内置静态解析,无需安装 Go
EVM 字节码 调度选择器、字节偏移、推断参数和可变性 本地离线分析
JavaScript / Electron 模块、导入、Source Map、路由、IPC、Native 插件关系 Node.js + npm
网站 页面结构、脚本、网络请求观察、截图 Chrome 系浏览器
.NET 程序集 元数据、CIL 指令、声明的 Native 依赖、构建对比 纯静态分析,无额外依赖
Android APK Manifest 声明、类、反编译方法、引用关系 Headless JADX + 完整 JDK
固件 分区、提取结果、Native 分析交接 Linux 下的 Binwalk / Unblob
录制的网络抓包 请求、响应、暴露的 Payload、来源代码位置 HAR / Fiddler SAZ

静态 JavaScript 和 .NET 检查只读取提供的文件,不会运行应用;而涉及运行时行为的分析(比如网站交互、进程行为捕获)会以你当前用户权限真实运行或与目标交互------每份对应的指南都会说明具体影响范围。这种"静态优先、运行时按需"的分层设计,让大多数轻量分析场景(比如看一眼某个 Electron 应用的 IPC 结构)完全不需要触碰运行时风险。

原生分析引擎可插拔,JS/.NET 分析完全不需要引擎

REA 没有自己重新发明一套反编译引擎,而是复用你已经安装好的 Hopper、Ghidra 或 IDA------设置过程中可以在获得你批准的情况下帮你安装 Hopper,Ghidra 和 IDA 则直接使用现有安装。这个选择很实际:反编译引擎这件事技术门槛极高,REA 没有必要重复造轮子,它要解决的是"把这些引擎的能力暴露给 Agent"这个集成问题。而对于不涉及二进制反编译的场景------纯静态的 JavaScript、.NET、Flutter 分析------REA 内置了完整的解析能力,不依赖任何第三方引擎,这意味着哪怕你完全没有逆向工具链,也能先用这部分能力起步。


项目地址与资源

  • 🌟 GitHub : morluto/rea
  • 🌐 官网 : rea.tools
  • 📖 使用指南 : rea.tools/guides
  • 🎬 案例研究 : rea.tools/showcase(包括还原 DX-Ball 音效声像算法、追踪 Notion 的 Electron 剪贴板桥接、复原 TH04 DOS 游戏子弹环算法)
  • 📦 npm : rea-agents
  • 💬 Discord : discord.gg/GkcryMnJDM
  • ⚠️ 免责声明 : 详见项目的 DISCLAIMER.md,明确限定用途为合法研究、教育、互操作性和软件保护,以及分析你拥有或已获授权的软件

总结

REA 代表了一种关于"AI + 逆向工程"的清晰判断:逆向分析所需的专业工具链早已存在,真正缺的是一层能让 AI Agent 自主调用这些工具、并把结果组织成可信证据的接口。

三点值得注意:

把"下结论"的职责留给 Agent,自己只负责"提供有证据的事实",是克制且正确的架构分工。 很多 AI 分析工具试图让模型直接产出"这段代码在做什么"的结论,容易出现幻觉且难以验证。REA 坚持返回原始发现和证据链,让 Agent 在此基础上推理,这个设计选择本身就是对"AI 辅助逆向"这件事该怎么做的一次很好的回答。

分析目标覆盖面从网站、Electron 到 EVM 字节码、固件、Android 设备,广度远超一般逆向工具。 这说明项目在刻意追求"一个 MCP 覆盖尽可能多的逆向场景",而不是只做某一类专精分析------这也解释了为什么它能同时吸引安全研究者、CTF 玩家和想理解竞品功能的产品开发者。

半年内获得近 19 万 Star 和 4.5 万 Fork,背后是真实的多贡献者生态,而不是刷量。 这提示了一个趋势:当"用 AI Agent 分析闭源软件行为"从极客圈的小众玩法变成一个有明确工具链支撑的工程实践时,它能迅速吸引大量开发者------这个方向值得持续关注。

如果你经常好奇某个应用的某个功能到底是怎么实现的,又不想从头学一遍反汇编,REA 提供的"Agent 驱动分析"路径值得你亲自试一试。


探索 PrimeSkills ------ 精选 AI agent 和技能工具,每一个都经过真实工作流验证。没有炒作,只有真正好用的工具。

访问我的个人主页,获取更多见解和有趣的产品。

相关推荐
冬奇Lab1 小时前
LLM 驱动的自动化测试系列(11):API 测试为什么反而是 LLM 最保守的战场
人工智能·测试
Csvn1 小时前
提示词即代码:有版本、能评审、可回滚(R01)
人工智能·aigc·agent
阿明副业观察1 小时前
AI视频生成技术全解:生成方法、操作流程与选型指南
大数据·人工智能·ai作画·aigc·ai写作
鬼手点金2 小时前
opencode-rules 插件
java·开发语言·前端·人工智能·chrome·git·github
数字融合2 小时前
透明化视频孪生虚实映射一体化融合技术
人工智能·python·数码相机
杨杨杨大侠2 小时前
从一次请求讲透 A2A:Agent 怎么选、怎么协作、记忆放在哪里
人工智能·agent
后端小肥肠2 小时前
做公众号漫画还在纯手搓?这套工具从选题到复刻任意热门漫画一键搞定
人工智能·aigc·agent
xier_ran2 小时前
【infra之路】AI 编译器学习笔记(二):重拾 C++——移动语义与 LLVM 风格的类型转换
人工智能·笔记·学习
paopaokaka_luck2 小时前
滑雪场管理系统(AI智能助手流式对话,ECharts 运营数据分析、教练、雪具与场地一体化预约,钱包支付退款、订单核销与服务评价)
java·人工智能·spring boot·网络协议·数据分析·echarts