Files
rea/README_zh-TW.md

17 KiB
Raw Permalink Blame History

English · 简体中文 · 繁體中文 · 日本語 · 한국어 · Türkçe · Русский · Tiếng Việt · ไทย · Deutsch · Español · Français · Українська · Polski · Português (Brasil) · العربية · فارسی · Bahasa Indonesia · Italiano

REA:逆向一切

通過一個 MCP 服務,逆向分析二進位檔案、應用程式和執行階段行為。

看到喜歡的功能,弄清它的工作原理,深入到二進位層面。

npm version MCP tool catalog Node.js requirements skills.sh MIT license Discord

morluto%2Frea | Trendshift

網站 · 指南 · 案例

快速開始 · REA 的工作原理 · 可以分析什麼 · 案例 · 常見問題 · 文件

npx rea-agents setup


REA 在 Hopper 中啟動分析橋,檢查原生二進位檔案



Discord
加入逆向工程社群

Discord · 問答 · 成果分享


在應用中看到一個想加入自己產品的功能?讓 AI 代理用 REA 調查它。即使沒有原始碼,AI 代理也可以檢查應用、解釋功能的工作方式、展示證據,並為你的專案實現類似功能。

REA 將 AI 代理連接到分析工具,用於檢查原生二進位檔案、JavaScript 和 Electron 應用、.NET 程式集以及網站。你也可以在終端中使用同樣的工具。分析在本機執行,結果包含支撐各項結論的證據和相關限制。

設定流程會向 AI 代理註冊 REA,並安裝對應的工作流程指引。原生分析可以使用已有的 Hopper 或 Ghidra;設定流程也可以在你核准後安裝 Hopper。靜態 JavaScript 分析不需要這兩個引擎。

訪問 REA 網站,查看設定說明、圖解指南和真實案例。

快速開始

設定 AI 代理

安裝 Node.js 和 npm 後,執行:

npx rea-agents setup

選擇 AI 代理,檢查計劃中的變更並核准。設定流程會添加 REA 的 MCP 服務和對應的工作流程指引,並備份已有組態。完成後重新啟動 AI 代理。

設定流程支援 Claude Code、Codex、Cursor、Gemini CLI、Grok Build 和其他 AI 代理。提供者組態和手動註冊 MCP 的方法見安裝與設定。

詢問 AI 代理

弄清 Notes 應用的搜尋功能如何工作,展示證據,並為我的專案實現類似功能。

把 Notes 替換為目標應用,並描述你想瞭解的功能。

使用終端

檢查已解包的 JavaScript/Electron 應用目錄或 ASAR 檔案:

npx -y rea-agents@latest analyze-javascript-application /absolute/path/to/app --json

結果包含模組、匯入、Electron 邊界及相關證據。將路徑替換為你的目標路徑,例如 Windows 上的 "D:/apps/example"。

如果需要經常使用,可以安裝 rea 命令:

npm install --global rea-agents
rea --help

原生分析需要先設定分析提供者。原生命令、提供者選擇、快照和腳本用法見 CLI 與 Evidence 指南。

更新 REA

REA 更新較快,新版本經常包含錯誤修復。請將安裝的版本保持最新。

通過 npm 安裝的 CLI 使用:

rea update

要更新 AI 代理註冊和 skill,請執行更新命令輸出的設定命令。

如果使用 npx,通過以下命令更新 AI 代理設定:

npx rea-agents@latest setup

檢查設定變更並重新啟動 AI 代理。單次 CLI 操作可使用 npx rea-agents@latest,後接所需命令。

REA 的工作原理

AI 代理通過 MCP 呼叫 REA,檢查目標並追蹤相關程式碼。REA 返回發現及對應證據。AI 代理據此提出後續問題、解釋行為,或編寫並測試實現。CLI 命令使用同樣的工作流程。

REA 調查流程:AI 代理詢問本地目標的行為,REA 使用分析工具檢查和追蹤目標,AI 代理再利用返回的程式碼、引用和未知項進行解釋、實現與測試。

打開完整尺寸的圖示。

可以分析什麼

REA 需要 Node.js 22.x(>=22.19)、24.x(>=24.11)或 26+,以及 npm。額外工具和主機支援取決於分析目標:

目標 REA 返回的內容 要求與指南
原生二進位檔案 偽程式碼、組合語言、字串、符號、呼叫和引用 Hopper、Ghidra 或 IDA;原生分析
離線 ELF 佈局 節、段、原始符號/重定位資訊及靜態防護機制候選項 Linux x64 上由呼叫方提供的 pwntools;二進位診斷
EVM 位元組碼 分派選擇器、位元組偏移、推斷的參數和狀態可變性 Linux x64 上的本地原始位元組/十六進位輸入載體;離線 EVM 指南
已記錄的 Linux 崩潰 原始 note 記錄、每個已記錄執行緒的暫存器/訊號及可選的對映候選項 Linux x64 上由呼叫方提供的 pwntools;可選的 GDB/pwndbg;已記錄崩潰
JavaScript / Electron 模組、匯入、source map、路由、IPC 和原生附加元件關係 Node.js 和 npm;應用分析
網站 頁面結構、腳本、網路觀察結果和按請求獲取的螢幕擷取畫面 Chrome 系瀏覽器;瀏覽器分析
已保存的網路擷取 請求、回應、可訪問的酬載和來源位置 HAR;原生 mitmproxy 擷取需要 Linux 上的 mitmdump;擷取指南
.NET 程式集 中繼資料、CIL 指令、聲明的原生依賴和建置對比 靜態檢查;托管程式碼指南
Android APK 清單聲明、類別、反編譯的方法和引用 Linux/macOS/Windows x64 上的無界面 JADX 和完整 JDK;Android 指南
Android 裝置 裝置、套件、程序、日誌、傾印、螢幕擷取以及 APK/檔案傳輸 呼叫端提供的 adb(模擬器或實體裝置);ADB 指南
JEB 專案 引擎支援的專案單元、成品摘要和型別/方法的虛擬碼 由呼叫端啟動、提供 MCP 的 JEB 用戶端,透過 REA_JEB_MCP_URL 選擇;JEB 指南
Android 資源 解碼後的清單、字串表、語系和版本資訊 呼叫端提供的 Apktool 啟動器;資源指南
韌體 區域、提取結果和轉交原生分析的內容 Linux 上的 Binwalk / Unblob;韌體指南
軟體包與資源 檔案清單、摘要、plist、Apple bundle 結構和提取的資源 製品與 JavaScript 指南、Apple 應用
處理程序行為 終端輸出、互動、退出和檔案系統觀察結果,以及執行對比 支援原生 PTY 的 Linux/macOS;處理程序擷取

靜態 JavaScript 和 .NET 檢查讀取提供的檔案,不執行應用。執行階段擷取會以你的使用者權限執行目標或與之互動;各執行階段指南說明瞭具體影響。

不同提供者支援的原生格式和主機系統有所不同。請參閱 Hopper 與 Ghidra 設定、IDA 指南和實驗性 Windows Ghidra 支援。Ghidra 也支援 16 位 DOS 分析。提供者選擇見 CLI 指南。對於最新 npm 版本發佈後新增的功能,請查看發佈可用性。

案例

DX-Ball 聲音平移、Notion 剪貼簿橋接與 TH04 彈幕環案例的插圖

DX-Ball:重建聲像計算

沿聲音呼叫追蹤到根據位置計算聲像的輔助函數,檢查指令,將不完整的偽程式碼轉為 C。重建結果通過了 3,205 個原始 x86 測試用例,並復現了編譯後函數的全部 63 個位元組。

閱讀案例 · 重建專案儲存庫

Notion:追蹤 Electron 剪貼簿橋

找到渲染處理程序的剪貼簿 API,沿 preload 和 IPC 追蹤到主處理程序,並檢查富格式剪貼簿資料。

閱讀案例

TH04:恢復 DOS 環形子彈的計算

檢查原始 PC-98 遊戲的 16 位指令,恢復固定角度和瞄準角度的計算,並將重建的 C++ 與當年的編譯器輸出進行對比。

閱讀案例 · 重建專案儲存庫

如果你用 REA 分析了有趣的目標,我們很想瞭解。歡迎通過 issue 或 pull request 分享案例,說明目標、你的問題、REA 如何提供幫助,以及你的發現。

常見問題

哪些 AI 代理可以使用 REA?

任何支援本地 MCP 服務的 AI 代理都可以使用。設定流程會設定受支援的 AI 代理;其他客戶端可通過手動註冊 MCP 使用。

需要 Hopper、Ghidra 或 IDA 嗎?

深入的原生分析需要其中一個引擎。靜態 JavaScript 和 .NET 檢查不需要原生分析引擎。設定流程可以在你核准後安裝 Hopper;Ghidra 和 IDA 則使用已有安裝。見提供者設定。

需要先啟動 Hopper 嗎?

REA 會在操作需要時啟動 Hopper。在 macOS 上,首次執行時可能會出現對話框,讓你選擇演示模式或啟用授權。見 Hopper 啟動與故障排查。

從 skills.sh 安裝 skill 有什麼作用?

skill 為 AI 代理提供調查指引。使用 npx rea-agents setup 註冊 REA 的 MCP 服務並安裝對應的指引,然後重新啟動 AI 代理。見僅安裝 skill。

REA 返回什麼程式碼?

原生分析返回偽程式碼和組合語言。JavaScript/Electron 分析恢復模組及其關係。AI 代理利用這些發現編寫並測試實現;案例提供了完整示例。

REA 會上傳我的應用嗎?

REA 在本機分析目標。AI 代理會接收工具結果,其模型提供商有自己的資料政策。

遇到錯誤時該怎麼辦?

先更新;最近的版本可能已經修復了問題。

通過 npm 安裝的 CLI 使用:

rea update

通過 npx 設定 AI 代理時使用:

npx rea-agents@latest setup

如果正在使用 AI 代理,請完成設定更新並重新啟動 AI 代理。重試同一任務。如果問題仍然存在,請提交 issue,附上 REA 版本、目標類型、復現步驟和錯誤輸出。

文件

可以先閱讀網站上的實操指南。具體選項、前提條件和結果契約見:

請按照 SECURITY.md 報告漏洞。

Star 歷史

🎉 GitHub Star 達到 90,000 個,感謝大家!

感謝每一位使用 REA、報告錯誤、提出功能需求、測試建置和貢獻修復的朋友。

REA 的 GitHub Star 歷史

免責聲明

REA 為合法的逆向工程研究、分析和重建提供工具。你有責任取得所需授權並遵守適用法律。本專案不認同非法或未經授權的使用。

參與貢獻

歡迎幫助改進 REA!你可以提交 issue 報告錯誤或建議功能,也可以提交 pull request 改進程式碼或文件。

開發設定和檢查見 CONTRIBUTING.md,驗證流程見測試指南,專案結構見架構圖。

授權條款

MIT