夜雨聆风学习资料网

ARTICLE · 1199257

让 AI 帮你读懂一个软件是怎么实现的

让 AI 帮你读懂一个软件是怎么实现的

手上有个东西在跑,可你就是不知道它内部怎么运作的。可能是接手的一个老系统,源码早就找不到了;可能是一个第三方组件,出了怪问题,日志里只有一句含糊的报错;也可能你只是好奇某个功能为什么能做到那么顺。

这类问题的老办法是硬着头皮啃。看汇编,翻文档,一行行猜。门槛高,而且结论对不对,全看你的经验。

REA 换了个做法:把分析工具接到你已经在用的 AI 助手上,让 AI 去查,然后把证据摆给你。

REA

一个接给 AI 助手用的分析服务。通过 MCP 协议把它挂到 Claude Code、Codex、Cursor 这类工具上,你就能用大白话让它去查一个二进制文件、一个网页应用或者一个手机 App 是怎么工作的。分析全部在本机跑。

自部署 · 开源免费 · MIT

它跑来干什么

你问一句「这个功能是怎么实现的」,AI 不会凭猜给你答案,而是调 REA 的工具去看:

它会把目标拆开:伪代码、汇编、字符串、函数符号、调用关系,一层层摆出来,然后 AI 拿着这些实际取到的内容跟你解释。每一步都留痕,你能看到它是根据什么下的结论。

这是它最值得说的一点:每个结论都带着证据,也带着局限。哪些是确定的、哪些是推测、哪里看不出来,它分开告诉你。一个「可能」不会被包装成「就是」。

分析过程在本机完成,不存在把你的程序传上去。

能查的东西比想象中多

除了常见的可执行文件,它还覆盖了不少别的东西:

桌面和网页应用:JavaScript 和 Electron 应用能查出模块结构、source map、路由、进程间通信;网站能看页面结构、脚本和网络请求。这两类不需要额外装东西。

手机端:Android 的安装包能反编译看清单、类和方法;连着设备的话,进程、日志、截图也能一并对过来。

其他格式:.NET 程序集、WASM 产物、固件镜像、区块链合约字节码、崩溃现场记录、抓下来的网络包,都在覆盖范围里。

进程行为:它还能把程序真的跑起来,记录终端输出、文件读写和退出状态,用来对比两次运行到底哪里不一样。

三个已经做出来的例子

左边是 1997 年那款打砖块游戏。有人想弄明白它当年是怎么算声音左右声道的,于是追进那段代码,把不完整的伪代码补成了 C 语言。补出来的版本通过了 3205 个原始用例,编译出来的函数字节也和原版完全一致。

中间是 Notion 桌面包的剪贴板链路:从渲染层的接口出发,穿过预加载脚本和进程间通信,一路追到主进程里那个富文本格式。

右边是 PC-98 平台上一个老游戏的弹幕角度计算,同样是先把 16 位指令看明白,再和当年编译器的输出做比对。

这三个例子的共同点是:结论都能拿原程序验证。跑一遍原程序,对得上才算数。

几件得先说清楚的事

深度分析二进制需要一个反汇编工具。 它支持 Hopper、Ghidra 和 IDA,用你机器上已经装好的那个;设置流程可以在你同意后帮你装 Hopper。纯 JavaScript 和 .NET 的静态分析不需要。

部分目标要求 Linux。 固件、部分崩溃记录和字节码分析依赖一些命令行工具,需要你自己准备;Android 相关需要安卓调试工具。官方文档把每个目标的前置条件列得很细。

对 Node.js 版本有要求,装之前值得看一眼。

项目自己在 README 里写了一段话,我原文引过来:「REA 为合法的逆向工程研究、分析和重建提供工具。你有责任取得所需授权并遵守适用法律。项目不支持非法或未经授权的使用。」

仓库与协议

https://github.com/morluto/rea,MIT 协议。

#人工智能 #MCP #开发者工具 #二进制分析 #本地工具

往期推荐

你有没有为了弄明白一段没有源码的逻辑,硬啃过汇编?评论区聊聊。

相关学习资料