AI-translated from English; not yet reviewed by a fluent editor.

# 用 REA 检查 Electron 应用的行为

> REA 可梳理本地应用中的模块和 Electron 边界。本指南介绍如何依据证据追踪一项功能，并单独验证其行为。

By BIG CHANGE Editorial

Published: 2026-10-14T04:55:21.558Z
Updated: 2026-10-14T04:55:21.558Z
Canonical: https://bigchange.ai/blog/rea-static-electron-app-inspection-guide

![Conceptual charcoal illustration of an external storage drive beside a desktop monitor showing unlabeled file-tree and code-like lines.](https://bigchange.ai/api/media/file/rea-local-artifact-inspection-hero-v1.png)
AI-generated conceptual illustration by BIG CHANGE; no actual REA interface, application finding or runtime result is depicted.

即使没有应用的源代码树，REA 也能根据你有权检查的文件梳理本地 JavaScript 或 Electron 应用。实用的结果是一条针对某项行为的证据链：哪个模块提供该行为、调用在哪里跨越进程边界，以及哪些部分仍需另行检查。本指南使用的是 [REA 项目当前文档](https://github.com/morluto/rea/blob/main/README.md)，检查日期为 2026 年 10 月 14 日。BIG CHANGE 未在任何应用上运行 REA。

## 重大变化

- **发生了什么：** REA 可根据提供的应用目录或 ASAR，为编程代理生成结构化地图，涵盖模块、导入项、源映射、路由和 Electron IPC。每项发现都可追溯到产生它的文件。
- **为何重要：** 开发者调查某项功能时，可以先在打包应用中沿着具名 API 或 IPC 通道追踪，再决定手动检查什么。这样问题范围更窄，证据也更容易核验。
- **需要注意：** 静态代码路径只是候选路径，并不能证明应用运行时确实会走这条路径。关于具体行为的结论，仍需在获准的目标上进行独立观察或测试。

## 开始之前

本流程面向拥有本地 JavaScript 或 Electron 应用，或获准检查此类应用的开发者。你需要已解包的应用目录或其 `app.asar` 文件，以及该文件的绝对路径。REA 的 [包清单](https://github.com/morluto/rea/blob/main/package.json)列出`rea-agents` 版本 **6.4.0**，并要求使用 Node.js 22.x 系列的 22.19 或更高版本、24.x 系列的 24.11 或更高版本，或 26 及更高版本。还需要 npm。在 Linux 上，REA 的 JavaScript/Electron 静态分析还需要兼容 procps 的 `ps` 在 REA 的 `PATH` 用于检查进程归属，正如其 [安装指南](https://github.com/morluto/rea/blob/main/docs/installation.md#linux-owned-process-prerequisite)所述。这些是 REA 主机的要求，与目标应用程序本身的运行要求不同。

JavaScript 静态流程不需要 Hopper、Ghidra、IDA、浏览器或正在运行的 Electron 进程。这些工具属于 REA 的其他流程。请确认你有权检查目标，并保留原始文件副本，以便准确追溯每项结果对应的产物。请使用 [`morluto/rea`官方仓库](https://github.com/morluto/rea)或其链接的 npm 包；名称相似的仓库不能证明来源可靠。

## 1. 配置 REA 或使用一次性 CLI

对于已连接的编程代理，[文档中的配置命令](https://github.com/morluto/rea/blob/main/README.md#quick-start)为：

```sh
npx rea-agents setup
```

检查它对代理配置提出的更改，只批准你需要的部分，然后重启代理。如果只需在终端中检查，下面的文档命令会在本次运行中调用该包。`@latest` 会选择执行时的当前版本；请将解析出的版本与证据一并记录，因为输出细节可能变化。上文的 6.4.0 是本文 10 月 14 日检查时包清单所列的版本。

## 2. 分析提供的文件

将示例路径替换为获准检查的应用文件夹或 ASAR 的绝对路径：

```sh
npx -y rea-agents@latest analyze-javascript-application /absolute/path/to/app --json > app-evidence.json
```

CLI [指南](https://github.com/morluto/rea/blob/main/docs/cli.md)提醒，完整 Evidence 可能非常庞大。请将其保存为文件，再查看摘要或选定模块视图。不要把全部结果粘贴进提示词。若命令失败，请保留错误信息和目标路径以便排查；即使退出码为零，也可能存在覆盖不完整、警告或未解决发现。Windows 上，README 给出的路径示例为 `"D:/apps/example"`。

该[工件重建参考](https://github.com/morluto/rea/blob/main/docs/javascript-artifact-reconstruction.md) 表示该操作会将所选文件作为数据读取，而不会运行应用。它会盘点工件路径和摘要，解析可用的 JavaScript 与 TypeScript，并报告可能的入口点、导入项、源映射、路由、网络端点，以及 Electron preload 与 renderer 之间的连接、`contextBridge` API、IPC 调用和处理器，以及原生附加模块请求。预期结果是包含图谱、静态 Electron 摘要、覆盖范围和局限的 Evidence 记录。一个 `.node`绑定关系需要进一步检查，并不代表工具解码了该原生模块。

## 3. 追踪一项具体功能

选择一个名称可定位的功能，例如菜单操作或公开的 API 方法。记录用户可见名称，并在 REA 结果中查找对应模块、字面 IPC 通道或路由。按顺序追踪报告中的源位置：renderer 或页面调用、preload 桥接、IPC 传递、匹配的主进程处理器，再到处理器调用的文件或服务操作。REA 的 [Electron CSV 示例](https://rea.tools/guides/javascript/)展示了这种模式，涉及 `notes.exportCsv()`、通道 `notes:export`和主进程写入器。这些名称属于示例应用；你的目标应用会使用不同名称。

对每条关联，记录工件摘要、文件路径、位置及代码实际显示的内容。区分与某个处理器配对的字面通道、计算所得通道或不明确的配对。在把缺失模块或处理器视为不存在之前，先检查覆盖范围和局限字段。REA 指出，格式错误或无法读取的文件、缺失的 ASAR 附属字节、未解析表达式和有界分析都可能使关系无法确定。源映射可能显示原始源代码名称，但该工具不保证恢复原始源代码树。

## 4. 独立检查行为

根据静态路径写出一个可证伪的主张，例如：“此操作调用该通道，处理器会写入这种文件。”然后在获批测试环境中只执行这一操作，并直接观察结果：创建的文件、状态变化，或在你自己的权限下采集的跟踪记录。记录应用版本、工件摘要、测试步骤和观察结果。如果你无权运行应用，就将主张限定为静态代码路径。REA 示例明确指出，可以通过运行时捕获来验证推断路径；仅凭静态图谱无法知道实际执行了哪个分支。

当另一位开发者能找到相同源代码位置、看出静态配对的局限，并重复你的窄范围检查时，验证才算成功。分析命令成功本身既不能验证运行时行为，也不能证明应用被忠实重实现。

## 如果结果不完整

先确认路径指向完整解压目录或 ASAR，并且所需的`.asar.unpacked` 配套文件均已提供。查看 REA 的覆盖范围和诊断信息；源文件缺失或读取失败意味着未知，而非否定结论。对于大型应用，[参考资料](https://github.com/morluto/rea/blob/main/docs/javascript-artifact-reconstruction.md)记录了精确的 `--source-path`选择方式，但未选中的文件不在分析范围内。如果字面 IPC 匹配不明确或通道是计算所得，请检查引用文件并缩小问题范围。若歧义仍然存在，应在最终备注中保留说明。

REA 代码采用 MIT 许可证，但目标软件和任何外部分析引擎仍受各自许可证和条款约束。静态分析会在本地处理目标文件。若将 REA 发现发送给编程代理，模型提供方有自己的数据政策；在组织批准之前，不要发送秘密或专有输出。使用前请核对代理和可选引擎的条款与成本。该流程和包版本于 **2026 年 10 月 14 日**依据文档进行了检查。

## Sources

- [REA README](https://github.com/morluto/rea/blob/main/README.md) — 官方身份、配置、JS 分析命令、输出、Node 与 Linux ps 要求、本地处理及隐私边界。
- [REA 包清单](https://github.com/morluto/rea/blob/main/package.json) — rea-agents 6.4.0 及 Node 引擎版本范围。
- [JavaScript 与 Electron 分析指南](https://rea.tools/guides/javascript/) — 跟踪 renderer、preload 和 IPC 直至主进程处理器的实作示例；样例记录使用 REA 4.1.0。
- [JavaScript 工件重建](https://github.com/morluto/rea/blob/main/docs/javascript-artifact-reconstruction.md) — 静态范围、源选择、完整性、覆盖范围和未解析路径语义。
- [CLI 与 Evidence](https://github.com/morluto/rea/blob/main/docs/cli.md) — CLI 命令、Evidence 输出可能很大以及退出状态的局限。
- [REA 安装指南](https://github.com/morluto/rea/blob/main/docs/installation.md) — Linux 上兼容 procps 的 ps 是 JavaScript/Electron 静态分析的明确前置条件，指南还提供了排障建议。
