刷 GitHub 的时候看到一个项目,叫 REA,全称 Reverse Engineer Anything,翻译过来大概是"逆向一切"。

—— 它是干嘛的

简单说就是把 Ghidra、IDA、Hopper 这些逆向工具包了一层,让 AI 助手可以直接调用。

它是个 MCP server,TypeScript 写的,MIT 协议。装完之后 Claude Code、Cursor 这些就跟它连上了,多了四十多个工具,可以直接用说话的方式让它去拆一个程序。

装起来不麻烦,Node.js 22 以上,一条命令的事。

—— 能拆哪些东西

范围比我想的广:原生二进制(Mach-O、ELF、PE、macOS 的 .app)、各种包(ZIP、APK、IPA、ASAR)、Electron 应用、.NET 程序集,还有网站,甚至能对比两个版本的差异。

—— 我试了试

拿它跑了几个小东西。

有个设计我觉得挺实在:它给的每个结论都会带出处,比如字节范围、文件位置,而且会明说"哪些部分这次没确定"。

这个挺重要的。AI 最烦的地方就是一本正经地编,逆向这种场合,编出来的结论比没结论更坑。它愿意说"这段能确认、那段不确定",比直接给个答案靠谱。

过程是会话式的,可以一步步缩小范围:先看大概结构,再顺着字符串、调用图往下追,最后拿伪代码看细节。

—— 也别太神化

冷静说,它算不上凭空冒出来的新技术。把 AI 接到 Ghidra 上这种事,去年就有人做过类似的(GhidraMCP、IDA 自己的 MCP)。REA 更像是把这条路做得更顺手,让不会逆向的人也能跑起来。

限制也挺明显:

  • 没壳或者简单加壳的还行,遇到 VMP 那种强壳基本没辙
  • 没有动态调试,所以服务器端的逻辑它够不着
  • 工具太多会很快吃掉模型上下文,拆复杂程序容易卡住中断

另外用之前得想清楚边界:有些地方软件协议里禁止逆向是有效的,也有地方(比如欧盟)允许为了互操作去反编译。别人的商业软件,最好先搞明白能不能碰。

—— 一点想法

对我这种学得还不深的人来说,它的意义不是"软件都要变开源了",而是把一件门槛挺高的事,变成了一条命令就能试的事。

以前觉得逆向离自己很远,现在至少能自己上手看看了。虽然有上限,但能摸到就已经挺有意思。