夜雨聆风学习资料网

ARTICLE · 1176804

REA:让 AI 智能体帮你逆向没有源码的软件

REA:让 AI 智能体帮你逆向没有源码的软件

这个算不算是一种知识平权,总有种打劫地主的感觉?哈哈哈!
你看到一个 App 里的交互很顺手,手里却没有源码,传统路径是打开 Hopper 或 Ghidra,对着汇编一行行啃。最近 GitHub 上有个叫 REA(Reverse Engineer Anything)的开源项目把这条路接进了 AI 编程智能体:仓库 github.com/morluto/rea 星标已突破 5.6 万,npm 包 rea-agents 最新版 6.3.0,MIT 协议,官网 rea.tools。
一句话概括:REA 是一个 MCP 服务,让 Claude Code、Codex、Cursor、Gemini CLI 等智能体在对话里调用同一套逆向分析能力,返回带证据的结论,再由模型帮你解释、追问,甚至在你自己的仓库里写一版类似实现。目标程序不上传 REA 服务器,分析在本机跑;但工具输出会进入你选用的模型服务商,隐私政策要各自看清。
(上图运行截图里 Hopper 正在分析 macOS 的
/usr/bin/true,日志末尾出现 rea-*.py 引导脚本,说明 REA 会驱动反汇编器做自动化引导,而不是替代 Hopper 本身)
morluto/rea 项目里到底有什么
仓库主体是 Node.js 写的 rea-agents CLI 与 MCP 实现,文档极厚:安装、各平台 provider、MCP 工具目录、CLI 证据链格式都写在 docs/ 里。README 要求 Node.js 22.19+、24.11+ 或 26+,和常见前端环境接近。
安装与接入
npx rea-agents setup
交互式选择要注册的智能体,改 mcp.json 前会备份并让你确认,同时装上配套的 workflow / skill 说明。不想用智能体时,也可以直接在终端跑,例如拆 Electron 目录:
npx -y rea-agents@latest analyze-javascript-application /path/to/app --json
全局安装后可用 rea update 跟进版本。评论里有人提到,即便某智能体不在官方支持列表里,也可以手动让它安装 REA 并写入 MCP 配置,本质仍是本地起一个 REA MCP server,智能体通过 MCP 调工具。
能分析什么

目标类型

典型产出

额外依赖

原生二进制

伪代码、汇编、符号与调用关系

Hopper / Ghidra / IDA 之一

JavaScript / Electron

模块、IPC、路由、ASAR 结构

多数情况只需 Node

网站

DOM、脚本、网络观察、截图

Chrome 系浏览器

Android APK

Manifest、反编译方法、引用

Linux/macOS/Win x64 上 JADX + JDK

.NET 程序集

元数据、CIL 指令

静态分析,无额外引擎

固件、HAR 抓包、EVM 字节码等

见各专题文档

按指南装 Binwalk、mitmproxy 等

Linux/macOS 进程行为

终端输出、文件系统观察

本机 PTY 录制

静态 JS 和 .NET 只读你提供的文件;运行时捕获会在你授权下启动或操作目标,各指南里写了副作用,用之前要读说明。
三个案例为什么被反复提起
官网 showcase 用三个难度梯度证明「智能体先追、人再验」:
DX-Ball 从播放音效的调用追到声场左右声道计算,把残缺伪代码补成 C,3205 组测试与原版 x86 一致,编译出的 63 字节函数与原版相同。
Notion 桌面版 从渲染进程的剪贴板 API 跟到 preload、IPC,再到主进程里的富文本格式处理,适合理解 Electron 边界。
PC-98 游戏《东方幻想乡》TH04 从 16 位指令里还原弹幕环的角度算法,面向老游戏保存与复刻社区。
谁会用、边界在哪
安全研究、依赖排障、自己写的二进制查崩溃,在授权范围内,智能体接逆向工具能少很多重复点菜单的时间。有人提到会先拿类似能力扫自己仓库里的小工具,再谈别的目标,这个顺序更稳妥。
竞品 App、闭源商业软件,技术上也许能拆,法律和用户协议往往不允许。README 和官网免责声明写得很清楚:REA 只服务合法逆向研究,授权与合规由使用者自负;项目也声明从未发行任何加密货币,蹭 REA 名字的代币与官方无关。
所以,REA 的价值是把「读汇编」从纯人工劳动变成「模型提假设 + 工具出证据 + 人做裁决」的流水线,但带调试符号和纯 stripped 二进制效果差很多、MCP 必须配好 server 这些问题,仍要靠实测,不能指望一句 prompt 就等价于资深逆向工程师。
纯二进制和带符号版本差多少、任意 coding agent 是否都能接,评论区也在问。官方答案是:支持本地 MCP 的客户端都能接;深度原生分析必须选 Hopper/Ghidra/IDA 之一,静态 JS 则不必。你若在 Cursor 里已经能用 MCP,跑一遍 npx rea-agents setup 选 Cursor,重启后再问一个你有权分析的小目标,是最快的验收方式。
另外,虽然 REA 的智能体支持列表里没有 DeepSeek Harness,但是可以直接告诉 DeepSeek Harness 安装 REA 并配置 REA MCP,逆向分析个安卓APK也没问题。
你会把 REA 用在自有程序排障,还是只当「看别人案例」的开眼界工具?若已经试过,带符号和 stripped 二进制体感差多少,欢迎留言交换经验。
点击下方卡片,关注”智见燎原“:

相关学习资料