AI 智能体能逆向工程你的应用吗?
REA——Reverse Engineer Anything——是一个开源 MCP 服务器和命令行工具,让编程智能体操作专业的逆向工程软件:将智能体指向一个已发布的应用或二进制文件,它就会用真正的反编译器检查代码,把某个功能的工作方式写成规范,重建该功能,再将重建结果与原件进行核对。它在 2026 年 10 月成为 GitHub 上增长最快的项目之一,并改变了一个老事实的经济学:任何在用户机器上运行的东西,都能被该用户读取。本文解释 REA 到底是什么、它驱动的工具栈、使其输出可信的工作流程,以及发布软件的开发者应该如何应对。
REA 是什么
REA(仓库为 morluto/rea,采用 MIT 许可,通过 npm 以 rea-agents 的名义安装)本身不是反编译器。它自己不反编译任何东西。它是一个编排层,使用模型上下文协议(Model Context Protocol)——与本站从网站一侧处理同一问题的 智能体就绪度工作所用的接口相同——并将逆向工程操作暴露为 Claude Code、Codex 或 Cursor 等编程智能体可以调用的工具:反汇编这个二进制文件、反编译这个函数、列出字符串、跟踪交叉引用、展示证据。繁重的工作由它底层的引擎完成,智能体驱动这些引擎的方式就像人类分析师一样,只是它可以不计成本地做到穷尽。
这种分工正是关键所在。反编译器的输出庞大且大多枯燥;逆向工程中稀缺的技能从来不是运行工具,而是决定接下来看什么,以及知道一个答案何时已被证明。REA 将引擎与工作流程指令配对——按固定顺序调查、为每个主张记录证据、说明哪些内容无法解决——因此智能体的输出不是一堆伪代码,而是一组附有凭证的发现。对于原生二进制文件,它驱动 Ghidra、IDA Pro 或 Hopper;对于 Android 软件包,它驱动 JADX;对于实时行为,它可以读取 HAR 和 mitmproxy 捕获。一套接口,多个引擎,而智能体提供耐力。
一张图看懂技术栈
分析核心。 Ghidra 是美国国家安全局免费的、采用 Apache-2.0 许可的反编译器,也是大多数人的默认引擎;IDA Pro 是许多专业人士仍然偏爱的商业老牌工具。新鲜之处不在于这两个工具本身,而在于它们的桥接:GhidraMCP 和 ida-pro-mcp 通过 MCP 将正在运行的 Ghidra 或 IDA 会话暴露给智能体,使智能体可以直接查询反汇编数据库,而不是看截图。REA 位于它们之上一层,负责选择引擎并安排工作顺序。
移动端与应用。 jadx 将 Android APK 反编译回可读的 Java;Apktool 解包 APK 的资源和 smali 并能重新构建它;Frida 对正在运行的应用进行插桩,在函数执行时挂钩它们——这是静态反编译看不到的动态一半;ILSpy 则为 .NET 程序集做 jadx 为 APK 所做的事。(如果想免安装先看一眼 APK 的声明而非代码,本站的 APK Analyzer 可在你的浏览器中读取其清单、权限和签名证书。)
二进制与底层。 radare2 及其更友好的分支 rizin 是可脚本化、以终端为先的逆向工程框架;x64dbg 是大多数分析师首选的 Windows 调试器;ImHex 是带有用于描述文件格式的模式语言的十六进制编辑器;angr 是一个符号执行引擎,能推理一个函数的每一条路径,而不只是一次运行。这些是用来回答反编译器难以回答的问题的工具:加壳的二进制文件、古怪的文件格式、“这个输入到底能不能到达那个分支”。
网络与运行时。 mitmproxy 位于应用与其服务器之间,记录双方的对话——对许多应用来说,API 流量比代码更能说明问题,而且它是 REA 原生读取的捕获格式。dnSpy 实时调试和编辑 .NET 应用程序,raddebugger 是 Epic 为 Windows 打造的现代图形调试器。围绕这一切的是地图:两份精选清单,awesome-ai-reverse-engineering(122 个智能体时代的仓库,每一个都经过阅读和评分)和 REA 作者自己的 awesome-reverse-engineering,都链接在下方的来源中。
净室循环:规范、重建、验证
REA 鼓励的工作流程比 AI 更古老:它是净室工程,这门学科曾被用来在不复制的情况下克隆 BIOS。智能体调查目标并写出 SPEC.md——一份以通俗语言说明软件功能的规范,并为每种行为附上证据。只有在此之后,才从规范而非反编译代码出发开始重建,并根据验收标准评判重建结果:相同的输入、相同的输出、相同的边界情况。当评判说不时,循环回到证据——而不是猜测——并再次调查。
这就是为什么有趣的产物是规范,而不是伪代码。附有证据的规范可以被第二个智能体、测试套件或人类检查;原始的反编译结果则三者皆不可查。这也是具有法律意义的一步:根据行为规范重建与复制一种实现是不同的行为,这就是为什么该循环坚持证据和标准而非感觉。任何评估智能体工具的人——无论是用于逆向工程还是其他用途——都应该借鉴这一模式:交付物是经过验证的主张,而不是自信的答案。
如果你发布软件,这意味着什么
这一切都不会让客户端代码变得秘密;它从来都不是秘密。它只是让读取它变得便宜。一位熟练的分析师使用 Ghidra 一直都能从你的应用中提取 API 端点、功能开关和许可逻辑——REA 级别的工具意味着一位初级人员加一份智能体订阅就能在一个下午完成第一遍。实际后果是老生常谈,只是期限更短了:嵌入已发布二进制文件中的秘密——API 密钥、私有端点、那条唯一的折扣规则——实际上等于已经公开;混淆提高了阅读成本,但只是延迟,不是屏障;任何你的业务赖以保密的东西都必须放在你的服务器上,放在身份验证之后,而不是放在应用里。
防御措施同样朴实无华,而且确实有效:将秘密和定价/许可决策放在服务器端,签发短期、范围受限的令牌而非永久密钥,在风险值得时使用平台完整性证明(Play Integrity、App Attest),并在设计滥用控制时假设你的客户端行为完全可观察。这与本站 智能体就绪度的教训互为镜像:在那里,重点是智能体会读取你网站面向机器的表面,无论你是否设计过它;在这里,智能体以同样的方式读取你应用的二进制文件。在这两种情况下,制胜之举都是有意识地决定面向机器的表面要说什么。
合法用途——以及界限
逆向工程有光荣的、既定的用途,REA 自己的文档也列出了同一份清单:分析你自己的软件(包括你丢失了源代码的那一份副本)、安全研究与漏洞分析、恶意软件与事件调查、互操作性——让你的产品与另一个产品协同工作——CTF 竞赛以及教育。在许多司法管辖区,其中一些用途甚至受到保护,即便许可条款声称禁止它们,尤其是互操作性和善意的安全研究,尽管细节各有不同,而且本文不是法律建议。
界限同样清晰。工具上的 MIT 许可不是目标上的许可:它不授权从竞争对手的二进制文件中克隆其产品、击败 DRM 或许可执行机制、或分发你提取的内容。上一节的净室循环正是为了让重建停留在那条线的正确一侧——行为和证据,而不是复制的实现。本站自己的分析工具也在微观层面采取同样的立场:静态、本地、只读、不执行、不规避——只是第一眼,而繁重且法律敏感的工作则留给能够为其负责的工具和人。
亲自试一试
REA 需要 Node.js 22 或更高版本;一条命令——npx rea-agents setup——就能向它找到的编程智能体注册其 MCP 服务器并安装配套的工作流程指令,REA 自己的 doctor 命令会检查每个引擎(原生二进制文件必须安装 Ghidra 等原生引擎;JADX 覆盖 APK)。将它指向你拥有的软件或你有权检查的样本——你写的一个小工具是完美的第一个目标——并问它某个功能是如何工作的。在阅读任何伪代码之前先读它生成的规范:证据链接才是真相所在。
如果你想要第一步的零安装版本,那正是本站 Binary File Inspector 的用途:将 PE、ELF 或 Mach-O 文件拖入页面,在浏览器中读取其头部、节、导入和字符串——不上传、不执行、无需工具链。它不会反编译任何东西,而且它明说了这一点;它是五分钟的分诊,告诉你完整的 REA 处理是否值得设置,以及应该用哪个引擎。
来源与延伸阅读
- REA — morluto/rea (GitHub)
- Ghidra — NationalSecurityAgency/ghidra (GitHub)
- GhidraMCP — LaurieWired/GhidraMCP (GitHub)
- ida-pro-mcp — mrexodia/ida-pro-mcp (GitHub)
- jadx — skylot/jadx (GitHub)
- Apktool — iBotPeaches/Apktool (GitHub)
- Frida — frida/frida (GitHub)
- mitmproxy — mitmproxy/mitmproxy (GitHub)
- awesome-ai-reverse-engineering — zhuyansen (GitHub)
- awesome-reverse-engineering — morluto (GitHub)