夜雨聆风学习资料网

ARTICLE · 1177951

想复刻竞品作业却没源码?用 AI + 反编译工具链,连 30 年前的老游戏算法都能秒还原

想复刻竞品作业却没源码?用 AI + 反编译工具链,连 30 年前的老游戏算法都能秒还原

不知道你有没有遇到过这种抓心挠肝的时刻:

市面上某款爆款 App 出了个极其惊艳的交互,或者某个竞品做了一套丝滑到底的跨端同步方案,你想抄作业,但翻遍全网连个 API 文档都没有。更头疼的是,对方代码不仅闭源,还打包成了 Electron、死死混淆了前端代码,核心逻辑甚至直接塞进了 C/C++ 编译出的原生动态库。

换作以前,逆向这条路门槛高到劝退。你得装好 IDA Pro、Ghidra 或者 Hopper,对着反编译出来的几万行汇编天书逐行抠寄存器,在控制台断点打到手抽筋。

而最近 GitHub 上一个直接杀进趋势榜的开源项目,把逆向的门槛生生砸出了一个大窟窿:REA (Reverse Engineer Anything)。

上线不久便收获超过 18 万颗 Star、4 万多次 Fork。它的项目定位直白且野心勃勃:借助 AI Agent 逆向一切,从上层应用行为一路穿透到底层原生二进制。


它不是在“脑补”,而是在“断案”

很多人第一眼看到“AI + 逆向”,潜意识里会觉得这大概又是拿反编译伪代码喂给大语言模型,让 AI 凭空脑补业务逻辑。

如果真是这样,写出来的东西根本没法用,因为大模型最大的毛病是幻觉,而底层逆向容不得半点偏差。

REA 的核心思路完全不同。它本质上是一个基于 MCP(Model Context Protocol) 协议构建的逆向中枢。简单来说,它不是让 Agent 去猜,而是给 Claude Code、Cursor、Gemini CLI 这类编程 Agent 配齐了一整套顶级的“反编译与取证机械臂”。

整个工作流非常克制且严密:

  1. 1. 下达目标:你在对话框里告诉 Agent,“帮我搞清楚这个客户端的本地缓存加密是怎么实现的,给出具体证据,并用 Go 复写一套。”
  2. 2. 工具调度:Agent 接收指令后,通过 MCP 驱动 REA 调用本地工具链——它会去翻 AST、提取符号表、调用你本地的 Ghidra 或 Hopper 跑反编译,甚至启动 PTY 监控进程运行时的文件改动与终端 I/O。
  3. 3. 证据链回传:REA 返回给 Agent 的不是主观推测,而是确凿的证据链:精准的函数调用关系、关键汇编片段、内存偏移量、解构出来的 IPC 路由以及未决定的未知项。
  4. 4. 验证与还原:Agent 拿着这一堆带行号、带证据的事实推演业务逻辑,编写测试用例并完成代码复刻。

所有代码跑在本地,二进制文件不离机,数据不上传,只把结构化的提取结果送入上下文。这就是为什么它自称是“Evidence-backed”(证据支撑)的逆向工程。


这个工具箱到底有多凶残?

点开 REA 的支持矩阵,它覆盖的技术栈几乎把应用层到系统底层扫了一遍:

  • • 桌面端与 JS 应用(Electron / Web):对于打包后的 ASAR 归档或混淆代码,它能自动梳理模块拓扑、Preload 脚本,把渲染进程与主进程之间的 IPC 通信接口拆解得清清楚楚。
  • • 原生二进制文件(C / C++ / Go / WASM):无缝对接 Hopper、Ghidra 或 IDA Pro,提取伪代码、汇编、交叉引用与符号表;对 Go 语言能直接从二进制里剥离内嵌的编译器版本与依赖清单;甚至支持离线分析 EVM 智能合约字节码与 WASM 模块。
  • • 移动端生态(Android / Flutter):内置无头 JADX 和 Apktool 支持,既能反编译 Dalvik/ART 字节码、还原 Manifest 权限与资源表,还能提取 Flutter 应用的 Dart snapshot 哈希与底层引擎特征。连上 adb,连真机进程状态、内存 dump 都能一并纳入排查范围。
  • • 网络与进程行为:不仅支持直接解析 HAR、Fiddler Everywhere SAZ,还能借助 TShark 深度抓取分析 pcap 报文;在 Linux/macOS 上支持直接拉起原生 PTY 捕捉进程黑盒运行时的终端输出与文件系统变动。

不管你面对的是远古时代的 16 位 DOS 程序,还是现代微服务环境下的 Go 二进制,它都有现成的管道递给 Agent。


官方给出的三个实战案例,有点降维打击的味道

项目文档里记录了三个非常硬核的实战复盘,很能说明它的杀伤力:

1. 还原 30 年前老游戏 DX-Ball 的声音定位算法DX-Ball 是不少人的童年回忆。开发者没有任何源代码,只拿到了上世纪的 x86 二进制。Agent 通过 REA 挂载 Hopper,顺着音频播放函数一路追踪到内部负责根据弹球 X 坐标计算声音声道声相(Pan)的子函数。Agent 最终用 C 语言重构了这个算法,仅用了数十行代码,并在 3205 个测试用例下与原版机器码跑出的结果 100% 吻合,甚至字节级复刻了原始编译器的输出。

2. 扒开 Notion 桌面端的富文本剪贴板链路很多前端开发者都好奇 Notion 桌面端在复制复杂排版块时,底层的系统级剪贴板到底塞了什么。Agent 调用 REA 直接把 Notion 的 Electron 安装包拆解,顺着渲染层的剪贴板 API 穿透 Preload 脚本,一路跟踪到 Node.js 主进程的跨进程消息通道,最终把未公开的富文本序列化格式完整呈现在终端里。

3. 东方封魔录(TH04)的 PC-98 弹幕环算法面对 16 位 DOS 实模式的汇编黑洞,REA 驱动 Ghidra 逆向其定点数乘除法和三角函数查表逻辑,不仅把当年的弹幕瞄准算法还原成了现代 C++,还跟当年 Borland 编译器的行为做了逐行对齐。


上手实测:怎样让它跑起来?

REA 的安装设计非常轻量,依赖 Node.js(22+ 或 24+ 环境)。

如果你使用的是 Cursor、Claude Code 等支持本地 MCP 的智能助手,直接在终端执行:

npx rea-agents setup

命令会自动侦测当前环境里的 Agent,列出准备写入的 MCP 服务配置与逆向引导词,确认后一键配置完成。重启你的 Agent,逆向工具包就挂载上了。

如果你不想开 Agent,纯粹想在终端里快速解构一个前端或者 Electron 项目,一行命令就能输出清晰的 JSON:

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

模块依赖、暴露的 Native 插件、IPC 桥接接口瞬间一览无余。如果要跑深度的 C/C++ 原生二进制分析,只要本地装过 Ghidra、Hopper 或 IDA,配置好路径即可直接调度。


软件的“黑盒护城河”正在迅速消失

REA 的爆火,其实折射出 AI 时代软件工程领域一个很现实的变化:

代码闭源所能构建的技术壁垒,正在以肉眼可见的速度变薄。

以前,团队花半年琢磨出一套精妙的算法或架构设计,只要不开源、编译成二进制,外部想逆向搞明白往往得付出极其高昂的人力成本。但在“成熟静态分析引擎 + MCP 协议 + 具备复杂逻辑推演能力的 Agent”面前,这种不对称性被急速抹平。

机器擅长做枯燥穷举和符号回溯,AI 擅长从上下文片段中归纳逻辑意图,两者一结合,逆向工程从原来的“手艺活”变成了“人机协作问答”。

当然,项目作者在免责声明里也反复强调:工具的设计初衷是用于安全研究、教育互操作性、以及对自己拥有合法授权的代码进行溯源。

对于一线开发者来说,这也是一个前所未有的学习杠杆——当你遇到一个惊艳的软件设计时,不用再隔靴搔痒地看二手技术博客猜测实现。只要在合法合规的边界内,你随时可以调起 Agent,敲开二进制的外壳,直接跟最底层的真实实现对话。

关注我,我会每天分享有趣的干货知识 !

相关学习资料