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

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),仅供参考

相关新闻

2026论文王炸AI智能降重工具大曝光:一键把AIGC率降至安全线!

2026论文王炸AI智能降重工具大曝光:一键把AIGC率降至安全线!

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 2:24:28 阅读更多 →
SpringBoot+Vue+MyBatis+MySQL企业级在线文档管理系统架构与实战解析

SpringBoot+Vue+MyBatis+MySQL企业级在线文档管理系统架构与实战解析

最近几年企业里对文档管理的需求越来越明确,传统共享文件夹加微信传文件的模式早就撑不住了,权限混乱、版本覆盖、检索困难都是老问题。我拆解过不少号称“企业级”的在线文档系统,真正能把权限、预览、版本、日志这些环节串起来的并不多。手…

2026/10/20 2:24:28 阅读更多 →
头歌数据结构-排序的实现及其应用

头歌数据结构-排序的实现及其应用

第1关:直接插入排序100学习内容参考答案记录评论任务描述本关任务:实现直接插入排序。相关知识为了完成本关任务,你需要掌握:1.顺序表的类型定义,2.直接插入排序。顺序表的类型定义#define MAXSIZE 100typedef int Key…

2026/10/20 2:23:28 阅读更多 →

最新新闻

FPGA开发者必看:SRIO协议从IP配置到数据收发的完整调试指南

FPGA开发者必看:SRIO协议从IP配置到数据收发的完整调试指南

简介:面向FPGA与嵌入式系统开发者,这套Xilinx SRIO使用例程围绕Serial RapidIO高速串行互连协议在Spartan6系列中的实际部署,系统覆盖硬核配置、端口速率选择、测试平台搭建与仿真验证,解决高带宽低延迟场景下的接口设计与调试难题…

2026/10/20 21:31:57 阅读更多 →
DeepSeek+客流预测实战:文旅景区智能调度与数据治理指南

DeepSeek+客流预测实战:文旅景区智能调度与数据治理指南

元旦当天上午九点半,某古镇指挥中心的大屏上,瞬时客流曲线还在平缓爬升。过去一到这种关键节点,我们只能靠值班长拍脑袋判断“今天会不会爆”。后来我们把整套逻辑改了:先用 DeepSeek 处理近三年的客流历史数据,产出小…

2026/10/20 21:31:57 阅读更多 →
人工智能防火墙实战:从对抗攻击原理到纵深防御体系

人工智能防火墙实战:从对抗攻击原理到纵深防御体系

1. 先从一张贴纸说起——AI模型并没有你想象的那么“刚”前两年我做过一个小实验,到现在印象都很深:贴在停车标志上的一张黑白贴纸,能让当时测试用的视觉识别模型把“Stop”识别成“限速40”。贴纸的面积不到标志的十分之一,人眼看…

2026/10/20 21:31:57 阅读更多 →
FreeImage Windows编译指南:VS与MinGW完整实践与排坑

FreeImage Windows编译指南:VS与MinGW完整实践与排坑

先聊点实际的。做图像处理或者工具链开发的朋友,应该都遇到过这种场景:手头项目跑得好好的,突然丢过来一批乱七八糟的图片格式,BMP、JPEG、PNG、TIFF、GIF、WebP 混杂在一起,有些还带 EXIF,打开一看全是相机…

2026/10/20 21:31:57 阅读更多 →
报错注入攻击原理与实操:从SQL错误信息泄露到数据提取

报错注入攻击原理与实操:从SQL错误信息泄露到数据提取

1. 报错注入到底是怎么一回事1.1 从一个登录框说起很多做Web开发的朋友都有过这样的经历:写了一个查询接口,用户输入一个ID,后台拼一条SQL去数据库里捞数据,返回结果。逻辑简单,代码也不复杂。但如果这个ID参数没有经过…

2026/10/20 21:31:57 阅读更多 →
图数据建模必知:从转导式到归纳式学习的范式切换实践

图数据建模必知:从转导式到归纳式学习的范式切换实践

前阵子接手一个图数据的用户行为预测项目,最初跑得挺顺,后来每来一批新用户,模型效果就肉眼可见地掉。一开始我以为只是特征没做好,调了一周才意识到,问题出在我用的学习范式上——我一直在一张静态图上做转导式&#…

2026/10/20 21:30:50 阅读更多 →

日新闻

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
ESP32舵机控制指南:原理、多路驱动与避坑实战

ESP32舵机控制指南:原理、多路驱动与避坑实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
位移法实现一阶低通滤波:单片机ADC采样降噪实战

位移法实现一阶低通滤波:单片机ADC采样降噪实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/20 10:02:13 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/20 20:43:59 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/20 2:50:50 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 10:02:08 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:17 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:45 阅读更多 →