news 2026/10/20 4:06:43

REA 逆向工程指南:从二进制到能构建的代码

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
REA 逆向工程指南:从二进制到能构建的代码

REA 逆向工程指南:从二进制到能构建的代码

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

REA 是一款开源 AI 逆向工程工具(npm 包名rea-agents,当前版本 6.7.0),它把你的 Agent 接到本地分析引擎上,让你在没有源码的情况下检查原生二进制、JavaScript/Electron 应用和 .NET 程序集,且每个结论都附带证据。这篇指南带你在 15 分钟内把它跑起来,并学会怎么向它提问。

逆向总是半途而废:三个常见痛点

大多数人在逆向中卡住,原因不在工具,而在流程:

  • 看得懂,复现不了:反汇编工具给出一屏屏指令,你追着一个函数走了十分钟,上下文散了,结论记不住;
  • 没人核对你的结论:让 AI"讲讲这个功能",它给出的解释里观察和猜测混在一起,你分不清哪句可信;
  • 引擎太重:Hopper、Ghidra、IDA 各有工作流,想让 Agent 替你操作它们,还得先解决"Agent 怎么调引擎"的问题。

针对这三点,本文反复用一句话:收据原则——结论要配收据。REA 的每次分析结果都带一条Evidence(证据记录)和 ID,就像购物小票:没有收据,就不算数。

收据原则:Agent、MCP 与引擎的分工

REA 的架构像一家"前台":你的 Agent 只提需求,前台查单子、调柜台,把结果连同小票一起递回来。落到项目里就是三方分工:

  • Agent:通过MCP(Model Context Protocol)调用 REA 的工具,追问、解释、写代码、测试;
  • REA:MCP server + CLI,负责选择分析路径、管理会话,并给每个结果附上 Evidence ID;
  • 分析引擎:原生二进制走 Hopper、Ghidra 或 IDA;静态 JavaScript/Electron 与 .NET 分析不需要任何引擎。

REA 还内置了 6 个引导式调查工作流:investigate_feature、compare_application_versions、verify_reconstruction、trace_crash、audit_residual_unknowns、prepare_bounded_process_capture(见 docs/mcp-prompts.md)。这些工作流都要求 Agent 把"观察、推断、未知"分开陈述——这正是收据原则的制度化版本。环境门槛不高:Node.js 22.x(>=22.19)、24.x(>=24.11)或 26+,加 npm 即可。

上手场景一:分析 Electron 应用,零引擎

这条路线完全静态,读文件、不运行目标应用,适合"我想知道这个应用内部怎么组织"。

npx rea-agents setup

按提示勾选你的 Agent(Claude Code、Codex、Cursor、Gemini CLI、Grok Build 等),审阅并批准配置改动,然后重启 Agent。完整支持列表与手动注册方式见 docs/installation.md。

不想接 Agent 也可以直接用命令行,对一个已解包的 Electron 目录或.asar做静态分析:

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

结果包含模块、导入、Electron 边界、IPC 与原生插件关系,每条都带 Evidence。真实应用的结果可能有数百 MB(docs/cli.md 给了 Obsidian 的例子:约 334 MB 的 Evidence),所以先看摘要:

jq -c '{source: {kind: "inline", evidence: .}, view: {kind: "summary"}}' app-evidence.json

接上 Agent 后,用这样的提示词就能得到一份可核对的报告(注意最后半句,这是收据原则的用法):

分析这个 Electron 应用的模块和 IPC 边界, 每个结论附上 Evidence ID,无法确认的项标成 Unknown。

上手场景二:把未知二进制交给 Agent

原生分析需要先选引擎。各家定位不同,先看这张表再装东西:

选择适合什么备注
不装引擎JavaScript/Electron、.NET 静态分析只要 Node.js,上文场景一
Ghidra免费开源的通用方案用你已有安装,另支持 16 位 DOS
Hopper原生二进制深度分析setup 可在批准后安装 Hopper
IDA专业反编译工作流用你已有安装
objdump / Rizin轻量离线检查需你自行提供工具,REA 不代装

引擎就绪后,提示词保持"要函数级证据 + 列覆盖缺口"的写法:

追踪这个二进制的启动流程,给我入口函数和前三个调用, 每个结论附 Evidence ID,并列出伪代码没覆盖到的部分。

CLI 的 provider 选择、快照与退出码说明都在 docs/cli.md。

选型建议:REA 适合谁,不适合谁

适合你,如果:

  • 你手里有一个具体目标(一个 APK、一个二进制、一个 Electron 目录),要的是可追溯的分析结论,而不是一次性的"大概看看";
  • 你已经在用支持本地 MCP server 的 Agent,希望它替你完成"打开引擎 → 定位 → 取证"的体力活。

不适合你,如果:

  • 你期望直接得到一份反编译源码包——REA 返回的是伪代码、汇编和证据记录,实现代码要靠 Agent 基于这些证据写出来;
  • 目标无法在本地运行,而你需要的是运行时行为——部分进程捕获、浏览器观察类工作流需要真实的目标环境。

另外记住边界:REA 面向你拥有或有权分析的软件,用于合法研究、教育与互操作(见 README.md 中的 Disclaimer 一节)。

开始前的四个避坑点

  1. 别把大 Evidence 直接喂给模型。先jq投影出 summary 或单个模块页,Agent 读摘要再追问细节,效果和速度都更好。
  2. 分清静态和运行时。静态 JavaScript/.NET 分析只读文件、不运行目标;进程捕获、浏览器观察是另一套工作流,会真实运行目标,用前先看对应文档说明的影响范围。
  3. 商业引擎的许可证自己负责。REA 不提供 Hopper、IDA、JEB 的授权,setup 安装 Hopper 也需你明确批准。
  4. 排障先升级。REA 迭代很快,遇到怪问题先跑rea update再报 bug。

收据原则值得再复述一遍:

结论要配收据:每个断言后面跟一个 Evidence ID,查不到就写 Unknown。 逆向的终点不是"看懂了",而是代码落进你的项目、且每一步都能回查。

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

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/20 4:06:35

技能图谱构建:从简历解析到职业能力量化

我无法基于当前输入生成符合要求的博文。原因如下:输入中仅提供了项目标题"skills",未提供任何实质性的项目正文、关键词列表、摘要描述或可分析的上下文信息;所谓“相关热搜词”和“最新网络热词”字段为空,未给出具体…

作者头像 李华
网站建设 2026/10/20 4:05:42

WDM-PON如何支撑5G前传的确定性低时延与硬隔离需求

1. 项目概述:WDM-PON 网络为何成为5G承载的“隐形脊梁”你可能已经注意到,身边5G基站越建越多,但手机信号满格时刷4K视频依然卡顿,或者某园区刚完成5G专网覆盖,却在接入200台工业终端后出现时延飙升——这些不是5G本身…

作者头像 李华
网站建设 2026/10/20 4:05:27

PyTorch实战:手写数字识别从零到99%准确率

1. 手写数字识别项目整体设计与思路拆解手写数字识别这个题目,放在深度学习入门里,地位大概相当于编程语言里的“Hello World”。但别小看它,能把MNIST这个数据集从头到尾跑通、调好、理解透,基本就摸到了图像分类任务的门道。我见…

作者头像 李华
网站建设 2026/10/20 4:05:24

一站式AI能力接入平台:统一接口与模型动态路由实战

做AI应用开发这一年多,我最大的感受是:时间根本没花在写业务逻辑上,而是全耗在对接各种大模型API上了。今天聊的“老张API”这个项目,就是冲着这个痛点去的——它把自己定位成一站式AI能力接入平台,核心就一句话&#…

作者头像 李华
网站建设 2026/10/20 4:05:21

.NET SDK 工程化改造:Artifacts输出与集中包管理实战

最近在帮团队把几个老的 .NET 解决方案往现代 SDK 风格迁移,越干越觉得,.NET 这些年构建和发布方式的变化,真的被很多人低估了。前两篇聊了聊整体趋势和发布模型,这篇作为系列第三篇,我打算把重点放在最实在的工程化改…

作者头像 李华
网站建设 2026/10/20 4:04:38

SSM+Flask双引擎驱动的服装搭配推荐系统设计与实现解析

1. 项目核心拆解:这套“穿戴搭配系统”到底在解决什么问题先聊两句题外话。我在很多场合看过类似的项目,标题长得像购物车一样——Java、SSM、Flask、搭配、穿搭、配饰、调试文档、讲解视频,加起来一长串。说实话,这不是单纯的“服…

作者头像 李华