夜雨聆风学习资料网

ARTICLE · 1209183

想扒开任何App看实现?10.5万Star开源MCP,让Agent从界面行为一路逆到二进制

想扒开任何App看实现?10.5万Star开源MCP,让Agent从界面行为一路逆到二进制

点击下方【IT开源项目精选】

「关注」、选择「设为星标」

每天三分钟、打卡阅读

最快获取全网学习干货、行业资讯

前言

大家好,这里是 IT开源项目精选!

用某个 App 时见到一个好功能,想搞清楚它是怎么实现的,常规路径要么翻不到源码,要么对着反汇编窗口一屏一屏啃汇编——没几周下不来。逆向工程的工具链一直都在,缺的是一个能把 Hopper、Ghidra、JADX 这些工具串起来、替你跑腿的"分析员"。

本期拆解的这一个项目,把整套逆向工具封装成一个 MCP 服务,接入 Claude Code、Codex 这类编码智能体:你说一句"搞清楚这个 App 的搜索是怎么做的",它自己去反编译、追调用链、给证据,最后还能照着写一版实现。半年 10.5 万 Star,本期配图全部来自项目官方仓库与官网。

▲ 本期项目速览卡

简介

REA(Reverse Engineer Anything)仓库:github.com/morluto/rea。截至 2026 年 10 月 12 日,105800 Star / 23311 Fork,2026 年 4 月创建,半年破 10 万 Star。协议 MIT,TypeScript / Node.js 编写,npm 包名 rea-agents,官网 rea.tools。

它不是又一个反编译器,而是一个 MCP 服务器 + 一套工作流指令:把原生二进制反汇编(Hopper / Ghidra / IDA)、Electron 应用解析、网站行为分析、Android APK 反编译、抓包文件解读等 15 类分析能力注册给你的编码智能体。智能体按需调用,每一步结论都带证据与局限说明,分析全程在本地完成,目标文件不上传。

官方把它定位成"让智能体具备检查与反编译程序的能力":看中哪个功能,让智能体去调查、解释、举证,再为你的项目实现一个同类功能。静态 JS 与 .NET 分析不装任何反编译引擎就能跑;原生深度分析可以复用你已有的 Hopper / Ghidra / IDA,安装时经确认也能代装 Hopper。

核心能力

一、15 类分析目标,一个入口全覆盖

• 原生二进制出伪代码、汇编、符号与调用引用(复用 Hopper / Ghidra / IDA);

• JavaScript / Electron 应用解析出模块、导入、source map、路由与 IPC 边界;

• 还能分析网站行为、HAR / mitmproxy 抓包、.NET 程序集、Android APK 与真机、固件、WASM、EVM 字节码乃至 Linux 崩溃记录。

二、证据链优先,结论可验证

• 每个结论附带证据与局限,智能体据此追问、复核,而不是凭空编一段"看起来合理"的解释;

• CLI 与 MCP 用同一套工作流,终端里 npx 一条命令就能跑同样的分析并输出 JSON;

• 分析在本地执行,文件不外传;智能体把结果交给哪家模型服务商,走的是它自己的数据政策。

三、不止解释,还能重建

• 官方三个案例都是"拆完再写":DX-Ball 的声像定位函数重建后通过 3205 个原始 x86 用例,63 字节函数逐字节复现;

• Notion 案例从渲染进程的剪贴板 API 一路追到 preload 与主进程的 IPC 桥;

• TH04 案例处理的是 1996 年 PC-98 游戏的 16 位 DOS 指令,连三十年前的编译器输出都能对上。

四、装完即用的工程化细节

• setup 自动注册 MCP 并备份已有配置,支持 Claude Code、Codex、Cursor、Gemini CLI、Grok Build 等;

• 大二进制可调 REA_GHIDRA_STARTUP_TIMEOUT_MS / REA_HOPPER_STARTUP_TIMEOUT_MS 放宽启动时限;

• rea update 一条命令升级,版本迭代很快,官方 FAQ 第一条就是"遇到 bug 先更新"。

工作原理

REA 本身不做逆向,它做的是"编排":智能体通过 MCP 调用 REA 的工具,REA 再驱动底层引擎——原生分析交给 Hopper / Ghidra / IDA,Android 交给 JADX,固件交给 Binwalk / Unblob,抓包解读 HAR 与 mitmproxy 文件。工具返回伪代码、模块关系、网络观察这些中间结果,REA 附上证据与局限再交回智能体;智能体据此继续追问、换工具深挖,最后解释行为或写出实现。整个过程等价于一个懂工具链的分析员坐在你旁边,只是把"人翻汇编"换成了"模型读证据"。静态 JS 与 .NET 分析零依赖直接读文件;运行时类分析(进程行为、真机)则用你自己的用户权限执行,各指南里写明了影响范围。

▲ 图1 官方调查流程图:智能体提问,REA 调分析工具取证,智能体据此解释、实现并测试

功能截图

▲ 图2 REA 在 Hopper 中启动分析桥,检查一个原生二进制(官方仓库主图)

▲ 图3 官网 Guides 页:原生函数、Electron 导出、浏览器请求三类入门指南

▲ 图4 原生分析指南:以 DX-Ball 声像定位计算为例,从指令到验证完整走一遍

▲ 图5 Showcase 案例列表:Android、游戏、Electron 与 CTF 挑战,均带代码与验证结果

▲ 图6 DX-Ball 案例页:目标是从 1996 年的可执行文件重建出可维护的 C 版本

▲ 图7 官方三案例一览:DX-Ball 声像、Notion 剪贴板桥、TH04 弹幕环

技术栈与端口

项目形态: MCP 服务器 + Agent 工作流指令 + CLI(npm 包 rea-agents)

语言运行时: TypeScript / Node.js 22.x(≥22.19) 或 24.x(≥24.11) 或 26+

安装命令: npx rea-agents setup(自动注册 MCP + 备份配置)

CLI 分析: npx -y rea-agents@latest analyze-javascript-application /path --json

原生引擎: Hopper / Ghidra / IDA(复用已有安装,或经确认代装 Hopper)

专项依赖: JADX+JDK(APK)、adb(真机)、pwntools(ELF/崩溃,Linux x64)、WABT 1.0.42(WASM)、Binwalk/Unblob(固件)、Apktool(资源)

超时调参: REA_GHIDRA_STARTUP_TIMEOUT_MS / REA_HOPPER_STARTUP_TIMEOUT_MS

JEB 对接: REA_JEB_MCP_URL 指向已启动的 JEB 客户端

更新方式: rea update / npx rea-agents@latest setup

协议: MIT

快速开始

一、环境准备

装好 Node.js 22.x(不低于 22.19)、24.x(不低于 24.11)或 26 版本与 npm。想跑原生深度分析,再备一个 Hopper、Ghidra 或 IDA——Ghidra 免费开源,预算有限选它即可。

二、一条命令接入智能体

npx rea-agents setup

注:选择你的智能体(Claude Code / Codex / Cursor / Gemini CLI / Grok Build 等),核对变更后确认,完成后重启智能体会话

三、给智能体下第一个任务

Understand how search works in the Notes app,

show me the evidence, and build a similar

feature for my project.

注:把 Notes 换成你的目标应用与功能即可,官方建议明确要求"给出证据",结论质量会高不少。

四、不走智能体,终端直接分析

npx -y rea-agents@latest analyze-javascript-application \

/absolute/path/to/app --json

注:输出模块、导入、Electron 边界及对应证据;常用的话再执行 npm install --global rea-agents 装成 rea 命令

五、保持更新

rea update

注:npx 用户改跑 npx rea-agents@latest setup 刷新注册;项目迭代快,官方明确说很多 bug 更新即修

实操要点

任务要拆小,一次问一个功能。"分析这个 App"这种粒度模型容易发散,"搞清楚它的搜索过滤是怎么实现的"这种粒度产出最稳。

静态分析先跑,原生引擎后上。Electron、.NET、APK 这些静态目标不依赖任何反编译引擎,先拿结论,真要深入原生层再调 Hopper / Ghidra,省一遍环境折腾。

大二进制先放宽启动时限。Ghidra 加载大文件默认时限容易超,export REA_GHIDRA_STARTUP_TIMEOUT_MS 调大再跑,不然反复失败很难排查。

Hopper 首跑要在本会话点掉弹窗。macOS 首次启动会问演示模式还是激活许可,先手动开一次 Hopper 处理掉,否则无人值守的分析任务会卡住。

抓包分析配合 mitmproxy 用。HAR 文件直接喂给智能体就能还原请求、响应与暴露的载荷,做接口逆向时这是投入产出比最高的一条路。

几句实在话:这些情况别用它

① 它不保证"克隆即用"。产出是对行为的理解与参考实现,还原度取决于目标复杂度与混淆强度,拿去直接当生产代码前必须自己验证。

② 原生分析绕不开商业或重型引擎。Hopper、IDA 收费,Ghidra 免费但重;什么引擎都不想装,就只能停留在 JS / .NET 这类静态目标上。

③ 强混淆与加固样本仍是硬仗。壳加得多、VMP 级别混淆的目标,伪代码质量会明显下降,别拿最难的样本当第一印象。

④ 平台能力不均。ELF 布局、崩溃记录、固件提取这几类依赖 pwntools / Binwalk 且限定 Linux x64,macOS 与 Windows 用户要自备 Linux 环境。

⑤ 合规红线自己守。逆向仅限合法研究用途,分析他人软件前自行取得授权并遵守当地法律,项目官方免责声明把这一点写得很直白。

适合谁

适合四类人:想研究竞品功能实现、又不想手工啃反编译窗口的产品工程师;做 CTF 或安全研究的玩家,拿它当自动化取证的脚手架;维护祖传二进制、丢了源码需要恢复逻辑的团队;以及用 Electron / .NET 技术栈、想快速摸清一个陌生应用内部结构的开发者——MIT 协议、静态分析零依赖、一条 npx 接入现成智能体,试错成本很低。

不适合:期望"输入 APK、输出完整源码工程"的自动化幻想,以及没有授权却想分析闭源商业软件的场景——前者它做不到,后者你不能做。

更新进度

100 期优质开源项目更新进度:050/100。欢迎在留言区聊聊你最想拆开的那个 App 功能,或提名下一期想看的项目。

开源地址

GitHub:github.com/morluto/rea

官网:rea.tools

案例:rea.tools/showcase

npm:npmjs.com/package/rea-agents

社区:项目 README 内附 Discord 入口

获取更多精彩内容和优质开源项目

请关注微信公众号「IT开源项目精选」

每天早上 5 分钟,看懂一个值得收藏的开源项目

免责声明

1、本文所分享的软件、代码或资源,均来自开源社区,遵循其原始许可证(MIT)。仅供学习和研究使用,严禁用于任何违法行为。

2、使用者在下载、部署或使用本项目时,需自行判断其适用性与合法性,由此产生的一切风险与责任均由使用者自行承担。逆向分析他人软件须事先取得授权并遵守当地法律法规。

3、本文数据(Star、Fork)来自 GitHub 公开信息,采集时间为 2026 年 10 月 12 日,项目迭代迅速,实际数据可能已更新。

4、本文配图来自项目官方仓库与官网公开素材,版权归原作者所有;本文不对开源软件的安全性、可用性或完整性做任何保证。

5、本文与项目作者无商业合作,所有观点基于公开资料得出;若您为相关资源的版权方并对内容有异议,请联系我们,我们将在第一时间处理。

相关学习资料