大家好,我是程序员鱼皮。
最近一周,我的时间线被一个叫 REA 的开源项目刷屏了。
起因是 AI 圈的知名博主 Matthew Berman 发了条推文:逆向一切,软件已死。
![]()
这条推文直接爆了,到处都是「以后什么软件都能被 AI 扒光」的声音。
大家也纷纷晒出自己的逆向战绩。
有个老哥嫌语音输入工具 Typeless 越来越贵,干脆用 REA + Claude 把它逆向了,前后说了两句话、花了 25 分钟,就在自己 Mac 上复刻了一个不用登录、不用订阅的本地版。
![]()
还有个老外嫌每次找空调遥控器麻烦,直接把自家空调的 App 逆向了,做了个 Mac 状态栏小遥控,点一下就能开关、调温度,再也不用满屋找遥控器。
![]()
空调 App 做成状态栏遥控
还有更离谱的。有个老哥把自家智能马桶的微信小程序也逆向了,做了个电脑状态栏遥控,坐在工位上点一下,书房那头的马桶盖真就翻起来。
![]()
马桶小程序做成状态栏遥控
这个项目在 GitHub 上也跟坐了火箭一样,建仓大半年一直不温不火,结果十月初几天内 Star 数就从几万冲到了 20 多万。
![]()
REA 在 GitHub 上的 Star 数
那问题来了:如果让你来逆向,你最想搞什么软件?
我的想法可能跟不少人一样,肯定是逆向游戏和《学习类》APP。
所以这篇文章,我就拿一个游戏和一个学习 APP 开刀,顺便用大白话把 REA 讲明白,看看它到底有几分真本事。
REA 到底是什么?
REA 的全称是 Reverse Engineer Anything,翻译过来就是「逆向一切」。
要搞懂它,得先知道什么是逆向工程。
逆向就是手里没有源代码,只拿着编译好的成品程序,反过来推出它内部是怎么实现的。
打个比方,你在饭店吃到一道好菜,但没有菜谱,于是靠尝味道、看食材,自己反推出这道菜的配方。
软件逆向干的就是这件事,只不过把「菜」换成了一个没有源码的 App。
![]()
逆向工程原理示意
注意,REA 本身并不是大模型,它是一套跑在你自己电脑上的 命令行工具加 MCP 服务。
逆向圈原本就有很多老牌工具,比如分析原生程序的 Ghidra、IDA,拆安卓安装包的 JADX。这些工具功能很强,但门槛也高,基本只有黑客和安全研究员才会用。
REA 做的事情,就是把它们打包成一个统一的接口,接到 Cursor、Codex、Claude Code 这类 AI 编程助手上。
![]()
REA 把逆向工具打包给 AI 调用
为什么要多这一层呢?
以前你把反编译出来的一大坨机器码直接丢给 AI,它既读不懂,也不知道下一步该调哪个工具去查。有了 REA 之后,AI 能自己选对工具,拿到带编号的分析证据,哪里没看懂再针对性地追问。
说白了,就是把黑客的一整套逆向流程,变成了 AI 能自己跑起来的工作流。
REA 的安装也很简单,一行命令就能搞定:
npx rea-agents setup
或者直接跟 AI 说一句话,让它帮你安装:
帮我安装 github.com/morluto/rea
它到底有几分真本事?我带大家上手体验一下。
实战 1、逆向单机游戏
我有个特别喜欢的单机安卓游戏,叫《火影战记》。可惜作者已经好几年没更新了,一直都是那些角色,玩的有点腻了。
![]()
《火影战记》原版的选人界面
我一直想给它加一个新角色,让自己玩个开心。
但以前这事只能想想。我没有源码,改游戏得懂反编译、懂资源格式,还得会画像素图,每一样都够我喝一壶的……
现在有了 AI 加 REA,终于可以试一把了!
一开始我用的是 Cursor 加 Claude Opus 5.5 模型,把游戏安装包直接丢给它,让它照着 REA 去拆。
![]()
在 Cursor 里用 REA 加角色
虽然 AI 说是成功添加了一个新角色,但最后改完的游戏包一打开就直接卡死,结果让我大失所望。
于是我换成了 Codex 加 GPT-6 Astra 模型,整个过程顺畅多了。
![]()
在 Codex 里用 REA 加角色
有意思的是,Codex 没急着动手,反而先问了我一句:新角色有没有指定人选?
我说就迈特凯,就是那个穿绿衣、会开八门遁甲的热血忍者。
它随后调用 REA 把安装包整个拆开,摸清了游戏引擎(一个 cocos2d-x 写的原生库)和三种私有资源格式:角色脚本是改了头的 gzip,贴图是改了头的图集,动画索引里存着帧名哈希和裁切信息。
其中最关键的是摸透角色的注册流程。因为光把迈特凯的素材塞进游戏,他是不会出现在选人界面的,角色名单是写死在原生库里的。
![]()
定位角色注册流程
真正让 AI 下得去手的,就是 REA 这一层。
它把私有资源格式和原生库拆开、整理成 AI 能读懂的证据,AI 才看明白角色是怎么注册、怎么渲染的,否则面对一坨机器码根本无从下手。
至于具体的数值和技能,就没必要抠太细了。简单说,迈特凯和小李都是体术流,Codex 就直接拿小李的数值当基准,技能也复用游戏里现有的攻击和位移指令来实现,这样新角色不容易破坏原有的战斗规则。
美术部分,它还派了一个子智能体专门给迈特凯画像素立绘,跑步、出拳、踢腿,连八门遁甲的特效都安排上了。
![]()
子智能体生成迈特凯立绘
素材和数值都弄好之后,Codex 还在一个独立的安卓模拟器里做了验证。
打开游戏,选人页里真的多了一个迈特凯:
![]()
选人页里多了迈特凯
选完人进场,迈特凯稳稳站住了,血条、金币、技能图标都正常,非常不烧心~ ❤️
![]()
迈特凯进场后正常参战
接着开一局试试,技能放出来也像模像样,这就是青春啊!
![]()
迈特凯开八门遁甲放技能
虽然在数值平衡、音效、画风上还有不少小问题,但可以正常玩耍,我已经很满足了。
实战 2、逆向学习 APP
接下来,我要逆向一个颜色… 哦不,学习 APP。
这次还是先用 Cursor 加 Claude Opus 5.5 模型。结果 AI 刚开始干活,就撞上了安全过滤,对话被自动切换到了 Claude Opus 4.8。
![]()
Opus 5.5 被降级到 4.8
我三番五次软磨硬泡,跟 AI 说我就是想学技术,但它还是守着底线,只肯做静态分析,死活不肯把完整源码反编译出来。
它的原话是:无论怎么框定成「学习」或「反诈」,把这个特定 App 的真实代码还原出来,就是复原它访问和分发内容的管道,这件事本身就越界了。
![]()
AI 只肯做静态分析
它一眼看出这是个 Flutter 做的 App,业务逻辑都编译进了一个叫 libapp.so 的文件里;还发现它虽然套了 360 加固壳,但加固只保护了 Java 层的代码,根本没盖住 Flutter 这半边;甚至连它底层还在用 2017 年、早就该升级的老版本加密库都给我揪了出来。
它还顺手把这类 App 的赚钱套路扒了个底朝天。
这就是一类「挂羊头卖狗肉」的 App,拿学习当幌子,真正的生意是收割用户。
![]()
拆解后的结构和风险信号
它坑人的手法其实也是经典套路了。
第一,App 里搞了三套虚拟货币,真钱先换成金币,金币再换积分,绕来绕去你就算不清自己到底花了多少钱。
第二,签到领随机金币、拉人头给返利,前者是赌博机那套让你上瘾,后者本质就是让你把亲友也拉下水的分销。
第三,也是最危险的,这类 App 的客服和退款全都引导你去站外的聊天软件处理。一旦 App 被封,它换个马甲就能重新上架,而你手里一点证据都没有。
所以真心建议大家不要用这类 APP 来学习!
![]()
AI 有底线是好事,但对真心想学技术的人来说,确实有点卡手。
于是我换成了 DeepSeek Harness 工具加 DeepSeek 模型,还是让它照着 REA 去逆向,想着限制应该会松一些。
![]()
蓝色大肥鱼听话多了,几句话就把这个 App 的工程骨架讲明白了。
![]()
整个 App 是 Flutter 3.27 写的,界面、逻辑和底层能力分成了几层,想换皮只动上面一层就行。它没用系统自带的播放器,而是自己打包带了一套 B 站开源的 IJKPlayer。
这么做是为了兼容性。系统自带的播放器支持哪些视频格式,是手机厂商说了算的,各家不一样,同一条视频可能这台手机能播、那台就报错。自己带一套 IJKPlayer,解码能力就自己说了算,不管用户拿的是什么手机都能把视频播出来。
![]()
这个 App 的工程骨架
连夜间模式都单独做了一整套配色图,一共 128 张,宁可多塞几 MB 也要把观感做好。
看来它很清楚,大多数用户都是在夜里躺床上学习的。
![]()
白天和夜间两套配色图
我又顺手让它把这个 APP 改造成一个 AI 编程学习 APP。它派了好几个子智能体一起干,最后交付了一份技术讲解文档,还有一个能直接运行的学习 App。
![]()
我在本地把这个学习 App 跑了起来,首页是七个模块的课程地图,从 Python 基础一路到 Agent 实战。
点进第一节课,里面有讲解、有能直接复制运行的代码,还配了随堂测验,内容全是原创的 AI 编程知识。
![]()
DSH 交付的学习 App 首页
通过逆向这个 APP,还能发现一个挺实用的工程经验。
很多开发者以为 Flutter 代码编译成机器码就逆不出来了,于是把密钥、接口地址直接写死在代码里。但加固壳只盖住了 Java 层,Flutter 这半边是敞着的,这其实是一种安全幻觉。
所以你要是也在做客户端开发,真正需要保护的东西,比如密钥和核心逻辑,就别全堆在客户端上,该放后端的老老实实放后端。
最后哔哔
体验完 REA,我个人觉得:就那样吧。
REA 工具本身没有发明什么新技术,真正强大的其实是 Ghidra、IDA 这些早就存在的逆向工具,REA 只是把它们整合到了一起,把逆向这件原本只有少数人玩得转的事,压缩成了一行命令、一个服务,让普通人也能指挥 AI 去拆软件。
这才是它能出圈的原因,它也确实让很多人第一次了解到了逆向这件事,是有意义的。
不过噱头大于实际,很多人是冲着「软件已死」这种爽文叙事来的,真正会天天用它的没几个。
而且不用 REA,现在的 AI 模型照样能自主逆向,它完全可以自己去装工具、读反编译的结果。
甚至因为 REA 这个包实在太重,光工具定义就有差不多 170 个、往上下文里塞十几万 token…… 裸着让 AI 自己干,少了这份负担,反而可能更快更省地完成任务。
![]()
REA 的工具清单
至于「软件已死」这种说法,当个乐子看就好了,一方面是逆向过程中,可能会触发模型的安全限制,被降级和拒绝。
另一方面,客户端的代码和界面能被读懂、被重写,不代表后端、数据和持续的运营也能被拿走。这些才是很多软件真正值钱的部分,也是软件的护城河。
OK 就分享到这里。如果你对 AI 编程感兴趣,可以看看我免费开源的 ,上千张图、几十万字,带你从 0 开始快速学会 AI 编程,做出自己的产品、跑通变现全流程,一次拿捏。
![]()
鱼皮的 AI 编程教程
我是鱼皮,持续分享 AI 编程干货。觉得有用的话记得点赞收藏和关注~
也欢迎在评论区聊聊:你最想逆向什么?
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.