即使没有应用的源代码树,REA 也能根据你有权检查的文件梳理本地 JavaScript 或 Electron 应用。实用的结果是一条针对某项行为的证据链:哪个模块提供该行为、调用在哪里跨越进程边界,以及哪些部分仍需另行检查。本指南使用的是 REA 项目当前文档,检查日期为 2026 年 10 月 14 日。BIG CHANGE 未在任何应用上运行 REA。
重大变化
- 发生了什么: REA 可根据提供的应用目录或 ASAR,为编程代理生成结构化地图,涵盖模块、导入项、源映射、路由和 Electron IPC。每项发现都可追溯到产生它的文件。
- 为何重要: 开发者调查某项功能时,可以先在打包应用中沿着具名 API 或 IPC 通道追踪,再决定手动检查什么。这样问题范围更窄,证据也更容易核验。
- 需要注意: 静态代码路径只是候选路径,并不能证明应用运行时确实会走这条路径。关于具体行为的结论,仍需在获准的目标上进行独立观察或测试。
开始之前
本流程面向拥有本地 JavaScript 或 Electron 应用,或获准检查此类应用的开发者。你需要已解包的应用目录或其 app.asar 文件,以及该文件的绝对路径。REA 的 包清单列出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 用于检查进程归属,正如其 安装指南所述。这些是 REA 主机的要求,与目标应用程序本身的运行要求不同。
JavaScript 静态流程不需要 Hopper、Ghidra、IDA、浏览器或正在运行的 Electron 进程。这些工具属于 REA 的其他流程。请确认你有权检查目标,并保留原始文件副本,以便准确追溯每项结果对应的产物。请使用 morluto/rea官方仓库或其链接的 npm 包;名称相似的仓库不能证明来源可靠。
1. 配置 REA 或使用一次性 CLI
对于已连接的编程代理,文档中的配置命令为:
npx rea-agents setup检查它对代理配置提出的更改,只批准你需要的部分,然后重启代理。如果只需在终端中检查,下面的文档命令会在本次运行中调用该包。@latest 会选择执行时的当前版本;请将解析出的版本与证据一并记录,因为输出细节可能变化。上文的 6.4.0 是本文 10 月 14 日检查时包清单所列的版本。
2. 分析提供的文件
将示例路径替换为获准检查的应用文件夹或 ASAR 的绝对路径:
npx -y rea-agents@latest analyze-javascript-application /absolute/path/to/app --json > app-evidence.jsonCLI 指南提醒,完整 Evidence 可能非常庞大。请将其保存为文件,再查看摘要或选定模块视图。不要把全部结果粘贴进提示词。若命令失败,请保留错误信息和目标路径以便排查;即使退出码为零,也可能存在覆盖不完整、警告或未解决发现。Windows 上,README 给出的路径示例为 "D:/apps/example"。
该工件重建参考 表示该操作会将所选文件作为数据读取,而不会运行应用。它会盘点工件路径和摘要,解析可用的 JavaScript 与 TypeScript,并报告可能的入口点、导入项、源映射、路由、网络端点,以及 Electron preload 与 renderer 之间的连接、contextBridge API、IPC 调用和处理器,以及原生附加模块请求。预期结果是包含图谱、静态 Electron 摘要、覆盖范围和局限的 Evidence 记录。一个 .node绑定关系需要进一步检查,并不代表工具解码了该原生模块。
3. 追踪一项具体功能
选择一个名称可定位的功能,例如菜单操作或公开的 API 方法。记录用户可见名称,并在 REA 结果中查找对应模块、字面 IPC 通道或路由。按顺序追踪报告中的源位置:renderer 或页面调用、preload 桥接、IPC 传递、匹配的主进程处理器,再到处理器调用的文件或服务操作。REA 的 Electron CSV 示例展示了这种模式,涉及 notes.exportCsv()、通道 notes:export和主进程写入器。这些名称属于示例应用;你的目标应用会使用不同名称。
对每条关联,记录工件摘要、文件路径、位置及代码实际显示的内容。区分与某个处理器配对的字面通道、计算所得通道或不明确的配对。在把缺失模块或处理器视为不存在之前,先检查覆盖范围和局限字段。REA 指出,格式错误或无法读取的文件、缺失的 ASAR 附属字节、未解析表达式和有界分析都可能使关系无法确定。源映射可能显示原始源代码名称,但该工具不保证恢复原始源代码树。
4. 独立检查行为
根据静态路径写出一个可证伪的主张,例如:“此操作调用该通道,处理器会写入这种文件。”然后在获批测试环境中只执行这一操作,并直接观察结果:创建的文件、状态变化,或在你自己的权限下采集的跟踪记录。记录应用版本、工件摘要、测试步骤和观察结果。如果你无权运行应用,就将主张限定为静态代码路径。REA 示例明确指出,可以通过运行时捕获来验证推断路径;仅凭静态图谱无法知道实际执行了哪个分支。
当另一位开发者能找到相同源代码位置、看出静态配对的局限,并重复你的窄范围检查时,验证才算成功。分析命令成功本身既不能验证运行时行为,也不能证明应用被忠实重实现。
如果结果不完整
先确认路径指向完整解压目录或 ASAR,并且所需的.asar.unpacked 配套文件均已提供。查看 REA 的覆盖范围和诊断信息;源文件缺失或读取失败意味着未知,而非否定结论。对于大型应用,参考资料记录了精确的 --source-path选择方式,但未选中的文件不在分析范围内。如果字面 IPC 匹配不明确或通道是计算所得,请检查引用文件并缩小问题范围。若歧义仍然存在,应在最终备注中保留说明。
REA 代码采用 MIT 许可证,但目标软件和任何外部分析引擎仍受各自许可证和条款约束。静态分析会在本地处理目标文件。若将 REA 发现发送给编程代理,模型提供方有自己的数据政策;在组织批准之前,不要发送秘密或专有输出。使用前请核对代理和可选引擎的条款与成本。该流程和包版本于 2026 年 10 月 14 日依据文档进行了检查。



