REA 逆向工程快速上手:读懂二进制里的功能,再复刻进自己的项目

REA 逆向工程快速上手:读懂二进制里的功能,再复刻进自己的项目

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

REA 是一个面向 AI Agent 的逆向工具。你把本地 App 的二进制交给它,它替你完成反编译、调用链追踪和证据整理,让你在没有源码的情况下搞懂某个功能如何实现,并用自己熟悉的语言复刻出来。

REA 的调查桥接把原生二进制带进 Hopper 反汇编器:左侧是逐段反汇编的原始指令,右侧面板同步展示程序入口、分析日志和地址导航历史。

🚀 两步接入:一条命令加一句话

把 REA 接进你的 AI 编程助手,只需要一条命令(需要 Node.js 22 及以上版本):

npx rea-agents setup

Setup 会列出支持接入的 Agent(Claude Code、Cursor、Codex、Gemini CLI、VS Code 等二十多款),展示它打算改动的配置,你确认后才写入。重启 Agent 之后,直接开口,比如:

分析这个桌面上的音乐应用,弄清 EQ 预设为什么在没有网络时也能同步到所有设备,把证据链展示给我,然后用 Python 在我的项目里实现同样功能。

这句话会触发完整的逆向调查流程。不想用 Agent 也没关系,终端里有同等能力,下一节会给出命令。

🍳 三道工序:像后厨复刻一道菜一样逆向

想象你去一家餐厅尝到一道惊艳的菜,想在自己家复刻。你不能把整家店搬回家,只能走三步:先确认它用了什么原料,再还原它是怎么做的,最后自己动手做一道相似的。REA 的逆向流程就是这三道工序,只是对象换成了二进制文件。

第一道工序:开火前,先把原料摊在桌上

对 REA 说"打开这个二进制",它先做盘点:识别架构与文件格式,然后从二进制里批量提取字符串、符号名和函数名,比如搜preset、sync、sqlite这类关键词,标记出值得深挖的入口。

这一步的产出是一份原料清单,而不是一份菜谱。你拿到的是"这些名字和符号存在于文件里"这一类事实,至于它们之间如何协作,此时还一无所知。

第二道工序:看清每一步烹饪的手法

原料清单在手,接着回答"它们是怎么被使用的"。围绕第一道工序找到的入口,Agent 会做三件事:

  • 交叉引用(find_xrefs_to_name、xrefs、procedure_callers):查谁调用了这个函数,把调用关系一张一张摊开;
  • 控制流重建(get_call_graph、procedure_callees、procedure_info):看清函数内部又流向哪里;
  • 反编译关键例程(procedure_pseudo_code、procedure_assembly、batch_decompile):把核心函数翻译成可读的伪代码。

继续按音乐应用走:从save_preset这个名字出发,一路追到写入本地数据库的那段调用。走完这一道,你手里是一条"从用户点击到数据落盘"的完整执行链路,而不是一堆孤立函数的解释。链路里哪些环节看清了、哪些还不确定,REA 会明说。

第三道工序:复刻自己的版本

前两道工序攒下的证据现在派上用场。对 Agent 说"基于上面的分析,用 TypeScript 和 SQLite 在我的项目里实现类似功能",它带着函数行为证据,用自己的普通编码工具完成实现。注意它会把两类信息分开放置:从原应用观察到的行为,和你自己项目里做的设计选择。这一步的产出是一段可运行的代码,而不是对原应用的克隆。

🗺️ 能力全景:能查什么、交给谁查

深度分析原生二进制需要 Hopper、Ghidra 或 IDA 三选一;静态查 JavaScript 和 .NET 则完全不需要任何引擎。主要目标类型如下:

目标类型REA 交给你什么前置要求
原生二进制伪代码、汇编、字符串、符号、调用与引用Hopper / Ghidra / IDA 之一
JavaScript / Electron模块、导入关系、源映射、IPC 边界无需分析引擎
.NET 程序集元数据与 CIL 指令清单纯静态,无额外要求
Go / Rust / WASM / EVM内嵌编译信息、依赖清单、字节码结构部分需你自备对应工具
SQLite 数据库表、列、索引、有界样例行本地数据库快照
Android APK / 真机清单、反编译方法;设备日志与截图JADX、adb 等
网站 / 网络抓包页面结构、脚本、HAR 与 SAZ 请求Chrome 系浏览器;抓包需相应工具
进程行为终端输出、退出码、文件系统观察Linux / macOS 原生 PTY

完整目标清单和各项前提,见 docs/ 目录下的分类指南。

⚖️ 诚实边界:REA 明确不做什么

  • 不恢复原始源码。反编译得到的是伪代码,REA 会标注它与原源码的差异,不会假装拿回了工程文件。
  • 不克隆应用。第三道工序是理解后自己重写,不是把整个 App 复制进你的项目。
  • 结论分级。每条发现都标注属于观察、推断还是未知,并附 Evidence ID。这和凭几张截图猜源码的"玄学逆向"完全是两回事。
  • 分析全部在本地运行。REA 不把目标文件上传到任何服务器。
  • 不代装商业工具。IDA、Hopper 的授权由你自行合法获得,REA 只调用你已有的安装。

⌨️ 实用命令速查

Agent 和终端走的是同一套分析流程,常用命令:

  • npx rea-agents setup—— 把 REA 接入你的 Agent,含配置预览与备份;
  • npx -y rea-agents@latest analyze-javascript-application /path/to/app --json—— 静态分析 JavaScript/Electron 应用,无需任何引擎;
  • rea analyze /path/to/program --provider ghidra --json—— 打开原生二进制并出总览;
  • rea search /path/to/program "preset" --provider ghidra --json—— 在二进制里搜字符串;
  • rea decompile /path/to/program 0x1000 --provider ghidra --json—— 反编译指定地址的伪代码;
  • rea xrefs /path/to/program 0x1000 --provider ghidra --json—— 查看某地址的交叉引用;
  • rea trace /path/to/program "preset" --provider ghidra --json—— 有界追踪一条关键词链路;
  • rea inspect-go-binary /path/to/program --json—— 读取 Go 二进制的内嵌构建信息,免装 Go;
  • rea providers --json/rea capabilities --json—— 列出可用引擎与能力;
  • rea doctor --provider ghidra --json—— 诊断某个分析引擎的配置问题;
  • rea update—— 更新 CLI 到最新版本。

📚 资源导航

  • 安装与诊断:安装与 Agent 配置、MCP 客户端配置
  • CLI 与证据契约:CLI 与 Evidence 指南、MCP 工具契约、Agent 提示词设计
  • 分类分析指南:原生二进制调查、JavaScript 应用工作流、Android 分析、离线 EVM 字节码、SQLite 数据库
  • 复刻与就绪度:复刻就绪度验证、复刻义务台账
  • 工作流定义与源码:调查技能 SKILL.md、调查应用层、组合层

下一步

把 REA 接上你的编程助手,挑一个你日常在用的 App 和一个想弄明白的功能,从第一道工序开始拆。原料清单到手之后,菜怎么做的就已经藏不住了。

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

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

相关新闻

LLM提示词质量监控与告警体系:从指标设计到落地实践

LLM提示词质量监控与告警体系:从指标设计到落地实践

1. 为什么提示质量也要“上监控”:一次深夜告警带来的反思先讲一段我自己的经历。某天凌晨两点,手机连续震了十几下。打开一看,某智能客服机器人系统的运行时错误率没有异常、服务也没有宕机,但对话质量评估看板上的指标跌到了阈值…

2026/10/20 19:26:56 阅读更多 →
CentOS 7 离线安装 NVIDIA 驱动与 CUDA 的 runfile 实战指南

CentOS 7 离线安装 NVIDIA 驱动与 CUDA 的 runfile 实战指南

1. 为什么在 CentOS 7 上折腾 CUDA 和 GPU 驱动值得单独写一篇在 Linux 服务器上装显卡驱动和 CUDA,看起来是个老生常谈的话题,但真正动手做过的人都知道,这件事的坑远比想象中多。尤其是 CentOS 7 这个系统,虽然官方已经停止维护…

2026/10/20 19:26:56 阅读更多 →
AI辅助论文写作:3天出初稿的完整实操方法论

AI辅助论文写作:3天出初稿的完整实操方法论

论文这件事,折磨人的从来不是“写”这个动作本身,而是“不知道从哪写起”。选题拿不定、大纲建不起来、文献堆成山却一句都用不上、写到一半发现逻辑断了——这些才是让人在电脑前一天坐八小时、进度条却纹丝不动的真正原因。我见过太多基础完全够用的同…

2026/10/20 19:26:55 阅读更多 →

最新新闻

基于拍卖机制的多智能体动态任务分配与Matlab仿真实践

基于拍卖机制的多智能体动态任务分配与Matlab仿真实践

做多智能体任务分配的时候,我最担心的不是算法收敛不收敛,而是现场环境一变,整个分配方案就得推翻重来。后来我在多个机器人协同仿真项目里尝试了基于拍卖机制的分散式任务分配,发现这套思路在动态环境下格外稳,而且用…

2026/10/20 20:06:20 阅读更多 →
交换机命令实战:VLAN划分、Trunk与链路聚合在局域网组网中的应用

交换机命令实战:VLAN划分、Trunk与链路聚合在局域网组网中的应用

1. 项目概述与组网前的准备1.1 这个项目到底在解决什么问题先说结论:这篇不是教你背命令的字典式教程,而是把交换机常用命令放回真实的局域网组网场景里,告诉你“什么时候该敲什么、敲完怎么验证、出了问题怎么排查”。局域网组网这件事&…

2026/10/20 20:06:20 阅读更多 →
Kafka消息重试机制详解:从参数配置到死信队列的完整设计指南

Kafka消息重试机制详解:从参数配置到死信队列的完整设计指南

凌晨两点被电话叫醒,这种事情做过实时数据的人应该都懂。那次是某个核心业务的消费组 lag 从几百一路飙到几十万,下游接口超时,消费线程全部卡在同一批消息的重试上,新消息进不来,旧消息处理不完,告警群瞬间…

2026/10/20 20:06:20 阅读更多 →
Vue+SpringBoot社区医疗系统毕设实战:从跑通环境到二次开发避坑指南

Vue+SpringBoot社区医疗系统毕设实战:从跑通环境到二次开发避坑指南

简介:这套基于Vue与SpringBoot的社区医疗服务系统设计资源,面向计算机相关专业毕业生、课程设计及期末大作业人群,可作全栈项目参考或二次开发基础。系统围绕社区居民医疗健康需求,涵盖预约挂号、健康档案、线上问诊、药品配送等典…

2026/10/20 20:06:20 阅读更多 →
CNN水果识别毕设全流程:从数据构建到模型评估与答辩

CNN水果识别毕设全流程:从数据构建到模型评估与答辩

1. 毕设选题之前,先想清楚"水果识别"到底在考察什么每年到了大三暑假,总有一批同学开始焦虑毕设题目的选择。我的建议一贯是:不要一开始就盯着"我要做一个多炫的系统",而是想清楚"这个题目能让我把哪些核…

2026/10/20 20:06:20 阅读更多 →
IIEM海面散射系数MATLAB实现:二重积分与数值陷阱解析

IIEM海面散射系数MATLAB实现:二重积分与数值陷阱解析

简介:提供一套开源的改进积分方程模型(IEM)Python实现,面向粗糙表面电磁散射研究,适用于遥感、雷达成像等需要二重积分数值计算的场景,为已有一定编程基础的科研与工程人员提供可直接运行的基础代码。整套资…

2026/10/20 20:05:13 阅读更多 →

日新闻

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/19 17:32:41 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

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

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在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 阅读更多 →