ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

REA 逆向工程工具:1 行命令接入 AI,看懂任意 App 的底层实现

REA 逆向工程工具:1 行命令接入 AI,看懂任意 App 的底层实现

REA 逆向工程工具:1 行命令接入 AI,看懂任意 App 的底层实现

【免费下载链接】reaReverse engineer anything with agents, from app behavior down to native binaries.项目地址: https://gitcode.com/GitHub_Trending/rea2/rea

想在自家产品里复刻某个 App 的功能,却卡在了它没有源码的二进制上?REA 是一个面向 AI Agent 的逆向工程工具,口号是 Reverse Engineer Anything——把二进制、JavaScript/Electron 应用这类目标接进你的编程助手,分析全程在本地跑,不上传目标文件。下面以"给笔记应用加一个最近打开列表"这个任务为例,看它如何从打开一个目标,一路走到能落进你项目的功能。

🔍 打开二进制,先问它是谁

拿到目标——一个 App 的可执行文件,或从.asar解出来的目录——先别急着读汇编。用open_binary打开它,再用binary_overview让它报出身价:什么架构、什么加载器、入口在哪。这一步只关心确定性的事实,架构、段、入口点,先建立坐标系,不急着下结论。

上图是 REA 的调查桥接在 Hopper 里打开一个原生二进制的真实画面:右侧面板列出了架构(arm64 的 Mach-O)、入口地址和调用约定,左侧是反汇编窗口。

挖线索:从字符串表定位相关函数

有了入口,就沿着二进制里最便宜的线索走。search_strings按关键词搜字符串,search_procedures按名字搜函数,list_names把符号摊开。想加"最近打开",就去搜recent、history、SQLite这类词,把命中的函数名攒成一张线索清单。注意:这一阶段产出的是"它可能是怎么做的"线索,而不是结论。

🔗 串链路:从交叉引用到调用图

单个函数说明不了功能,得看它们怎么串起来。find_xrefs_to_name和procedure_callers回答"谁调用了它",get_call_graph和procedure_callees把调用关系铺成图。从搜到的关键词函数出发,顺着调用边往上往下走,链路逐渐成型:哪个入口触发它,中间经过哪些存储与查询。这是 REA 的主场——把离散的线索拼成一条可解释的路径。

⚙️ 出伪代码:Hopper、Ghidra、IDA 引擎怎么选

链路里的关键例程,用procedure_pseudo_code反编译出可读伪代码,batch_decompile批量处理,procedure_assembly需要时再回到汇编。原生分析背后是深度三选的引擎:Hopper、Ghidra、IDA Pro任选其一即可,而静态 JavaScript 分析连引擎都不用装。

更关键的是证据分级:每一步都告诉你哪些看清了、哪些还不确定、哪些是未知。伪代码被明确当作"反编译产物",不会被当成原始源码。引擎与命令的取舍见 docs/cli.md。

落码到你的项目:观察行为与你的设计

理解不是终点,能用的代码才是。前两步做完,你只要对 Agent 说一句:

基于你的分析,用 TypeScript 和 SQLite 在我的项目里实现一个最近打开列表。

它会带着前面攒下的函数行为证据去写实现,并且把"从 App 观察到的行为"和"你的设计选择"分开写清楚——你只需在最后拍板。这一步走的是 Agent 的普通编码工具,不是 REA 本身。

一行命令接入 REA,分析全程本地运行

分析全程本地,结果自带证据与局限。接入方式看这张表:

你要做的事入口需要的分析引擎
让 AI 助手自动跑完整调查通过 MCP 接入 Agent原生目标需 Hopper/Ghidra/IDA 之一
静态分析 JavaScript / Electron 应用命令行analyze-javascript-application不需要任何引擎
终端里打开并反编译二进制命令行analyze/decompile原生目标需 Hopper/Ghidra/IDA 之一
体检当前接入与环境命令行doctor可按单个引擎排查

接 Agent 只需一行(需 Node.js 22+,更高版本如 24 也支持):

npx rea-agents setup

它会让你选要接入的 Agent(Claude Code、Cursor、Codex、Gemini CLI、VS Code 等十多款)、连接引擎,并把改动全部展示出来后才写入配置;完成后重启 Agent。不想装 Agent 也能纯命令行:analyze-javascript-application对 JavaScript/Electron 应用一条命令出结果,原生目标配好引擎后用analyze、decompile做等价操作。接入细节见 docs/installation.md。

最后说清几条边界,免得期望跑偏:反编译产出是伪代码,不是恢复出的原始源码;它也不会自动克隆整个 App,第三步是"看懂后自己重写";每一条结论都附带 Evidence ID、局限性和未知项,让你随时分清哪些是观察到的事实、哪些只是推断。

【免费下载链接】reaReverse engineer anything with agents, from app behavior down to native binaries.项目地址: https://gitcode.com/GitHub_Trending/rea2/rea

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进