微软十年没修的 Bug,AI 半小时就搞定了?REA 到底有多神

REA(Reverse Engineer Anything)是这几天 GitHub 上最火的开源项目之一,10 万多 star。它让 Claude Code、Codex 这类 AI 编程助手在没有源码的情况下拆开一个程序,讲清楚某个功能是怎么做的,甚至直接动手修。本文用官网案例讲它能干什么,再讲一位用户如何用 AI 修好 Windows 远程桌面困扰他近十年的 bug,最后讲怎么上手。

打开 Windows 自带的计算器,输入 200 + 10%,然后按等号,出来是 220。再敲 200 × 10%,出来是 20。

同样是 10%,一次被当成 20 加了上去,一次被当成 0.1 乘了进去。这条规则哪儿都没写,计算器也没开源,普通人以前根本没办法知道它背后是怎么算的。

现在可以直接问 AI:「帮我看看 Windows 计算器的 % 是怎么算的」。它不是凭训练时记住的知识回答,而是真的去拆计算器的程序文件,一段段读汇编,把处理 % 的那段逻辑翻出来给你看。

翻出来的规则是这样:按下 % 时,计算器会先看前面跟的是什么运算符。是加号,10% 就算成前面那个数的 10%,200 的 10% 是 20,加起来才是 220;是乘号,10% 就只是 0.1,200 × 0.1 得 20。

背后干这活的,是这几天 GitHub 上很火的一个开源项目 REA,截至 10 月 12 日有 12.4 万 star。仓库 4 月就建了,前半年几乎没动静,10 月初才突然起飞,十来天涨到现在这个数。

REA 的 GitHub star 增长曲线

REA 是干嘛的

REA 全名 Reverse Engineer Anything,直译过来就是「逆向一切」。

所谓逆向,有点像你拿到一台封闭的机器,只知道按下按钮会发生什么,却不知道里面的零件是怎么配合的。你只能反复操作、观察结果,一点点推断它内部的工作原理。放到软件上,就是你没有源码,只有个装好的程序,却要搞清楚它内部怎么转。

这活儿以前基本是安全研究员和少数极客的专属:得看得懂汇编,得会用 IDA、Ghidra 这些工具,一个问题啃上几天很正常。

REA 干的事,是把这套工具接进 Claude Code、Codex、Cursor 这些 AI 编程助手。你用大白话问,AI 自己去拆程序、读代码、追调用,最后给你一句答案,还会把它找到的证据列出来,拿不准的地方也标给你。整个过程都在你自己的电脑上跑,程序不会传出去。

REA 的工作方式

官网放的几个例子

挑的全是大家眼熟的东西,开头那个计算器就是其中之一。

还有一个是 Chrome 断网时蹦出来的小恐龙。玩过的都记得,它会越跑越快。AI 从脚本里翻出了加速规则:初始速度 6,只要没撞上仙人掌,每帧加 0.001,到 13 封顶。摸清规则之后,它还照做一个带速度滑块的小恐龙,想跑多快自己拽。

手机验证码为什么 30 秒一换,也一样拆得开。AI 解开开源验证码 App Aegis 的安装包,从 3000 多个类里找出生成验证码的那个:时间按 30 秒切成段,段号加上账户密钥,算出一个六位数,跨到下一段就换个新的。

最老的一个案例是 1996 年的打砖块游戏 DX-Ball,不少人小时候玩过。AI 从它的可执行文件里,还原出砖块被击中时左右声道怎么分配的那段计算,写成了 C 代码。拿这段代码跟原版对了 3205 组测试,重新编译出来的 63 个字节,一个不差。

连厂商不修的 bug,也能自己动手

有位用户被 Windows 远程桌面客户端折磨了快十年,一共两个毛病。一个是窗口偶尔突然糊成一团,字都看不清,只能重启程序;另一个更烦,每回从全屏切回窗口,窗口就大一圈,切几次比例就全乱了。

微软一直没修,他也就一直忍着。

有天实在忍不住了,他把远程桌面的程序文件 mstsc.exe 丢给 Claude,提示词就是把两个 bug 说清楚,请它在没有源码的情况下直接改。

Claude 在几兆的可执行文件里摸到了病根。窗口越切越大,是因为程序把已经算上边框的尺寸,又照着边框扩了一次。修法简单得有点好笑:把那次多余的调用去掉就完事。落到文件里,是把 e8 16 2d 00 00 这 5 个字节换成 5 个 90,也就是「什么都不干」。另一个 bug 改的是一处栈偏移。

远程桌面补丁:5 个字节换成 5 个 90

按他的说法,改完之后两个毛病都没再出现。

修 bug 这人本身就懂逆向,Claude 每处改动给的解释,他看了也觉得说得通。按他自己的说法,干这行经常往内存里打这种 90 补丁。可就算是他,没源码的时候光是把该改哪儿找出来,就得一周。这次加上 AI,全程半小时出头,其中一部分时间还是干等着点确认。

他忍了十年没动手,是因为不划算:为一个窗口越变越大的毛病搭进去一周,怎么算都亏。现在缩成半小时,顺手就修了。

远程桌面那次其实没用到 REA。Claude 发现他电脑上没装逆向工具,就自己写了个 Python 脚本把位置找了出来。这本事大模型本来就有,REA 做的是把它收拾成一套装上就能用的东西。

还有人拿每月 20 美元的 AI 订阅去反编译 DOS 老游戏,其中一款大概两天就完整还原成源码,重新编译出来跟原版二进制一模一样。

怎么上手

先装好 Node.js,终端里跑:

npx rea-agents@latest setup

它会把你电脑上的 AI 编程助手列出来(Claude Code、Codex、Cursor、Gemini CLI 这些),选好、确认安装计划,重启助手就行。

接着直接问,比如:

用 REA 看看 Windows 计算器的 % 按钮,分别找出它跟在加号和乘号后面的规则,再做一个两种情况都能算对的小计算器。

要分析的是 Electron 桌面应用或者网页(VS Code、Notion、Slack 这类),装完就能用。要拆计算器、老游戏这种原生程序,电脑上还得有 Hopper、Ghidra 或 IDA 其中一样,装的时候可以让它顺手把 Hopper 给你装上。

动手之前说一句

改闭源软件的程序文件,可能违反它的用户协议。下手前先想清楚,那是不是你有权处理的软件。

GitHub 地址:https://github.com/morluto/rea

关于

关注我获取更多资讯

月球基地博客公众号二维码,扫码关注获取更多 AI 与编程资讯
📢 公众号
月球基地博客作者个人微信二维码,扫码交流 AI 与编程话题
💬 个人号
使用 Hugo 构建
主题 Stack 由 Jimmy 设计