跳到正文
Hacker News (official RSS)·· 3 小時前精選AI 評分77

RENA 讓開發者能用 Agent 逆向分析任何應用,從行為到原生二進位制

Reverse engineer anything with agents, from app behavior down to native binaries

AI 導讀

RENA 是一個開源工具,能讓開發者在本機無需原始碼即時逆向分析多種應用,並透過 MCP 連線 Agent 產生可直接使用的功能版本。

  • 支援範圍:原生二進位制、JavaScript/Electron、.NET 程式、網站、WASM、EVM、Android APK、Flutter、韌體等。
推薦理由

RENA 讓開發者可在本機無需原始碼即時逆向分析多種應用,輕鬆重建功能;支援多平臺工具,並以 MCP 連線 Agent 進行自動化調查。

正文 · AI 翻譯

在某個應用程式中看到想在自己產品中使用的功能嗎?請讓你的代理使用 REA 進行調查。它可以在不檢視原始碼的情況下檢查該應用程式,說明功能運作方式,展示證據,並為你的專案構建一個版本。

REA 讓你的代理連線到用於檢查本機二進位檔、JavaScript 與 Electron 應用程式、.NET 程式集以及網站的工具。你也可以在終端機中使用相同的工具。分析在本機執行,結果包含每項結論背後的證據與限制。

Setup 會將 REA 註冊到你的代理並安裝相應的工作流程說明。原生分析可使用現有的 Hopper、Ghidra 或 IDA 安裝;Setup 也可在取得授權後選擇安裝 Hopper。靜態 JavaScript 分析不需要原生分析引擎。

前往 REA 網站 檢視安裝說明、圖解指南與實際案例研究。

快速開始

設定你的代理

在安裝 Node.js 與 npm 後,執行:

npx rea-agents setup

選擇你的代理,審核建議的變更,並批准。Setup 會加入 REA 的 MCP 伺服器及相應的工作流程說明,並備份現有設定。之後重新啟動你的代理。

Setup 支援 Claude Code、Codex、Cursor、Gemini CLI、Grok Build 以及 其他代理。請參閱 安裝與設定以瞭解供應商設定與手動 MCP 註冊。

請你的代理

Understand how search works in the Notes app, show me the evidence, and build a
similar feature for my project.

將 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 與證據指南瞭解原生命令、供應商選擇、 快照與指令碼。

更新 REA

REA 變更頻繁,新版本包含大量錯誤修正。保持你的 安裝為最新。

若使用 npm install --global 或 bun add --global 安裝的 CLI:

rea update

Bun 的全域更新需要 Bun 1.2.17 或更新版本。若使用較舊的 Bun 版本, 請先手動升級 Bun,再執行 rea update。

為了重新整理你的代理註冊與技能,執行更新所列印的設定指令。

若你使用 npx,請使用以下方式更新你的代理設定:

npx rea-agents@latest setup

檢閱設定變更並重新啟動您的代理。對於一次性的 CLI 指令, 請使用 npx rea-agents@latest 後接指令。使用 Bun 時, 請用 bunx rea-agents@latest 取代 npx rea-agents@latest。

REA 的工作原理

您的代理通過 MCP 呼叫 REA 以檢查目標並追蹤相關程式碼。 REA 回傳發現及其證據。代理將使用這些資訊來詢問後續 問題、解釋行為,或編寫並測試實作。 CLI 指令使用相同的工作流程。

REA investigation flow: your agent asks about a local target, REA inspects and traces it using analysis tools, and the agent uses the returned code, references and unknowns to explain, implement and test.

檢視全尺寸圖.

您可以分析的專案

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

目標 REA 回傳的內容 需求與指南
原生二進位檔 偽程式碼、組譯碼、字串、符號、呼叫與參照 Hopper、Ghidra 或 IDA;原生分析
離線 ELF 佈局 節段、段、原始符號/重定位與靜態緩解候選項 呼叫方提供的 pwntools 在 Linux x64;二進位診斷
Go 二進位檔 嵌入式編譯器版本、模組、替代方案與建置設定 內建靜態 ELF/PE/薄型 Mach-O 檢查;不需要安裝 Go
WASM 工件 驗證、節段、精確的匯入/匯出 WAT 形式與解碼後的 WAT 呼叫方提供的 WABT 1.0.42; inspect_wasm_artifact
EVM 位元組碼 派遣選擇器、位元偏移、推論引數與可變性 本機原始/十六進位載體在 Linux x64;離線 EVM 指南
已記錄的 Linux 崩潰 原始筆記,每個已記錄執行緒的暫存器/訊號以及可選對映候選者 呼叫方提供的 pwntools 在 Linux x64;可選的 GDB/pwndbg;已記錄的崩潰
JavaScript / Electron 模組、匯入、原始碼對映、路由、IPC 與原生外掛關係 Node.js 與 npm;應用程式分析
網站 頁面結構、指令碼、網路觀測與所請求的截圖 Chrome 系列瀏覽器;瀏覽器分析
已儲存的網路擷取 請求、回應、暴露的有效載荷與來源位置 HAR;Linux 上的 mitmdump 用於本機 mitmproxy 擷取;擷取指南
.NET 程式集 元資料、CIL 指令、宣告的原生相依性與建置比較 無 (僅靜態);managed-code 指南
Android APK Manifest 宣告、類別、反編譯方法與參考 Headless JADX 及完整 JDK 在 Linux/macOS/Windows x64;Android 指南
Android 裝置 裝置、套件、程序、日誌、轉儲、螢幕擷取與 APK/檔案傳輸 呼叫方提供的 adb(模擬器或硬體);ADB 指南
JEB 專案 引擎支援的專案單元、產物摘要與型別/方法偽程式碼 呼叫方啟動的 JEB 客戶端提供 MCP,使用 REA_JEB_MCP_URL 選取;JEB 指南
Android 資源 解碼的 manifest、字串表、語言區域與版本資訊 呼叫方提供的 Apktool 啟動器;資源指南
Flutter 應用程式 Dart 快照雜湊、每個 ABI 的函式庫摘要與引擎建置來源 無 (靜態 APK 解析);Flutter 指南
韌體 區域、擷取結果與原生分析交接 Binwalk / Unblob 在 Linux;韌體指南
套件與資源 檔案清單、摘要、plist、Apple bundle 結構與擷取資源 Artifact 與 JavaScript 指南, Apple 應用程式
程序行為 終端機輸出、互動、退出與檔案系統觀測,以及執行比較 Linux/macOS 搭配本機 PTY;程序擷取

靜態 JavaScript 與 .NET 檢查會閱讀所提供的檔案而不執行應用程式。執行時擷取會以您的使用者許可權執行或互動於選定目標;每個執行時指南皆說明其效應。

原生格式與主機支援因供應商而異。參見 Hopper 與 Ghidra 設定、 IDA 指南,以及 Windows Ghidra 實驗支援。 Ghidra 亦支援 16 位元 DOS 分析。 對於大型二進位檔,請使用 REA_GHIDRA_STARTUP_TIMEOUT_MS 或 REA_HOPPER_STARTUP_TIMEOUT_MS 提升供應商的啟動截止時間。 供應商選擇請參見 CLI 指南。 檢查 發行版本可用性 以確認自最新 npm 發行以來新增的功能。

展示

Illustrations of the DX-Ball sound-pan, Notion clipboard-bridge, and TH04 bullet-ring showcases

DX-Ball:重建聲音平移計算

追蹤一個聲音呼叫至其位置至平移輔助函式,檢查指令,並將不完整偽程式碼轉換為 C。重建成功 3,205 個原始 x86 範例,並重現所有 63 個已編譯函式位元組。

閱讀案例研究 · 重建儲存庫

Notion:追蹤 Electron 剪貼簿橋接

尋找渲染器的剪貼簿 API,追蹤其經過 preload 與 IPC 進入主程序,並檢查豐富剪貼簿格式。

閱讀案例研究

TH04:恢復 DOS 子彈環計算

檢查原始 PC-98 遊戲的 16 位元指令,恢復已修正與目標角度的計算,並將重建的 C++ 與歷史編譯器輸出進行比較。

閱讀案例研究 · 重建資料庫

如果你在某個有趣的專案上使用了 REA,我們很樂意看到。將你的案例分享在一個issue或一個pull request,包含目標、你的問題、REA 如何協助,以及你發現了什麼。

常見問題

哪些代理可以使用 REA?

任何支援本機 MCP 伺服器的代理。設定會配置支援的代理;其他客戶端可以使用手動 MCP 註冊。

我需要 Hopper、Ghidra 或 IDA 嗎?

深入的原生分析使用其中之一。靜態 JavaScript 與 .NET 檢查可以在沒有原生分析引擎的情況下工作。設定可以在批准後安裝 Hopper;Ghidra 與 IDA 使用你現有的安裝。請參閱 供應商設定。

我需要先啟動 Hopper 嗎?

REA 在操作需要時會啟動 Hopper。在 macOS 上,首次執行對話方塊可能會要求你選擇演示模式或啟用你的授權。請在同一使用者會話中完成該提示,先於第一次 CLI/MCP 操作或無人值守工作。必要時可手動開啟 Hopper。請參閱 Hopper 啟動與故障排除。

從 skills.sh 安裝技能會做什麼?

該技能為你的代理提供調查指令。使用 npx rea-agents setup 來註冊 REA 的 MCP 伺服器並安裝相應的指令,然後重新啟動你的代理。請參閱 僅安裝技能。

REA 回傳什麼程式碼?

原生分析回傳偽程式碼與組譯碼。JavaScript/Electron 分析回復模組及其關係。你的代理使用這些發現來編寫並測試實作;範例展示提供實作範例。

REA 會上傳我的應用程式嗎?

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

如果我遇到錯誤該怎麼辦?

先更新;最近的發行版本可能已修復此問題。

對於使用 npm install --global 或 bun add --global 安裝的 CLI:

rea update

通過 npx 進行代理設定:

npx rea-agents@latest setup

如果你正在使用代理,完成 設定重新整理 並重新啟動它。重試相同任務。如果問題仍然存在,開啟一個 issue,並提供你的 REA 版本、目標型別、重現步驟及錯誤輸出。

檔案

先從網站的 實作範例 開始。 欲瞭解精確選項、先決條件與結果合約:

透過 SECURITY.md 報告漏洞。

星號歷史

🎉 110,000 GitHub 星號 — 謝謝!

感謝所有使用 REA、報告錯誤、提出功能需求、測試版本及貢獻修復的人。

免責宣告

請參閱 DISCLAIMER.md 以取得負責任使用指引。

本專案對於非法或未授權使用的立場涵蓋所有 REA 版本、發行管道與平臺;每份副本仍保有其適用授權。

REA 供合法研究、教育、互通、軟體儲存,以及對您擁有或已獲授權檢查之軟體進行分析。

貢獻

我們很樂意得到您對 REA 的協助!開啟議題以報告錯誤或建議功能,或 送出 Pull Request 以改程序式碼或檔案。

參見 CONTRIBUTING.md 以瞭解開發環境設定與檢查,testing 以瞭解驗證流程,及 architecture map 以瞭解專案結構。

授權

MIT

REA 所撰寫之程式碼採用 MIT 授權。第三方素材保留其自身授權與版權宣告;請參閱 Third-party notices 以取得相依套件清單、保留授權文本與外部工具條款。

您必須合法取得並獲得授權才能使用商業工具,包括 IDA Pro / Hex-Rays 反編譯器、Hopper 與 JEB,且須遵守其適用授權。 REA 不授予任何工具授權、金鑰或啟用權。試用與示範仍受供應商條款限制,包括使用者、功能、自動化與輸出分享限制。 破解副本、盜用金鑰、未授權金鑰分享與繞過授權限制均不被授權。 此指引不會修改 MIT 或第三方授權。

來源:Hacker News (official RSS) · github.com