---
title: "REA AI 逆向工程原理與複製限制"
locale: zh-hant
category: knowledge_base
category_name: "知識庫"
translation_status: reviewed
license: cc_by
author: "injoys"
source_url: https://injoys.com/en/articles/rea-ai-reverse-engineering-capabilities-and-limits
published_at: 2026-10-19T23:23:10+09:00
---

# REA AI 逆向工程原理與複製限制

> REA 讓 AI 代理透過既有分析工具調查軟體。它不保證還原原始程式碼或複製出完整成品；在 ArtCraft 案例中，也應區分功能實作與實務完成度。

## Key Points

- REA 是將 Ghidra、Hopper、IDA 等工具與 AI 代理連結的逆向工程工具。
- 反編譯結果是解讀程式運作的線索，並不等同於原始程式碼。
- REA 的 Evidence 紀錄有助於追蹤分析依據與局限，但不保證準確性。
- FilmCraft 在 2026 年 10 月 10 日的自我評估中，分別呈現功能範圍與實務準備程度。
- CLI 與 MCP 支援拓寬了應用程式的自動化途徑，但不能取代效能與相容性驗證。

REA 是協助 AI 在沒有原始碼的情況下分析應用程式的逆向工程工具。它串接現有的分析器，支援重新實作功能。但它不保證能完整還原原始碼，也無法證明軟體時代已經結束。

以下完成度數值依據 FilmCraft 於 2026年10月10日進行的自行評估。

## 什麼是 REA？

REA 是 Reverse Engineer Anything 的縮寫。逆向工程是從完成的程式調查其結構與運作方式。REA 讓 AI 代理程式呼叫這項工作所需的工具。

連接方式包括 MCP 和 CLI。MCP 是連接 AI 與外部工具的協定。使用 CLI 時，則是在終端機輸入指令來操作。支援對象可參閱 [REA README](https://github.com/morluto/rea)。

| 組成部分 | 負責的工作 | 解讀結果時的判斷依據 |
| --- | --- | --- |
| AI 代理程式 | 設定調查問題並解讀結果 | 確認說明是否附有依據 |
| REA | 呼叫工具並傳遞分析結果 | 確認分析範圍與遺漏事項 |
| Ghidra·Hopper·IDA | 分析執行檔的內部結構 | 確認支援格式及各分析器的限制 |
| 執行觀察工具 | 觀察實際運作與輸出 | 確認測試輸入與執行環境 |

REA 和 ArtCraft 是分工不同的專案。REA 負責串接分析工具。ArtCraft 的 Crafting Apps 則是執行編輯工作的應用程式。不能只因為這兩個專案都存在，就斷定它們的製作過程有所關聯。

## 能從執行檔了解什麼？

反編譯是將執行程式碼轉換成人較容易閱讀的形式。其結果不能視為與原始碼相同，因為原有的名稱與註解可能在編譯過程中消失。

Ghidra 是由 NSA 開發及維護的逆向工程工具，提供反編譯與指令分析功能，也支援自動化和執行指令碼。功能範圍列於 [Ghidra README](https://github.com/NationalSecurityAgency/ghidra)。

| 分析對象 | 可取得的線索 | 無法只憑線索確定的內容 |
| --- | --- | --- |
| 原生執行檔 | 偽程式碼、指令、字串、呼叫關係 | 原先撰寫的完整原始碼 |
| JavaScript·Electron 應用程式 | 模組、匯入關係、應用程式內部連結 | 僅在伺服器執行的實作 |
| 網站 | 畫面結構、指令碼、觀察到的通訊 | 伺服器的完整程式碼與非公開資料 |
| 執行中的程式 | 輸出、互動、檔案變化 | 所有未測試輸入的運作方式 |

在用戶端觀察到的請求，可以作為分析伺服器的線索。但僅憑這些請求，無法完整還原伺服器內部。REA 對各類對象的支援範圍也在[官方 README](https://github.com/morluto/rea) 中分別列明。

## REA 如何協助 AI 分析？

REA 會挑選所需的分析結果並傳遞，同時保存依據。這種結構減少了 AI 反覆讀取冗長完整輸出的負擔。工作流程可參閱官方 CLI 文件與 MCP 規格。

### 只讀取所需部分的結構

REA 可以從儲存的分析結果中擷取摘要或部分項目，藉此將調查範圍縮小到特定函式或模組，減少將大量結果直接放入對話的負擔。使用方式見 [CLI and Evidence 文件](https://github.com/morluto/rea/blob/main/docs/cli.md)。

### 重複使用分析狀態與結果

串接 Ghidra 時，反編譯器會維持在已開啟的程式中。MCP 工作階段可以保存分析依據。但個別執行的 CLI 分別屬於不同程序。可維持的範圍見[安裝文件](https://github.com/morluto/rea/blob/main/docs/installation.md)。

### 留下依據的 Evidence 紀錄

Evidence 是記錄分析結果依據與限制的資料。未觀察到的項目可以保留為未確認狀態，不會只因結果為空，就斷定某項功能不存在。這項區別列於 [MCP runtime contracts](https://github.com/morluto/rea/blob/main/docs/mcp-contracts.md)。

可以把 Evidence 比作收據。但有收據不代表解讀一定正確。重要結論仍須重新比對原始依據與測試結果。

## ArtCraft 應用程式重新實作了什麼？

ArtCraft 公開了執行常見創作工作的 Rust 應用程式。官方清單會標示初期 Alpha 版或開發中的狀態。是否免費公開，以及能否取代實務工作，必須分開判斷。清單可參閱 [Crafting Apps 頁面](https://getartcraft.com/apps)。

| 應用程式 | 主要工作 |
| --- | --- |
| PhotoCraft | 影像編輯 |
| VectorCraft | 向量插畫製作 |
| FilmCraft | 影片剪輯 |
| LightCraft | 照片管理與 RAW 顯影 |
| PdfCraft | 開啟 PDF 與文件處理 |
| EffectCraft | 動態圖像與視覺效果 |
| DesignCraft | 頁面編排與出版編輯 |

PhotoCraft 標榜重新實作 Photoshop 的工作功能。FilmCraft 則標榜重新實作 Premiere Pro 的工作功能。這是開發團隊說明的專案目標，並非已獨立證實完全相容的結果。

## 比較功能實作與實務完成度

具備某項功能，不等於能投入實務使用。FilmCraft 分別評估這兩個項目。2026年10月10日的比較對象是 Premiere Pro 26.5.2。

| FilmCraft 自行評估項目 | 公開數值 | 數值所描述的範圍 |
| --- | --- | --- |
| 功能範圍 | 約 86% | 選單、效果、面板、格式等已實作項目的範圍 |
| 實務準備度 | 約 56% | 對實際專案中可替代程度的自行估計 |

當時的實務準備度估計值為**約 56%**。兩個數值採用不同的評估標準，不能將其差距解讀為錯誤率或剩餘開發時間。數值與限制公開於 [FilmCraft README](https://github.com/storytold/filmcraft) 的 Status 項目。

官方文件將改善大型影片的處理速度列為課題，也說明目前不支援直接開啟 Premiere 專案檔。外掛程式託管同樣有其限制。

因此，光憑畫面相似，很難判斷能否替代。必須檢查包括儲存與重新開啟在內的完整工作流程。影片剪輯還須驗證匯出檔案的同步情況。

以下是比較應用程式時可使用的檢查表。

| 確認項目 | 需要親自確認的內容 |
| --- | --- |
| 檔案相容性 | 能否開啟目前使用的檔案並再次儲存 |
| 播放品質 | 實際剪輯的影片是否出現卡頓或音訊延遲 |
| 成品 | 匯出影片的色彩、字幕、聲音是否符合預期 |
| 工作復原 | 能否重新開啟已儲存的專案並繼續工作 |
| 現有工作環境 | 是否支援所需外掛程式與交換格式 |

## CLI 與 MCP 如何改變應用程式的使用方式

CLI 和 MCP 提供了畫面點擊以外的操作途徑。根據 PhotoCraft 的說明，可以透過多種介面呼叫同一個引擎，包括 UI、CLI、JSON 控制通道和 MCP。其結構公開於 [PhotoCraft README](https://github.com/storytold/photocraft)。

這為 AI 以工作項目為單位呼叫應用程式功能奠定基礎。將自然語言請求轉換成實際指令，是代理程式的工作。結果則仍須另行確認。

| 操作途徑 | 適合的工作 | 需要確認的部分 |
| --- | --- | --- |
| 畫面 UI | 需要視覺判斷的編輯 | 預覽與最終結果是否一致 |
| CLI | 重複工作與執行指令碼 | 輸入選項與結束狀態 |
| MCP | 由 AI 代理程式組合的工作 | 呼叫的功能與結果驗證 |

目前沒有足夠依據預測 UI 會因此消失。人可能仍須親眼確認結果。自動化途徑與視覺化編輯畫面可以並用。

## 理解 REA 時常見的錯誤

若將 REA 的分析功能等同於複製成品的能力，就會產生誤解。也很難單靠工具數量判斷分析品質。以下各項主張都需要各自的依據。

| 常見主張 | 需要分開確認的內容 |
| --- | --- |
| 能在幾分鐘內還原所有應用程式 | 依對象、分析範圍和環境區分的測量結果 |
| 工具始終有 126 個 | 已安裝版本的實際工具清單 |
| Evidence 能防止幻覺 | 記錄依據與解讀準確度之間的差別 |
| 用 Rust 製作就一定快 | 在實際工作中測得的處理效能 |
| 畫面相同，功能就相同 | 包括儲存、相容性與輸出在內的驗證 |
| 分開代理程式就是合法的潔淨室 | 存取權限的隔離方式與適用的使用條款 |

工具清單可透過已安裝版本的 `tools/list` 確認。也須確認各項工作是否可用。相關標準見 [MCP 規格](https://github.com/morluto/rea/blob/main/docs/mcp-contracts.md)。

GitHub 熱門趨勢排名必須註明統計時間點與期間。開發動機也須根據開發者的原話確認。「因解約違約金而開始」的說法，並未被採納為已確認的事實。

聲稱使用 Claude Opus 5.5，同樣需要另外的製作紀錄。不能只憑應用程式已公開，就證明所使用的模型。請從開發者的工作紀錄或發表原文確認這項主張。

## 潔淨室重新實作的條件

潔淨室重新實作是一種將分析與實作的資訊存取分隔開來的方法。負責制定功能規格的角色，與負責撰寫新程式碼的角色分開。只把代理程式放在不同對話視窗，並不足夠。

REA 安裝文件說明了檔案與網路存取限制，目的是讓實作環境無法存取分析產物。隔離方法可參閱 [Installation and setup 文件](https://github.com/morluto/rea/blob/main/docs/installation.md)。

REA 的 DISCLAIMER 不保證結果準確。取得分析結果，也不代表取得原程式的權利。各程式的權利與使用條款須另行確認。適用範圍列於 [REA DISCLAIMER](https://github.com/morluto/rea/blob/main/DISCLAIMER.md)。

> 反編譯、重建、啟發式方法與 AI 輔助分析可能不完整或不正確。
>
> REA DISCLAIMER, Analysis results and generated output

這段文字的意思是，AI 分析可能不完整或有誤。「潔淨室」這個名稱也不會自動保證合法。如果計畫公開或商業化，請先確認對象的使用條款。

## 本機分析與傳送資料給 AI 的差別

在本機分析，不代表所有資訊都不會傳送到外部。REA 說明它會在本機處理分析對象的檔案。接收工具結果的代理程式，則適用模型提供者的政策。這項區別見 [REA FAQ](https://github.com/morluto/rea)。

分析結果可能包含檔案內部的字串。執行紀錄也可能混有帳號資訊。若要調查工作用的應用程式，請先確認以下項目。

- 分析結果可能包含的個人資料與機密資訊
- 代理程式傳送給模型提供者的工具輸出
- 模型服務的儲存、訓練與保留政策
- 分析報告與日誌可分享的範圍

分析對象也可能包含試圖欺騙 AI 的指示。REA 文件說明，應將其視為不受信任的資料。不能把檔案中的指示當成使用者的命令。處理原則見 [MCP 規格](https://github.com/morluto/rea/blob/main/docs/mcp-contracts.md)。

## 親自驗證的順序

驗證應從縮小要重現的功能範圍開始。以理解整個應用程式為目標，完成標準會很模糊。訂出輸入與預期結果，較容易判斷分析是否有用。

1. 選擇有權分析的程式。
2. 訂出要確認的功能與測試輸入。
3. 記錄 REA 與分析器的版本。
4. 區分並儲存依據與未確認項目。
5. 在允許的環境中，比對實際運作與分析結果。
6. 若已重新實作，以相同輸入比較結果。
7. 留下失敗的輸入與不支援的條件。

報告也可以記錄對象檔案的雜湊值。雜湊值是用來區分檔案是否相同的數值。保留版本與測試條件，其他人才比較容易重新驗證結果。

## 軟體的競爭力還留在哪裡？

即使重新實作變得更可行，也無法複製產品的全部價值。單靠用戶端分析，並不能取得伺服器資料。使用者關係與服務營運能力也各自獨立。

根據公開文件，可以預期競爭標準會改變。只看功能實作得有多快，將難以做出評估。還須一併考量可驗證的品質與營運能力。

| 競爭要素 | REA 與重新實作案例呈現的情況 |
| --- | --- |
| 功能實作 | 更容易串接調查現有運作方式的工具 |
| 產品完成度 | 須分開評估有無功能與實務準備度 |
| 自動化的可及性 | CLI、MCP 等可呼叫介面拓寬了運用途徑 |
| 服務營運 | 伺服器資料與使用者關係仍須另外建立 |

這張表是根據官方文件做出的解讀，並非衡量整體市場收益變化的結果。對各企業的影響，可能因產品品質與營運結構而異。

## FAQ

### REA 會還原原始碼嗎？
不保證能還原出與原本完全相同的原始碼。原生分析會提供偽程式碼、指令等線索。代理會根據這些線索說明程式的運作方式或編寫實作。

### 使用 REA 一定需要 Ghidra 嗎？
視分析對象而定。原生分析會使用 Ghidra、Hopper、IDA 等分析工具。靜態 JavaScript 或 .NET 分析則有不使用原生分析工具也能進行的方式。

### REA 有 126 個工具嗎？
很難將其視為不指定版本的固定數字。請到已安裝版本的 tools/list 查看清單。即使工具列在清單中，在目前環境下也可能無法使用。

### 有 Evidence 紀錄，就能相信 AI 的說明嗎？
Evidence 是用來追蹤依據與限制的機制。即使有紀錄，解讀仍可能有誤。重要結論請透過實際執行或另外測試來驗證。

### REA 和 ArtCraft 是同一個工具嗎？
兩者是不同的專案。REA 連結逆向工程工具與代理。ArtCraft 的 Crafting Apps 則執行圖片、影片、文件等編輯工作。

### 可以直接用 FilmCraft 取代 Premiere Pro 嗎？
請先確認工作所需的相容性與輸出品質。FilmCraft 的官方文件說明了其 Alpha 階段的狀態與功能限制。2026年10月10日，其實務準備度的自行估計值約為 56%。

### FilmCraft 的功能涵蓋範圍達 86%，代表效能相同嗎？
不代表效能相同。2026年10月10日的約 86%，是對已實作功能範圍的自行評估，並非處理速度或錯誤率的數值。

### 支援 CLI 和 MCP 後，就不需要畫面 UI 了嗎？
自動化方式增加，不代表 UI 就沒有必要。視覺編輯或確認結果時，可能仍需要畫面。可以依工作性質搭配使用多種操作方式。

### 在本機分析，公司資訊就不會傳到外部嗎？
本機分析與代理傳送資料是兩回事。工具的結果可能會傳送給外部模型服務。請確認所用代理的設定及提供者的資料政策。

### 把 AI 代理分開，就能完成潔淨室重新實作嗎？
光是分工並不足夠。還必須隔離實作環境對檔案和網路的存取。這種技術上的隔離並不會自動保證其合法性。

### 只靠 REA 就能複製伺服器上的資料和程式碼嗎？
只分析用戶端，無法取得伺服器內部的全部內容。觀察到的請求與回應只是有限的線索，不能作為證明伺服器未公開實作或全部資料的依據。

### 這篇文章是親自使用 REA 和 ArtCraft 後的心得嗎？
這是查閱官方文件後撰寫的技術說明。沒有執行應用程式或進行效能測試。文中區分並整理了公開的功能說明與開發團隊的自行評估。

## Sources

- [REA README：支援對象、運作方式、FAQ](https://github.com/morluto/rea)
- [Ghidra Software Reverse Engineering Framework](https://github.com/NationalSecurityAgency/ghidra)
- [REA CLI and Evidence](https://github.com/morluto/rea/blob/main/docs/cli.md)
- [REA MCP runtime contracts](https://github.com/morluto/rea/blob/main/docs/mcp-contracts.md)
- [REA 安裝與設定](https://github.com/morluto/rea/blob/main/docs/installation.md)
- [REA DISCLAIMER：使用範圍與分析結果的限制](https://github.com/morluto/rea/blob/main/DISCLAIMER.md)
- [ArtCraft Crafting Apps 官方清單](https://getartcraft.com/apps)
- [FilmCraft README：功能、Alpha 狀態、2026年10月10日自我評估](https://github.com/storytold/filmcraft)
- [PhotoCraft README：編輯引擎與代理程式控制](https://github.com/storytold/photocraft)

## Images

![穿深色毛衣的男子查看平板上的兩個影片預覽畫面和剪輯時間軸。](https://injoys.com/rails/active_storage/blobs/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MzAxOTUsInB1ciI6ImJsb2JfaWQifX0=--945925f39590e27477cbcb5280f3e9984ab90869/ai-ed2a455d.webp)
![穿藍色毛衣的女子看著螢幕，男子在玻璃隔間另一側工作，兩人之間疊有網絡節點圖形。](https://injoys.com/rails/active_storage/blobs/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MzAyMDEsInB1ciI6ImJsb2JfaWQifX0=--9d6b6cad7c57d623804982aaeddbe8270740975f/ai-33a9acb5.webp)