工具資訊
| 項目 | 值 |
|---|---|
| 名稱 | REA(Reverse Engineer Anything) |
| 類型 | MCP server + CLI |
| GitHub | morluto/rea |
| Stars | 147,000+(2026-10-13 查,10-07 上線後十天內從 0 衝到連續兩天 GitHub trending 第一) |
| 語言 | TypeScript(Node.js) |
| 授權 | MIT |
| 安裝 | npx rea-agents setup |
解決什麼問題
你看到別的 app 或網站有一個你想要的功能,但對方沒開源,你只看得到「它會這樣動」,看不到「它怎麼寫的」。以前的做法是自己開 Ghidra 或 IDA,手動找到相關函式,一行一行看組合語言或反編譯出來的 pseudocode,靠經驗猜出邏輯——門檻高、耗時,而且一般開發者的 agent 工作流裡完全沒有這塊能力,只能憑印象猜一個「看起來差不多」的實作。
REA 把 Hopper/Ghidra/IDA 這些 native binary 分析引擎,加上 JavaScript/Electron 靜態解析、.NET CIL 讀取、APK 反編譯、SQLite/WASM/EVM bytecode 檢視、瀏覽器網路側錄等十幾種逆向工程能力,統一包成一組 MCP 工具。Agent 透過自然語言問「這個 app 的某個功能是怎麼做的」,REA 負責在背後定位相關程式碼、回傳證據(pseudocode、組合語言、呼叫關係),agent 再基於這些真實證據解釋原理,甚至直接寫出一份可執行、可測試的實作——不是憑印象腦補,而是有出處可查。
適合的場景:想在自己的產品裡做一個競品已經有的功能、研究沒有原始碼的老遊戲或老軟體的演算法、debug 一個只有執行檔沒有原始碼的 legacy binary、分析沒加密保護的 APK 行為。README 自己的三個案例分別是逆向一款磁磚消除遊戲 DX-Ball 的音效聲相計算、追蹤 Notion 桌面版 Electron 應用的剪貼簿橋接邏輯、以及還原一款 1990 年代 PC-98 彈幕遊戲 TH04 的子彈環計算公式。
快速上手
安裝
npx rea-agents setup
互動式選擇要串接的 agent(支援 Claude Code、Codex、Cursor、Gemini CLI、Grok Build 等),確認要套用的設定變更後,REA 會把 MCP server 註冊進去並安裝對應的 workflow 說明文件,設定檔會先備份。裝完重啟 agent 即可。
基本用法
裝好後直接用自然語言問你的 agent:
Understand how search works in the Notes app, show me the evidence, and build a
similar feature for my project.
Agent 會透過 REA 的 MCP 工具找到 Notes app 裡搜尋功能對應的程式碼路徑,回傳找到的證據(對應的函式、呼叫鏈),再據此解釋原理並動手寫一份你專案裡的對應實作。
進階用法
不透過 agent,直接用 CLI 分析一個解壓好的 JavaScript/Electron 應用目錄或 ASAR 檔:
npx -y rea-agents@latest analyze-javascript-application /absolute/path/to/app --json
回傳的 JSON 包含模組清單、import 關係、Electron 的 renderer/main process 邊界。若要常駐使用,改成全域安裝:
npm install --global rea-agents
rea --help
native binary 分析需要先裝好 Hopper、Ghidra 或 IDA 其中一個作為後端引擎(setup 可在你同意後代裝 Hopper)。
與現有工具的比較
| REA | 手動開 Ghidra/IDA | 直接把 disassembly 貼給 LLM | |
|---|---|---|---|
| Agent 原生整合(MCP) | ✅ | ❌ | 需自行複製貼上 |
| 覆蓋格式(binary/JS/.NET/APK/WASM…) | ✅ 十幾種統一介面 | 依引擎各自支援,格式間要換工具 | 不限格式,但品質全看貼進去的片段夠不夠 |
| 回傳附證據(對應程式碼、呼叫鏈) | ✅ | 需自己整理 | ❌ 容易產生看起來合理但編造的解釋 |
| 需要逆向工程操作經驗 | 降低門檻,但原理仍要懂 | ✅ 需要 | 幾乎不需要,但也最容易出錯 |
| 本地執行,不上傳目標檔案 | ✅ | ✅ | 片段會進到 LLM provider |
注意事項
- 合法使用邊界要自己把關:專案自己的 DISCLAIMER.md 寫得很明確——REA 是給合法的安全研究、事故分析、CTF、教育、互通性、軟體保存,以及分析你自己擁有或已獲授權檢視的軟體用的;明文拒絕協助繞過 DRM/授權檢查/反作弊機制、開發遊戲外掛、繞過你未獲授權測試系統的身分驗證,或複製受保護的程式碼與素材。拿別人的 app 「抄」功能前,先確認自己站在授權或合理使用的一側。
- 商業引擎授權要自己合法取得:深度 native 分析要接 IDA Pro / Hex-Rays decompiler、Hopper 或 JEB,這些都是付費商業工具,REA 本身不提供授權、序號或啟用資格,破解版或共享序號不在允許範圍內。
- 分析結果可能不完整或有誤:README 跟 DISCLAIMER 都寫明反編譯、還原與 AI 輔助分析的結果不保證正確或完整,重要結論要回頭核對底層證據(pseudocode/組合語言)再採信,不要直接把 agent 的解釋當成最終答案。
- 執行類分析有副作用:部分 workflow 會實際執行或互動目標程式(例如 process capture、裝置操作),這會影響應用程式狀態、檔案或裝置,對不信任的目標建議用隔離環境,並先過一遍 agent 產生的操作計畫再放行。
今日收穫
以前以為逆向工程是一門需要長期磨練 Ghidra/IDA 操作手感的單人技能,看到 REA 才意識到它可以被重新包裝成「統一工具介面 + 可追溯證據鏈」的 agent 工作流——降低了動手門檻,但沒有犧牲可驗證性,因為每個結論都附著對應的 pseudocode 或呼叫路徑可以回頭查核,而不是 agent 自己掰一段聽起來合理的解釋。
參考資料
Loading...