夜雨聆风学习资料网

ARTICLE · 1249864

没有源码,也能分析一个软件底层怎么工作?这个工具逆天了!

没有源码,也能分析一个软件底层怎么工作?这个工具逆天了!
最近,AI逆向是火的一踏糊涂。如果你到现在还没用起来,那要是亏大发了!
那什么是逆向?
我们平时让AI写代码,通常是先告诉它想做什么,再让它想办法实现。
但还有一种情况:一个软件已经装在电脑上,某个功能特别好用,你想知道它到底怎么做的,手里却没有源码。
就像吃到一道好菜,你知道它好吃,却不知道里面放了什么、火候怎么掌握。只看照片,让AI猜菜谱,当然也能猜出一套,但跟人家实际的做法可能差得很远。
今天这个开源项目REA,就是让AI来逆向的工具。它可以接入Codex、Claude Code、Cursor,让AI调用分析工具,沿着程序里的线索查下去。[项目地址:morluto/rea](https://github.com/morluto/rea)

1、它能帮我们查什么?

最有用的场景,是你对一个具体功能有疑问。
比如,一个桌面工具的搜索功能,到底是在本地查文件,还是把关键词发给服务器?点了复制按钮以后,文字经过哪些处理,才进入剪贴板?
这些事情,界面上看不出来。
REA可以帮助AI检查程序模块、函数之间的调用、网页脚本和网络请求。遇到编译后的程序,还可以配合反编译工具查看伪代码和汇编。支持的目标包括JavaScript、Electron、.NET、原生程序和网站等。[官方能力说明](https://github.com/morluto/rea#what-you-can-analyze)
对做产品的人来说,这就多了一种研究方法。以前看到一个功能,只能根据表现琢磨;现在有机会继续往里面查,看看它实际经过了哪些步骤。
不过,编译后的程序通常恢复不出作者原来写的变量名、注释和完整工程。拿到的分析结果,还需要AI继续理解和验证。

2、官方已经拿老游戏做了演示

REA官网有一个DX-Ball的案例,研究的是打砖块时,声音如何随着砖块位置偏向左边或右边。
听起来只是个小细节,但真要还原,就得找到位置数据从哪里传进来,中间经过什么计算,最后返回什么结果。
官方展示了这条调查过程:AI借助REA检查原程序,找到相关指令和计算常量,再写出对应的C函数。重建后的这个函数,通过了3,205组与原程序的行为对比测试。[官方案例:DX-Ball声音定位](https://rea.tools/showcase/dx-ball/)
我觉得这个案例很有说服力。它把一个具体问题查到了能验证的程度,而不是给你写一大段“可能采用了某种算法”。
对于老项目维护、兼容性问题,或者研究自己有权检查的软件,这种能力很实用。

3、怎么装,怎么开始用?

先准备Node.js和npm。官方目前要求Node.js 22.19以上的22.x、24.11以上的24.x,或者26及以上版本。
Windows用户打开PowerShell,运行:
npx.cmd rea-agents@latest setup
按提示选择你使用的AI工具,例如Codex。确认配置后完成安装,再重启对应客户端。[官方安装说明](https://github.com/morluto/rea/blob/main/docs/installation.md)
这里有个容易弄混的地方:只安装REA的Skill,还没有把分析工具接进去。第一次用,直接走setup比较省事。
分析JavaScript或Electron程序,可以先从静态检查开始;深度分析原生程序,则需要另外配置Ghidra、Hopper或IDA等分析工具。
装好以后,给AI一个文件路径,再交代具体问题。比如:
“用REA分析这个我有权检查的应用,查清搜索框输入关键词以后,程序怎样处理查询、怎样显示结果。把找到的关键位置列出来,查不到的地方直接说明。”
一开始就查一个功能,会比丢过去一句“把整个软件分析一下”更容易得到有用的结果。
我看好这类工具的原因也在这里。以后遇到一个不懂的实现,我们能让AI陪着往里查,找到线索,再讨论怎么用自己的代码做出来。对想学东西、又被陌生代码挡住的人来说,这一步很有价值。
我是【游小娴】,一个喜欢游戏,喜欢AI的朋友。
都看到这里了,玩一局呗⬇️⬇️⬇️

相关学习资料