☰
REA 逆向工程三步法完全指南:从看懂别人的 App 功能到自己复刻
2026/10/20 2:24:23 网站建设 项目流程

REA 逆向工程三步法完全指南:从看懂别人的 App 功能到自己复刻

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

REA(Reverse Engineer Anything)是一款面向 AI 编程助手的逆向工程工具,把 Agent 接上 Hopper、Ghidra、IDA 等分析引擎。你只需一句"我想搞懂这个 App 的某个功能",它就能调查到原生二进制层面,并把成果复刻进你的项目——全程本地运行,不上传文件。

REA 解决什么问题:给逆向工程配一支"调查队"

新手做逆向最大的坑,是盯着汇编越看越懵。REA 的思路像侦探办案:不让你(也不让 AI)硬看全量汇编,而是提供一套"放大镜"式工具,按固定流程推进——反编译挖线索 → 理解串链路 → 复刻出代码。

它和直接开 Ghidra、IDA 有本质区别:那些工具是"引擎",你手动操作;REA 是给 Agent 开的调查接口——引擎照做真实分析,REA 负责打开文件、搜字符串、查交叉引用、生成伪代码,并且给每条结论附上证据等级。分析全程本地执行,文件不离开你的机器;它也从不假装自己恢复了原始源码。

上图是 REA 的调查桥在 Hopper 中打开一个 macOS 原生二进制的真实场景:左侧是反汇编视图,右侧是文件信息与地址定位面板,底部状态栏可见 REA 的 bootstrap 脚本正在运行。

REA 逆向工程三步工作流详解

三个阶段的目标、手段和产出,先放一张总表:

阶段做什么关键手段产出
1 反编译打开二进制,还原可读信息open_binary、search_strings线索清单
2 理解把线索串成完整调用链find_xrefs_to_name、get_call_graph伪代码 + 链路解释
3 复刻把理解写成你的代码普通编码工具可运行的功能

第一步:反编译——先攒线索

这一阶段不追"看懂",而是把二进制尽可能还原成可读信息。Agent 先用open_binary打开目标、binary_overview确认基本信息,再用search_strings、search_procedures、list_names搜字符串、函数和符号名。比如研究备忘录 App 的离线搜索,它会先在字符串表里找search、FTS、SQLite这类关键词,圈出候选函数。这一阶段的成果是线索清单,不是结论。

第二步:理解——把线索串成链路

有了入口点就开始顺藤摸瓜:用find_xrefs_to_name、procedure_callers回答"谁调用了它",用get_call_graph、procedure_callees、procedure_info回答"它内部流向哪",最后对关键例程跑procedure_pseudo_code、procedure_assembly、batch_decompile生成可读伪代码。深度分析引擎支持Hopper、Ghidra、IDA Pro 三选一;而 JavaScript 静态分析完全不需要任何引擎。结果会明确告诉你"哪些看清楚了、哪些还不确定",避免把推断当事实。

拿官方场景走一遍:假设任务是"弄清备忘录 App 的离线搜索怎么工作"。Agent 先在字符串和符号表里定位fts_search;再查交叉引用,发现它被搜索框的数据源函数调用;接着看调用图,追到一条通向 SQLite FTS 虚拟表的路径;最后反编译那个数据源函数,确认"先查本地索引、再回填缓存"的逻辑,并用自然语言讲给你听,每一步都附带证据。

第三步:复刻——把理解变成代码

理解不是终点,产出代码才是。Agent 带着前两步拿到的函数行为证据,用普通编码工具给你的项目写实现,比如"基于上面的分析,用 TypeScript + SQLite 实现类似功能"。关键在于它会把"从 App 观察到的行为"和"你自己的设计选择"分开说明——不是复制 App,而是理解后重写。

官方案例库里有可对照的完整记录:重构 DX-Ball 游戏的声音平移计算(复刻代码通过 3205 个原始测试用例)、追踪 Notion 的 Electron 剪贴板 IPC 桥、恢复 DOS 游戏的弹幕环角度算法。

REA 安装与配置:一条命令接入三步调查

前提只需 Node.js 22+ 和 npm:

npx rea-agents setup # 选择要接入的 Agent(Claude Code、Codex、Cursor、Gemini CLI 等) # 审查改动计划并批准后,重启你的 Agent

接入后,一句话即可触发完整三步流程:

"逆向备忘录 App,找出离线搜索是怎么工作的,解释给我听,并给我的项目用 TypeScript 和 SQLite 实现一个。"

不想接 Agent 也可以纯命令行完成调查:

npx -y rea-agents@latest analyze-javascript-application /path/to/app --json

对 JavaScript/Electron 应用,这条命令直接输出模块、导入关系、Electron 边界及其证据。遇到问题就跑npx -y rea-agents@latest doctor做体检诊断。

REA 能力边界:这四件事别误解

  1. 它不恢复原始源码。反编译产物是伪代码,REA 明确标注它与原源码的差异——"还原"指的是重构到可读,而不是拿到原代码。
  2. 它不自动克隆应用。第三步是"理解后自己重写",不会帮你把别人的项目整个抄过来。
  3. 原生深度分析必须带引擎。Hopper、Ghidra、IDA 三选一才够到二进制层面;只有 JavaScript 静态分析和 .NET 静态检查可以不装引擎。
  4. 结论分证据等级。观察到的事实、推断、未知会被严格区分,关键结论附 Evidence ID 和局限性——这正是 REA 区别于"玄学逆向"的地方,别把unknown当pass读。

REA 资源地图

  • 调查模型与工具总览:README.md
  • 安装、Agent 接入与引擎配置:docs/installation.md
  • CLI 命令与 Evidence 契约:docs/cli.md
  • 原生二进制调查细节:docs/native-investigation.md
  • Agent 工作流技能定义:.agents/skills/reverse-engineer-anything/SKILL.md
  • 核心分析服务源码:src/application/

把 REA 接上你的 AI 助手,说出"我想理解 App X 的 Y 功能",剩下的反编译、链路分析和伪代码生成会自动推进——你只需要最后拍板:怎么复刻。

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

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

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询