世界從未停止變化。RSS
BIG CHANGE.

Markdown 版本

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 靜態分析的明確前置條件,指南還提供了排障建議。