news 2026/10/15 15:01:14

REA实战完整指南(2026年10月):从 Electron 静态分析到原生二进制与浏览器追踪

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
REA实战完整指南(2026年10月):从 Electron 静态分析到原生二进制与浏览器追踪

发布日期:2026-10-15

REA(Reverse Engineer Anything)是 morluto/rea 项目提供的开源 MCP 与 CLI 工具:它把 JavaScript/Electron、原生二进制、网站和运行时观察接到同一套调查流程中,让 Agent 根据本地分析证据解释功能、追踪调用关系,再辅助实现相似功能。REA 的rea-agents6.5.0 于 2026 年 10 月 14 日发布,运行要求是 Node.js 22.19+、24.11+ 或 26+,并配合 npm 使用。它适合分析自己拥有或获授权检查的目标,不能把“逆向一切”理解成自动还原任意软件源码。REA 的价值在于把问题拆成可复核的证据链:目标文件或页面 → 模块、调用、请求或指令 → Evidence → Agent 的解释与验证。静态 JavaScript 分析不需要启动目标应用;运行时观察则会按当前用户权限执行或交互目标。


先理解 MCP、Skill 和 CLI 的分工

REA 不是单独的反编译器,而是连接 Agent、分析提供方和证据结果的工作流层。

  • MCP负责把分析工具暴露给支持本地 MCP 的 Agent。
  • Skill提供调查顺序和证据处理规则,告诉 Agent 什么时候继续追踪、什么时候保留未知项。
  • CLI让开发者在终端直接运行同一类工作流,适合脚本化和批量保存结果。

截至 2026 年 10 月 15 日,GitHub API 返回morluto/rea有 242,640 个 Star;这个数字只能说明项目关注度,不能证明某个目标一定能被完整分析。REA 官方 README 也明确区分了支持范围:原生深度分析依赖 Hopper、Ghidra 或 IDA,静态 JavaScript 和 .NET 检查则不需要原生分析引擎。

第一步:安装并先做一次只读检查

安装 REA 前先检查 Node.js 版本:

node--versionnpm--version

在 Codex 中接入时,先用 dry-run 查看将要修改的配置和 Skill 路径:

npx rea-agents@latest setup--clientcodex --dry-run--json

确认计划后再执行正式设置:

npx rea-agents@latest setup--clientcodex

设置向导会单独展示 npm 下载确认和 REA 配置变更。查看计划、批准后再写入配置,完成后重启 Codex。需要经常从终端使用时,可以安装全局 CLI:

npminstall--globalrea-agents rea--help

第二步:用 Electron 示例练习完整证据链

Electron 是最适合第一次实战的目标,因为官方指南说明,分析已解包的应用目录或 ASAR 不需要安装或启动 Electron。以 Notes 示例为例,用户点击导出按钮后,调用链通常是 renderer 暴露的 API → preload 的ipcRenderer.invoke→ main 进程的ipcMain.handle→ 写出 CSV 文件。

先对目标目录做静态分析,并把完整结果保存下来:

npx-yrea-agents@latest analyze-javascript-application\"/absolute/path/to/notes-example"--json>app-evidence.json

REA 返回的结果包含模块、导入关系、Electron 边界和 Evidence。完整 Evidence 可能很大,官方 CLI 文档建议先投影摘要,再查看模块页:

jq-c'{source: {kind: "inline", evidence: .}, view: {kind: "summary"}}'\app-evidence.json>app-view.json rea inspect-analysis-view app-view.json

在结果中优先查看normalized_result.summary.ipc,确认 IPC 通道和处理函数,再根据normalized_result.graph的源码位置追踪具体实现。通道或处理程序无法确定时,保留“未知”比猜测函数名更可靠;必要时再进入运行时观察。

第三步:从浏览器动作追到网络请求

如果问题发生在网页上,可以让 REA 观察真实页面,而不是只读打包后的脚本。官方浏览器指南要求使用 Chrome 系浏览器的远程调试端口,Linux 示例命令如下:

google-chrome\--remote-debugging-port=9222\--user-data-dir=/tmp/rea-notes-browser\https://rea.tools/examples/notes-web/

列出页面目标后,捕获 10 秒的页面、可访问性文本和 JSON 结构:

npx-yrea-agents@latest list-browser-targets\http://127.0.0.1:9222--jsonnpx-yrea-agents@latest inspect-web-page\http://127.0.0.1:9222 TARGET_ID\--observation-ms10000\--include-accessibility-text\--include-json-body-shapes--json

需要定位脚本来源时,再加--include-script-sources。官方示例中,页面导出动作触发对notes.json的 GET 请求,脚本读取notes[]后组装 CSV。要记住观察窗口只覆盖捕获期间发生的请求,早于捕获开始的网络活动不会自动补回。

第四步:需要原生分析时,再选择提供方

原生二进制分析的前置条件比 JavaScript 更重。先列出当前环境可用的提供方和能力:

rea providers--jsonrea capabilities--jsonrea doctor--providerghidra--json

配置好 Ghidra、Hopper 或 IDA 后,再运行具体查询。下面的命令来自官方 CLI 指南:

rea analyze"/absolute/path/to/program"\--providerghidra--jsonreafunction"/absolute/path/to/program"main\--providerghidra--jsonrea decompile"/absolute/path/to/program"0x1000\--providerghidra--jsonrea xrefs"/absolute/path/to/program"0x1000\--providerghidra--json

REA 官方原生指南提醒,伪代码可能遗漏细节,结论应同时对照指令、常量、调用者和交叉引用。以官网 DX-Ball 案例为例,重建函数通过 3,205 个输入对比并复现了 63 个编译后字节;这是该案例的验证结果,不能当作所有目标的性能承诺。

实战中怎样判断结果是否可信

可以按下面的顺序收敛问题:

  1. 先静态、后运行时。先读取文件、模块和调用关系,只有静态证据不足时才启动页面或进程观察。
  2. 先小范围、后扩展。先查一个功能或一个模块,再扩大到完整应用,避免一次生成难以阅读的大型 Evidence。
  3. 把未知项写出来。未解析的 IPC、调用目标或数值应保留为限制,并转化为下一条调查问题。
  4. 保存可复用结果。原生分析可以用--snapshot保存结果,后续在目标字节、参数和提供方一致时复用;Evidence 也可以导出后进行比较。
  5. 只分析获授权目标。运行时捕获可能以当前用户权限执行或交互目标,Hopper、IDA、JEB 等商业工具的许可也需要由使用者自行取得。

如果后续要把 REA 与其他 MCP 服务放进同一套 Agent 编排,七牛云 MCP 使用说明列出了标准 MCP 的 SSE 与 HTTP-Streamable 接入方式;这属于外围接入参考,REA 的本地安装、目标分析和权限边界仍以 REA 官方文档为准。

结语

REA 实战最稳妥的入口是已解包的 JavaScript/Electron 应用:不需要先装反汇编器,就能从模块、IPC 和源码位置建立第一条证据链。浏览器分析适合追踪页面动作与网络请求;原生二进制则要把提供方、文件格式、伪代码限制和交叉引用一起纳入判断。本文数据和版本信息截至 2026 年 10 月 15 日,后续使用应以 REA 官方 README、6.5.0 Release 和官方指南为准。

参考资料

  • REA 官方仓库与中文 README:https://github.com/morluto/rea
  • REA 6.5.0 Release:https://github.com/morluto/rea/releases/tag/rea-agents-6.5.0
  • rea-agentsnpm 包:https://www.npmjs.com/package/rea-agents
  • REA 官方中文入门:https://rea.tools/zh-CN/get-started/
  • REA JavaScript/Electron 指南:https://rea.tools/zh-CN/guides/javascript/
  • REA 浏览器与网络指南:https://rea.tools/zh-CN/guides/browser/
  • REA 原生二进制指南:https://rea.tools/zh-CN/guides/native/
  • REA CLI 与 Evidence 文档:https://github.com/morluto/rea/blob/main/docs/cli.md
  • MCP 使用说明:https://developer.qiniu.com/aitokenapi/12984/mcp-user-manual
  • 七牛云Token Plan:https://www.qiniu.com/ai/plan
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/15 15:01:12

2002-2025年地级市营商环境词频面板数据

一、数据概况 营商环境建设成效是衡量地方政府治理水平的重要维度,而政府工作报告作为观察政策取向的窗口,其文本用语的变化能够直观反映各地对营商环境议题的重视程度。本数据以2002年至2025年间全国地级市政府工作报告为文本来源,运用Pyth…

作者头像 李华
网站建设 2026/10/15 15:01:11

财务AI六大场景的难度分层:前三个已经落地,后三个为什么难

阿里云《2026 财务 AI 应用白皮书》把企业财务的 AI 应用拆成六大场景。但从近两年公开的落地项目看,真正跑起来、并且被业务部门持续使用的,基本都集中在前三个。报销、对账、合同这三件事,AI 已经能接手了。合并、预算、经营分析&#xff0…

作者头像 李华
网站建设 2026/10/15 15:00:54

InnoDB事务与锁机制深度解析:从ACID原理到高并发实战

1. 为什么“事务”不是数据库的装饰品,而是生存底线很多人第一次接触 InnoDB,是在学 SQL 的时候被一句“MySQL 默认自动提交”轻轻带过。后来写业务代码,看到BEGIN、COMMIT、ROLLBACK,也只当是语法糖——直到某天凌晨三点&#xf…

作者头像 李华
网站建设 2026/10/15 15:00:10

opencode下载与使用教程:把 settings 改到 TaoToken 的完整配置流程

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

作者头像 李华
网站建设 2026/10/15 14:59:32

XHEDITOR集成MathJax实现LaTeX公式网页渲染

1. 项目背景与需求解析在半导体行业的技术文档编写中,数学公式是不可或缺的组成部分。传统方案通常面临以下痛点:研发人员习惯使用LaTeX编写技术文档,但企业内部知识管理系统需要HTML格式直接粘贴LaTeX源码会导致网页显示乱码截图插入公式方案…

作者头像 李华