Files
reverse-engineering-anything/docs/readme/README_zh-TW.md
T
fd39977c32 docs(desktop): set up a desktop build host from a fresh Linux machine (#9184)
* fix(desktop): keep a program word and a directory's neighbor

The program after env stays the program even when a captured file sits in a
folder of that name. A selected directory is not a database, so a neighboring
file keeps the parent folder's spelling.

* fix(desktop): record whether a selected path is a directory

Capture stores the walked path's kind. A neighboring file of a selected
directory keeps the parent folder's spelling even when that directory never
changes and its children are not content roots.

* fix(desktop): mark containing paths without a pairwise scan

A recorded path marks its known ancestors as directories in one walk up
the path, instead of comparing every recorded path with every other.

* fix(desktop): keep a selected folder that is named like a database log

A folder the caller selected stays a selected root when its name ends in
-journal or -wal. A generated log beside a database file still does not.

* fix(desktop): refuse a build command that exceeds the argument vector

Splitting one argument still leaves the whole command under Linux's E2BIG
limit. A request past that budget is refused before the process starts.

* fix(desktop): remap a captured path in an env assignment

The program word stays the program. A NAME=value assignment keeps its name
and follows a captured path value when that path's spelling moves.

* fix(desktop): keep oversized text out of draft guards

A value or line longer than the draft's text bound is not copied into a
guard, so one large frame cannot fill the task by itself.

* docs(desktop): correct dconf and check-preview guidance

A dconf version kept without its bytes is unreadable, not an empty key
list. A values preview is copied into a check only when it is an uncut scalar.

* fix(desktop): keep an empty env value empty

An empty assignment is not a path. Resolving it named the working directory
and rewrote the value when that directory's spelling moved.

* fix(desktop): keep a run's font on the run, not the frame's text

A formatting attribute such as Scribus FONT is not the document's words.
Joining it across runs made a frame-wide text check of ItalicBold that
failed when a run was split. The font stays a value check on its own run.

* fix(desktop): do not pair JSON records by a selector-shaped field

A field named @record_id matched the id suffix and became [@record_id=one],
which reads an XML attribute. Records paired while their pointers matched
nothing. Names that start with @ or > are not id fields.

* fix(desktop): count a save-numbered id once when pairing members

xml:id and draw:id values such as id123456 were both generated and
numbered, so the same selector was counted twice and refused. A text
edit of two elements keyed only by those ids now keeps its check.

* fix(desktop): preserve selected state directory aliases

* docs(desktop): explain tool and skill refresh prerequisites

* fix(desktop): align nested state selections with aliases

* fix(desktop): check build runtime export capability

* fix(desktop): provide complete runtime repack command

* fix(desktop): retain runtime probe failures

* test(desktop): identify capture independently of schema preflight

* fix(desktop): preserve document URLs and value formats

* fix(desktop): bound added checks and omit noisy text guards

* fix(desktop): exclude unseeded locks from task checks

* fix(desktop): preserve draft bounds and launch URLs

* fix(desktop): render draft values using their source format

* fix(desktop): preserve launch URLs and JSON draft values

* fix(desktop): recognize captured file URL documents

* fix(desktop): render captured file URLs for runtime home

* fix(desktop): distinguish phone numbers from save metadata

* fix(desktop): preserve launch URLs and user text

* fix(desktop): preserve captured URLs and user text

* fix(desktop): preserve local file URL authority

* fix(desktop): preserve local file URL authority

* fix(desktop): preserve local file URL authority

* fix(desktop): render captured file URLs at launch

* fix(desktop): classify numeric timestamps using field context

* fix(desktop): classify numeric timestamps using field context

* fix(desktop): classify numeric timestamps using field context

* fix(desktop): retain context for generated draft values

* fix(desktop): retain context for generated draft values

* fix(desktop): retain context for generated draft values

* test(desktop): cover generated IDs in text guards

* test(desktop): cover generated IDs in text guards

* test(desktop): cover generated IDs in text guards

* fix(desktop): isolate launcher URL encoding

* fix(desktop): isolate launcher URL encoding

* fix(desktop): isolate launcher URL encoding

* fix(desktop): isolate launcher URL encoding

* fix(desktop): retain clean text in noisy record fields

* fix(desktop): classify added line values in one pass

* fix(desktop): apply XML quote rules to text drafts

* fix(desktop): distinguish XML attributes from quoted text

* fix(desktop): preserve parsed XML line context

* fix(desktop): retain partial XML syntax facts

* fix(desktop): recognize markdown autolinks in drafts

* fix(desktop): reuse export exclusions in task drafts

* docs(desktop): clarify gzip scrub limits

* style(desktop): format the noisy-record draft files with the pinned oxfmt

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* test(desktop): move launch execution to boundary suite

* fix(desktop): redact build schema failure output

* refactor(desktop): normalize schema failure once

* fix(desktop): omit unsafe schema parser snippets

* fix(desktop): preserve draft change and selected path evidence

* test(desktop): group retained dconf note regressions

* fix(desktop): respect archive entry format in draft checks

* test(desktop): separate unowned-file draft note cases

* fix(desktop): preserve explicitly selected journal documents

* fix(xml): avoid scanning selected ancestors per tag

* fix(desktop): exclude covered text runs from draft counts

* fix: preserve text when drafting desktop checks

* fix: restore nested desktop state aliases

* refactor: share UUID recognition across draft checks

* fix: retain multiline XML attribute context

* fix: retain relationship identifiers in task drafts

* docs: clarify desktop draft identifier handling

* test(desktop): type formatting run cases as pairs

* test(desktop): separate markup boundary regression group

* test(desktop): remove duplicate seed filename case

* docs(desktop): clarify task checks before scratch export

* fix(desktop): respell selected paths in file URLs

* test(desktop): group captured document spelling cases

* fix(desktop): bound draft preview serialization

* fix(desktop): restore selected state aliases

* fix(desktop): respect entry format in draft noise

* test(desktop): match exported alias evidence at its JSON boundary

* fix(desktop): retain app state logs in exported seeds

* fix: align desktop numeric seed comparisons

* test(desktop): keep one draft exclusion fixture import

* test(desktop): retain log eligibility across draft test groups

* style: fix desktop launch test formatting

* style: format native command path schema

* fix(desktop): map selected external launch paths

* style(desktop): format seed document regressions

* test(desktop): group launch URL regressions

* fix(desktop): omit redundant nested state aliases

* fix(desktop): compare added free text as a whole

* fix(desktop): check recompressed seeds as shipped

* docs(desktop): clarify recovered seed format

* test(desktop): group shipped gzip seed checks

* fix: retain quoted identifier text in task drafts

* fix: recognize Unicode XML in desktop state readers

* fix(desktop): bound nested draft checks

* fix(desktop): explain missing arrays in truncated views

* fix(desktop): find XML type references in archives

* test(desktop): remove duplicated capture assertions

* fix(desktop): retain nested omitted text boundaries

* style(desktop): format draft value imports

* test(desktop): group model and draft value checks

* fix(desktop): map captured launch paths once

* refactor: remove unused whole-text guard state

* refactor: stop passing unused text children

* test: align free-text checks with whole-note policy

* fix: validate recompressed desktop archive seeds

* style(desktop): format archive seed regression

* fix(desktop): retain placed-item sibling guards

* fix(desktop): redact runtime schema errors

* fix(desktop): normalize captured file URLs

* fix(desktop): report seeded files by capture path

* fix(desktop): retain startup readiness failure stage

* fix(desktop): retain JSON date checks

* fix(desktop): preserve archive formatting checks

* fix(desktop): preserve explicitly selected journal files

* fix(desktop): report build command transport limits

* docs(desktop): clarify unreadable dconf versions

* test(desktop): remove duplicate history regression

* fix(desktop): align XML names with exported reader

* fix(desktop): scrub XML independently of reader compatibility

* style(desktop): format review fixes

* style(desktop): format capture review fixes

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: morluto <76467478+morluto@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-09 22:59:45 +08:00

30 KiB
Raw Blame History

English · 简体中文 · 繁體中文 · 日本語 · 한국어 · Türkçe · Русский · Tiếng Việt · ไทย · Deutsch · Español · Français · Українська · Polski · Português (Brasil) · العربية · فارسی · Bahasa Indonesia · Italiano · Ελληνικά · മലയാളം · Roman Urdu · Română · Български

REA:逆向一切

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

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

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

morluto%2Frea | Trendshift

網站 · 指南 · 案例

加入 REA 的 Discord 社群

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

npx rea-agents setup

Important

REA 官方來源: morluto/rea, rea.tools, rea-agents (npm). 請透過這些官方來源提供的安裝與發布連結取得 REA。相似的儲存庫名稱或複製的 README 不能證明下載內容來自官方。


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



Discord
加入逆向工程社群

Discord · 問答 · 成果分享


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

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

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

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

快速開始

Linux 上的 Ghidra、JADX、韌體工具啟動和靜態 JavaScript/Electron 分析需要在 REA 的 PATH 中提供相容 procps 的 ps,用於檢查程序所有權。復原步驟見安裝指南的 Linux 程序所有權前提。

設定 AI 代理

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

npx rea-agents setup

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

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

MCP 預設使用精簡輸入 Schema,以減少上下文開銷。需要完整欄位說明和巢狀驗證細節時,請在 MCP 註冊中設定 REA_MCP_INPUT_SCHEMA_PROFILE=full。兩種設定都保留完整工具集和標準的伺服器驗證;見 MCP 合約指南。

設定會直接登記所選執行環境和 REA 入口指令碼。使用套件執行器時,請保留其快取項目及執行環境,並從目標專案以外的可信任目錄取得套件。 請參閱安裝指南。

預設會公布完整輸出 Schema。若用戶端限制 tools/list 的大小,請在 MCP 登記中設定 REA_MCP_OUTPUT_SCHEMA_PROFILE=compact 或 off。伺服器驗證和結構化結果仍保持完整。 請參閱 MCP 合約指南中的「Output schemas」。

詢問 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 install --global 或 bun add --global 安裝的 CLI 使用:

rea update

rea --update 是 rea update 的別名,接受相同的全域輸出選項。更新命令合計最多保留 4 MiB 的 stdout/stderr;命令結束後會拒絕過大的中繼資料回應,詳細安裝記錄採用有界診斷。進度輸出遵守終端背壓並等待已提交的寫入完成。

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

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

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

npx rea-agents@latest setup

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

REA 的工作原理

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

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

打開完整尺寸的圖示。

可以分析什麼

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

目標 REA 返回的內容 要求與指南
原生二進位檔案 偽程式碼、組合語言、字串、符號、呼叫和引用 Hopper、Ghidra、IDA 或 Kuna;原生分析
離線 ELF 佈局 節、段、原始符號/重定位資訊及靜態防護機制候選項 Linux x64 上由呼叫方提供的 pwntools;二進位診斷
Go 二進位檔案 內嵌編譯器版本、模組、替換項和建置設定 內建靜態 ELF/PE/thin Mach-O 檢查;無需安裝 Go
WASM 工件 驗證、節、精確的匯入/匯出 WAT 形式及解碼後的 WAT 呼叫方提供的 WABT 1.0.42;inspect_wasm_artifact
EVM 位元組碼 分派選擇器、位元組偏移、推斷的參數和狀態可變性 Linux x64 上的本地原始位元組/十六進位輸入載體;離線 EVM 指南
Rust binaries Embedded cargo-auditable dependency list Rust binaries
Erlang BEAM IFF chunks, atoms, exports, and tables Built-in static BEAM inspection; Erlang BEAM
PE certificates Authenticode WIN_CERTIFICATE entries and PKCS#7 signer/X.509 identity fields Built-in static PE inspection; PE certificates
PE imports Import and delay-load DLL names, ordinals, IAT RVAs and pefile import hash Built-in static PE inspection; PE imports
Windows shortcuts Shell Link target, arguments, working dir, ExtraData and Tracker droid facts Built-in static LNK inspection; Windows shortcuts
ELF notes PT_NOTE/SHT_NOTE owners, types, GNU build-id and ABI-tag fields Built-in static ELF inspection; ELF notes
Binary hardening PIE, NX, RELRO, CFG and related header flags for ELF, PE and Mach-O Built-in static header inspection; binary hardening
Apple IPS crashes .ips metadata, threads, images, registers and crash classes Built-in static JSON inspection; Apple IPS
Linux kernel modules .modinfo keys, __versions CRCs, this_module presence, and signature trailer Built-in static ELF inspection; kernel modules
已記錄的 Linux 崩潰 原始 note 記錄、每個已記錄執行緒的暫存器/訊號及可選的對映候選項 Linux x64 上由呼叫方提供的 pwntools;可選的 GDB/pwndbg;已記錄崩潰
桌面安裝目錄 執行階段候選、支持檔案、元件標記與後續操作 有界的目錄與檔頭檢查;桌面應用
JavaScript / Electron 模組、匯入、source map、路由、IPC 和原生附加元件關係 Node.js 和 npm;應用分析; Linux: procps ps
網站 頁面結構、腳本、網路觀察結果和按請求獲取的螢幕擷取畫面 Chrome 系瀏覽器;瀏覽器分析
已保存的網路擷取 請求、回應、可訪問的酬載和來源位置 HAR / Fiddler Everywhere SAZ;原生 mitmproxy 擷取需要 Linux 上的 mitmdump;擷取指南
封包擷取 端點、DNS、TLS SNI、通訊協定分佈和 HTTP 請求 呼叫端提供的 tshark 和 capinfos;pcap 指南
.NET 程式集 中繼資料、CIL 指令、聲明的原生依賴和建置對比 靜態檢查;托管程式碼指南
PyInstaller CArchive, PYZ, Python bytecode Static inspection; Python packaged applications
Deno compile binaries Virtual files, entry point, recorded options, npm snapshot length Static inspection; Deno compile executables
Android APK 清單聲明、類別、反編譯的方法和引用 Linux/macOS/Windows x64 上的無界面 JADX 和完整 JDK;Android 指南
Android 裝置 裝置、套件、程序、日誌、傾印、螢幕擷取以及 APK/檔案傳輸 呼叫端提供的 adb(模擬器或實體裝置);ADB 指南
JEB 專案 引擎支援的專案單元、成品摘要和型別/方法的虛擬碼 由呼叫端啟動、提供 MCP 的 JEB 用戶端,透過 REA_JEB_MCP_URL 選擇;JEB 指南
Android 資源 解碼後的清單、字串表、語系和版本資訊 呼叫端提供的 Apktool 啟動器;資源指南
Flutter 應用 Dart 快照雜湊、依 ABI 的程式庫雜湊及引擎建置來源 無(靜態 APK 解析);Flutter 指南
韌體 區域、提取結果和轉交原生分析的內容 Linux 上的 Binwalk / Unblob;韌體指南
封包記錄 指定欄位、重複值、篩選條件與解碼規則 Linux: TShark 4.x + prlimit; 封包分析指南
錄製的邏輯訊號 解碼註解、樣本範圍與診斷資訊 Linux: sigrok-cli 0.7.2 + prlimit; 訊號記錄指南
軟體包與資源 檔案清單、摘要、plist、Apple bundle 結構和提取的資源 製品與 JavaScript 指南、Apple 應用
處理程序行為 終端輸出、互動、退出和檔案系統觀察結果,以及執行對比 支援原生 PTY 的 Linux/macOS;處理程序擷取
SQLite 資料庫 資料表、欄位、索引、檢視、觸發器和選定普通資料表的列 本機資料庫/WAL 快照;Node.js 24.x >=24.15 或 26+,具備原生 SQLite 限制 API
GPU 程式碼物件 CUDA/HIP 目標、選定核心參數和資源、保留的 PTX 文字 內建靜態檢查 ELF/PE/fatbin/CUBIN/PTX; GPU
模型檔案 GGUF / safetensors 中繼資料、張量宣告和衍生總量 標頭檢查;可選完整檔案雜湊; GGUF / safetensors
IL2CPP 中繼資料 Unity global-metadata.dat 組件映像、型別與方法名稱、索引範圍 靜態解碼版本 24、27、29、31 和 39;無需 Unity
Godot PCK 封存清單與擷取、原始標頭和目錄資訊、選定內容身分 靜態格式 2、3 和 4;無需 Godot
APK 簽章 v1/v2/v3/v3.1 簽署者、憑證指紋、金鑰輪換和摘要自洽性 內建靜態檢查; inspect_apk_signature

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

若要離線檢查原生二進位檔,REA 也支援由呼叫端自行提供的 GNU objdump 和 Rizin。逆向工程工具指南說明了分析提供者的設定、CLI 指令及 Evidence 的限制。REA 不會安裝或更新這兩個分析提供者。

大型二進位檔可透過 REA_GHIDRA_STARTUP_TIMEOUT_MS 或 REA_HOPPER_STARTUP_TIMEOUT_MS 延長提供者啟動期限。

不同提供者支援的原生格式和主機系統有所不同。請參閱 Hopper 與 Ghidra 設定、IDA 指南、Kuna和實驗性 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 建立 RL 環境

錄製 Web 應用程式工作階段,將 API 轉為工具,並匯出 AI 代理可使用的環境。用 AgentEnv 執行,再加入任務與獎勵檢查,用於 RL 訓練或評測。

建立環境指南 · 在 X 上觀看示範

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

建立 RL 環境

為 AI 代理建立本機練習環境,讓它練習尋找 issue、建立資料夾等任務,無需執行原應用程式。這個環境可用於強化學習(RL),也可用於測試代理完成任務的能力。

REA 將錄製的 API 請求與回應轉為代理可呼叫的工具。環境使用錄製的資料,只有錄製證據確認了某項修改的效果,才會支援該修改。

在代理中設定好 REA 後,將下方範例的網址與資料夾任務替換為你自己的:

使用 REA 為我的測試 Web 應用程式建立 RL 環境,網址是
http://127.0.0.1:3000。
涵蓋列出、建立、重新命名與刪除資料夾。可以建立和刪除測試資料夾,
但不要修改既有資料。
將環境儲存到名為 my-env 的資料夾。檢查哪些操作可用,並告訴我如何執行。
改用命令列

如果你已經將應用程式在瀏覽器中的請求與回應錄製成檔案,可以使用這些命令。執行產生的環境還需要 AgentEnv 與 Docker。

rea environment-build ./session.har ./my-env --name my-env --json
agent-env run ./my-env

REA 匯出可直接執行的環境,並附帶基本測試,檢查環境能否啟動與回應。將它接入 RL 框架,即可設定任務目標、加入獎勵檢查並執行訓練。

建立環境指南 · 環境參考文件 · 在 X 上觀看示範

桌面應用程式環境

REA 也能為 Linux 桌面應用程式建立環境,代理透過螢幕截圖、滑鼠和鍵盤使用它。只要一行請求,例如「幫我建立一個 Gnote 環境,讓代理在購物清單筆記中加入橄欖油」,你的代理就會在本機建置電腦上安裝應用程式、撰寫任務、匯出環境,並在全新的電腦上檢查任務。建立環境的機器需要 amd64 或 arm64 上的 Linux、Docker,以及指南固定的 agentenv 框架版本。

設定桌面應用程式環境

常見問題

哪些 AI 代理可以使用 REA?

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

需要 Hopper、Ghidra、IDA 或 Kuna 嗎?

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

需要先啟動 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 達到 400,000 個,感謝大家!

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

REA 的 GitHub Star 歷史

免責聲明

負責任使用的相關指引請見 DISCLAIMER.md。

REA 用於合法的研究、教育、互通性、軟體保存,以及分析你擁有或獲准檢查的軟體。

本專案對非法或未經授權使用的立場涵蓋所有 REA 版本、分發管道和執行平台; 每份副本仍適用其隨附的授權。

參與貢獻

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

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

授權條款

MIT

REA 自行編寫的程式碼採用 MIT 授權;第三方內容保留各自的授權和著作權聲明。 依賴清單、授權原文及外部工具條款見第三方聲明。

使用者須自行合法取得商用工具及所需使用權,包括 IDA Pro / Hex-Rays 反編譯器、 Hopper 和 JEB,並遵守各自授權。REA 不提供工具授權、金鑰或啟用權利;試用版和 展示版也須遵守廠商對使用者、功能、自動化及輸出分享的限制。不得使用破解副本、 竊取或違規共用金鑰,也不得繞過授權限制。本指引不變更 MIT 或第三方授權。