舊控制程式沒有定時?用 REA 找到介面,再替它補上功能
重點摘要
- REA MCP 分析自製範例,找到 remote.send 與 remote:send,一組呼叫成功靜態配對。
- 新增定時模組共有 30 組原訊號、15 項定時測試、5 項替身整合驗證,50/50 通過。
- 一小時案例使用虛擬時鐘,另有30毫秒真實計時驗證;沒有測試紅外線或實體冷氣。
- 現有 ARM 環境無法執行官方 x64 Wakaru 引擎,程式碼還原未成功。
- 結論: REA 介面分析能協助定位擴充接點;本次證據僅涵蓋自製軟體範例。
- 適合: 已有合法樣本、想理解介面後擴充功能的人
- 不適合: 期待沒有協定與硬體就能自動控制所有家電的人
| 實測項目 | 結果 |
|---|---|
| 原訊號 | 30/30 |
| 定時功能 | 15/15 |
| 原通道替身整合 | 5/5 |
| 實體設備 | 未測 |
| 付費API費用 | US$0 |
睡前想讓冷氣一小時後關機,遙控器偏偏不見了。這時真正想解決的是「能不能把原本的控制方式弄懂,換成自己需要的操作」,而不是多看一張程式功能表。REA 的定位正是提供 AI 逆向分析工具,讓它從應用程式、原生執行檔或執行行為中找證據,再協助開發。官方也以「理解別人的功能,再為自己的專案做一版」說明用途:REA 官方專案。
這次沒有實體冷氣與紅外線發射器,所以不會把軟體測試當成冷氣控制成功。我們使用自製、可公開的 Electron 結構範例:原介面只有開與關,新增目標是一小時後自動關機。示範訊號是自訂的四位元組格式,不是任何廠牌的冷氣協定。
測試設備:Mac mini M4 Pro(12 核、64GB)。受測 REA 6.7.0,AI 使用既有 Codex 訂閱,配音使用免費 Edge;本次付費 API 費用為零。
先找功能接在哪裡
這次確實啟動 REA 的 MCP 服務,完成初始化與工具呼叫,而非只讀 README。它找出 remote 的 send 介面,以及 remote:send 控制通道,靜態分析中有一組成功配對的呼叫。這讓新增功能有明確的接點:到期時呼叫既有的關機介面,不另造一條無法驗證的路。
npm install --global [email protected]
rea --mcp
# MCP 工具 analyze_javascript_application 的必要參數是 input_path
rea analyze-javascript-application /tmp/owned-remote --json > analysis.json

第一次 MCP 呼叫把參數寫成 path,工具明確拒絕,尚未分析。核對實際 schema,改用 input_path 後成功;兩份收據都保留,沒有把錯誤結果當成功。
再補功能,不能只把分析表重唸一次
Codex 根據介面新增定時模組:設定到期時間、取消、重新設定,以及檢查不合法的時間與溫度。測試另外載入原本的主程序與 preload 程式,以 Electron 替身串起原控制通道,核對定時到期確實經由原處理器回傳關機訊號。沒有啟動完整 Electron 視窗,因此視窗操作不在這次驗收範圍。
node /tmp/verify-feature.js
| 驗證項目 | 結果 |
|---|---|
| 原訊號:開/關乘 16–30 度 | 30 組通過 |
| 定時、取消、重設、輸入與真實短計時 | 15 項通過 |
| 原介面、IPC、回傳訊號等替身整合 | 5 項通過 |
| 合計 | 50/50,零失敗 |

一小時案例使用虛擬時鐘快轉,不能說真的等過一小時;另有 30 毫秒到期、等待 90 毫秒核對的真實計時案例。關機輸出 a5001abf 只對應自製範例,不能直接拿去控制家電。
讓它成功的做法,以及實際限制
先用自己持有的程式或允許分析的資料,請 REA 找到控制入口與參數,再讓 AI 寫最小功能,最後同時驗證新增行為與原介面。拿到分析關係圖只是第一步;靜態配對本身不證明實際執行,還得補測。若目標是手機遙控冷氣,另外需要實際紅外線協定、發射硬體,以及設備回應驗證。
我們也嘗試程式碼還原:依官方文件下載 Wakaru 1.14.0,其 SHA-256 與文件相符,但官方引擎要求 Linux x64,現有環境是 ARM,執行時缺少 x64 動態載入器,REA 回報能力不可用。這項未成功,沒有修改正式環境來硬繞。安裝 REA 不表示所有分析後端已齊備。
適合已有程式或設備研究材料、想查清楚功能接點再自行擴充的人。若期待沒有樣本、沒有協定或硬體,就一句話自動控制所有家電,這次證據無法支持。REA 的價值在於把「不知道從哪改」往前推進到「有介面與證據可動手」,成功與否仍由實測決定。
專案:morluto/rea,MIT 授權。Wakaru:pionxzh/wakaru,Apache-2.0。