rea

一個開源 MCP 伺服器與 CLI,讓 AI 代理程式能在本機對二進位檔、應用程式與網站進行逆向工程,並提供有證據支援的結果。

TypeScriptMITMCP
⭐ GitHubhttps://github.com/morluto/rea
273,713
Star 數
+0
Star 增速
2026年10月16日
最後更新
4
點擊數

1. 專案概覽

REA (Reverse Engineer Anything) 是一個開源的 MCP (Model Context Protocol) 伺服器與命令列工具,讓 AI 代理程式能檢查軟體——從原生二進位檔到 Electron 應用程式、網站與 Android 套件——解釋其運作方式,並為每個結論提供證據,且全部都在你的機器上本機執行。

2. 背景與定位

為何建立

逆向工程通常意味著要在許多專門工具(反編譯器、反組譯器、封包分析器、瀏覽器開發者工具)之間切換,並手動將發現結果拼湊在一起。REA 為 AI 編碼代理程式提供了一個單一、一致的介面來使用這些工具,讓代理程式可以在沒有原始碼的情況下檢查目標、描述某個功能的行為,並協助建立類似的功能。

與類似專案的差異

  • 一個 MCP 涵蓋多種目標: 不是為單一反編譯器提供單一用途的外掛,REA 在單一伺服器中涵蓋了二進位檔、應用程式與執行時期行為。
  • 證據優先的輸出: 結果會附帶支援的虛擬碼、組合語言、符號、參考資料,以及已知限制的說明。
  • 與供應商無關: 原生分析可使用 Hopper、Ghidra 或 IDA,離線檢查可使用 GNU objdump 或 Rizin。
  • 本機與靜態優先: 分析在本機執行;靜態 JavaScript 與 .NET 檢查會讀取檔案而不執行它們。
  • 雙重介面: 相同的工作流程可透過 MCP 供代理程式使用,也可透過 rea CLI 供人類使用。

3. 功能類別

🧩 原生二進位檔與韌體

  • 涵蓋範圍:原生可執行檔、ELF、Go/Rust、WASM、EVM 位元組碼、韌體映像檔
  • 範例:透過 Hopper/Ghidra/IDA 取得虛擬碼與組合語言;ELF 區段、段與緩解措施候選項 (pwntools);Go/Rust 編譯器與 crate/依賴項資訊;WASM 驗證與 WAT 形式 (WABT);EVM 分派選擇器與可變性;韌體解包 (Binwalk/Unblob)
  • 目的:在沒有原始碼時理解編譯後的程式碼。

🌐 網頁與 JavaScript 應用程式

  • 涵蓋範圍:網站、JavaScript 與 Electron 應用程式
  • 範例:Electron 應用程式中的模組、匯入、路由與 IPC;原生附加元件;網站的頁面結構、腳本、網路資料與螢幕截圖(Chrome 系列瀏覽器)
  • 目的:描繪網頁或桌面網頁應用程式的組成方式。

📱 行動裝置與 .NET

  • 涵蓋範圍:Android APK 與裝置、.NET 組件、Flutter、Apple 應用程式套件
  • 範例:APK 清單與反編譯方法 (JADX + JDK);裝置日誌與檔案傳輸 (adb);.NET 中繼資料、CIL 指令與建置比較
  • 目的:檢查行動裝置與受控程式碼軟體。

📡 資料、網路與訊號

  • 涵蓋範圍:SQLite、封包擷取、邏輯分析儀記錄、程序行為
  • 範例:SQLite 資料表、索引、檢視、觸發器與列;透過 TShark 進行 pcap 分析;透過 sigrok-cli 進行邏輯訊號解碼;執行時期程序擷取
  • 目的:在檢查程式碼的同時,檢查資料儲存體與執行時期行為。

🤖 代理程式整合

  • 涵蓋範圍:Claude Code、Codex、Cursor、Gemini CLI、Grok Build 以及其他支援本機 MCP 伺服器的代理程式
  • 範例:單一指令 setup、已安裝的工作流程說明、已發布的代理程式技能、完整的 rea CLI
  • 目的:讓工具能從你已使用的代理程式中操作。

4. 主要亮點

  • 廣泛的目標涵蓋範圍: 單一伺服器處理數十種目標類型,從原生程式碼到網站。
  • 有證據支援的結果: 每個答案都附帶其支援的工件與陳述的限制,這使得發現結果更容易驗證。
  • 引導式設定: setup 會顯示提議的設定變更以供核准,並在套用前備份現有設定。
  • 自備工具: REA 與你已有的反編譯器和工具整合;它不會安裝或更新它們。
  • 有文件記錄的展示: 案例研究包括通過 3,205 個原始 x86 測試案例的 DX-Ball 重建、Notion 的 Electron 剪貼簿橋接研究,以及 TH04 的 DOS 子彈環計算。
  • 在地化文件: README 提供 20 種語言版本。

5. 依角色劃分的使用案例

  • 一般開發人員: 理解未記載的行為、研究函式庫或應用程式如何實作某個功能,或進行互通性工作。
  • DevOps/SRE: 檢查第三方二進位檔與桌面應用程式、審查 Go/Rust 建置中的依賴項,以及檢查網路擷取。
  • 安全工程師: 對二進位檔進行分類、審查 ELF 緩解措施、分析 APK、韌體與封包擷取——僅限於你獲授權檢查的軟體。
  • 資料/研究科學家: 從 SQLite 檔案中擷取資料表、記錄檔案格式,並支援軟體保存工作。
  • 專案經理: 取得關於競爭對手或舊版產品行為的可讀、有證據支援的摘要,以協助規劃。

6. 開始使用

🔍 尋找所需內容

瀏覽 rea.tools/guides 與 rea.tools/showcase 上的指南與展示,或參閱儲存庫中的文件(docs/cli.md、docs/mcp-contracts.md)。

⚙️ 安裝與整合

需要 Node.js 22.19+、24.11+ 或 26+ 與 npm。

# 向你的代理程式註冊 REA 並安裝說明
npx rea-agents setup

# 或安裝全域 CLI
npm install --global rea-agents
rea --help

# 從終端機分析已解壓的 JavaScript/Electron 應用程式
npx -y rea-agents@latest analyze-javascript-application /absolute/path/to/app --json

# 更新全域安裝
rea update

設定或更新後請重新啟動你的代理程式。

🤝 貢獻

開啟 issue 或 pull request。請參閱 CONTRIBUTING.md 了解開發設定與檢查,並參閱 SECURITY.md 回報漏洞。

7. 專案結構

rea/
├── src/                 # 核心原始碼 (TypeScript)
├── bridge/              # 橋接元件
├── native/windows/      # Windows 原生支援
├── website/             # rea.tools 的來源
├── docs/                # 文件、翻譯後的 README、資產
├── tests/               # 測試套件
├── scripts/             # 維護腳本
├── licenses/            # 授權條款文字
├── third_party/         # 第三方素材
├── CONTRIBUTING.md
├── DISCLAIMER.md
├── SECURITY.md
└── THIRD_PARTY_NOTICES.md
  • docs/ 包含安裝、CLI、MCP 合約、供應商指南、藍圖與架構圖。
  • docs/readme/ 包含翻譯後的 README。
  • THIRD_PARTY_NOTICES.md 列出捆綁或引用元件的授權。

8. 相關生態系

  • 分析供應商: Hopper、Ghidra、IDA、GNU objdump、Rizin
  • 支援工具: JADX、Apktool、adb、JEB、WABT、pwntools、Binwalk、Unblob、TShark、sigrok-cli
  • 發行: rea-agents npm 套件
  • 代理程式技能: skills.sh 上的 reverse-engineer-anything
  • 展示儲存庫: N0zoM1z0/dx-ball 與 N0zoM1z0/th04
  • 代理程式: Claude Code、Codex、Cursor、Gemini CLI、Grok Build 以及其他支援 MCP 的用戶端

9. 授權

  • ✅ REA 撰寫的程式碼以 MIT 授權發布:可使用、修改與再散布。
  • ✅ 適用於合法的研究、教育、互通性、軟體保存,以及分析你擁有或獲授權檢查的軟體。
  • ❌ REA 不授予 IDA Pro、Hopper 或 JEB 等商業工具的授權或金鑰;你必須自行合法取得。
  • ❌ 不適用於分析你未獲授權檢查的軟體。
  • ℹ️ 第三方元件保留其各自的授權(請參閱 THIRD_PARTY_NOTICES.md)。
  • ℹ️ 使用前請檢閱 DISCLAIMER.md,並僅從官方儲存庫、rea.tools 或 rea-agents npm 套件安裝。

10. 常見問題

問:REA 可與哪些 AI 代理程式搭配使用?
答:Claude Code、Codex、Cursor、Gemini CLI、Grok Build 以及其他支援本機 MCP 伺服器的代理程式。執行 npx rea-agents setup 即可註冊。

問:我需要安裝反編譯器嗎?
答:若要取得原生二進位檔的虛擬碼,需要——Hopper、Ghidra 或 IDA。許多其他目標(JavaScript、.NET、Go/Rust、SQLite)使用內建或輕量級檢查。REA 不會為你安裝供應商工具。

問:我的資料會離開我的機器嗎?
答:分析在本機執行。靜態檢查會讀取檔案而不執行它們;執行時期擷取會在你自己的權限下執行目標。

問:如何更新 REA?
答:全域安裝執行 rea update,或在 npx 更新後執行 npx rea-agents@latest setup 以重新整理代理程式註冊。

問:我可以在哪裡看到實際運作?
答:請參閱 rea.tools/showcase 查看 DX-Ball 與 Notion 等案例研究。

11. 快速連結

12. 總結

REA 為 AI 代理程式提供了一個單一、以證據為重點的介面,用於對二進位檔、應用程式、網站與執行時期行為進行逆向工程,且全部在本機執行。它適合想要理解其獲授權檢查的軟體,而不想為每個目標分別使用不同工具的開發人員、安全工程師與研究人員。