
Reverse Engine Anything Plus
io.github.Alyhnte由 GitHub 帳號 Alyhnte 發布v0.13.0更新於 Oct 24, 2026
Conduit 即時除錯核心(30 個凍結工具)+ 通過 MCP stdio/HTTP 提供的 Rea 靜態逆向工程域。
AI 翻譯由 AI 模型根據下方的原文描述翻譯,可能有誤。
原文描述
Conduit live-debug core (30 frozen tools) + Rea static RE domains over MCP stdio/HTTP.
概覽
Reverse Engine Anything Plus 的本機 MCP 服務;無需登入;STDIO。
暫無 AI 概覽:以下資訊來自註冊中心條目和服務本身。
安裝
在 SourceWeft 中
- 開啟 儀表板中的 Reverse Engine Anything Plus,將其新增到工作區。
- 為需要使用其工具的對話啟用該服務。
Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。
其他 MCP 客戶端
參照 儲存庫 中的啟動說明。
README
Reverse Engine Anything Plus
One MCP server for reverse engineering — live Windows debugging plus a 161-tool static-analysis suite for PE/ELF, Mach-O, .NET, APK, IL2CPP, WASM/EVM, firmware, and the web.
Your agent asks questions; rea-plus inspects the binary and answers with evidence, not guesses.
[CI] [Release] [Tools] [Tests] [Node] [License: MIT]
Install · Clients · Docker · Features · Tools · How it works · Security · Roadmap · FAQ
✨ Why rea-plus?
- 🐞 Real debugging, not screenshots — x64dbg, cdb (WinDbg), and Frida engines behind one frozen 30-tool core: breakpoints, stepping, registers, memory, call stacks, time-travel checkpoints.
- 🧰 161 static tools — Ghidra headless, rizin/radare2, .NET CIL (dnfile) and ILSpy, jadx/apktool/adb, WASM + EVM, firmware, browser/HAR, UPX, PE/ELF/Mach-O readers, and more.
- 🤝 Honest by design — a missing backend answers
capability_unsupportedwith an install hint. Nothing fakes a result, errors come back as proper MCPisError, and mutating live-debug calls requireconfirm:true. - 🧩 191 tools, 2 resources, 7 prompts — the full generated catalog lives in
docs/TOOLS.md;REA_TOOLSETSlets small-context clients load only a profile slice (see Configuration). Without an HTTP token, only a 44-tool read-only allowlist is registered instead of the full surface. - 🔌 Two transports — stdio for local agents, streamable HTTP (
/mcp+/health, bearer token, localhost Host/Origin validation) for shared setups. - 🧪 Proven, not promised — a 91-file default test lane, Ubuntu CI for the released line, and protocol tests that drive the real compiled server.
🚀 Install
Requirements: Node.js ≥ 20. Everything else (Ghidra, rizin, jadx, Frida tooling, …) is optional — tools light up as backends appear; run
doctorto see your machine's map. Windows is required for the live debuggers (x64dbg/cdb/Frida attach); static analysis runs anywhere.
One-click (Cursor / VS Code)
[Add to Cursor] [Install in VS Code]
Setup wizard (standalone download)
No npm? Download setup.mjs (+ Windows setup.ps1) from the latest release — needs only Node.js 20+:
Or inside the package: npx -y rea-plus rea-plus-cli setup (same wizard).
npx (no clone)
Any stdio MCP client can launch it straight from the npm registry:
Publishing status:
[email protected]is live on the npm registry andio.github.Alyhnte/rea-plusis published on the MCP Registry. The supported installs arenpx -y rea-plus(above) and GHCR (see Docker).
Clone & build
Optional extras
Then point your agent at it and ask it to inspect something.
🔌 Client setup
Every client below gets the same server. Ready-made files live in configs/.
Claude Desktop
Add to claude_desktop_config.json (see configs/claude-desktop/):
Claude Code
Or drop configs/claude-code/.mcp.json into your project root.
Cursor
Click Add to Cursor above, or use configs/cursor/mcp.stdio.json (clone path form) / mcp.http.json (HTTP form).
VS Code
Click Install in VS Code above, or copy configs/vscode/mcp.json to .vscode/mcp.json in your workspace.
Windsurf
Use configs/windsurf/mcp_config.json as your mcp_config.json.
Codex
Append configs/codex/config.toml to ~/.codex/config.toml:
opencode / generic HTTP
See configs/opencode/ for stdio and HTTP variants.
🐳 Docker
Images are published to GHCR on each release (ghcr.io/alyhnte/reaplus). Windows-only
debuggers (x64dbg/cdb) report capability_unsupported inside a Linux container; static
analysis, the CLI, and both transports work.
🧰 Features
The complete, generated reference — 191 tools + 2 resources (rea-plus://server-info, rea-plus://capabilities-safety) + 7 prompts (packer-triage, dotnet-malware-triage, android-triage, pe-crash-triage, elf-linux-triage, binary-diff, evidence-report) — is in docs/TOOLS.md. The table below is only a domain summary.
⚙️ How it works
- Frozen core. The 30 conduit tool names are immutable (
src/facade/toolNamespace.ts); renames are forbidden, so existing conduit clients keep working. - rea domains. 161
rea_*tools register centrally insrc/server/registerReaTools.ts. - Confirm gates. Live operations that mutate a target require
confirm:true; otherwise you getconfirmation_required, never a silent side effect. - One catalog.
mergedCatalog()(8 conduit + 16 rea prerequisite entries) is the single sourcedoctorreads for versions and download links. - Resources + prompts. Two static, read-only resources (
rea-plus://server-info,rea-plus://capabilities-safety) and seven side-effect-free prompts (packer-triage,dotnet-malware-triage,android-triage,pe-crash-triage,elf-linux-triage,binary-diff,evidence-report) are registered alongside the tools; prompts only return text and never run a tool. - Typed outputs (partial).
structuredContentmirrors the text JSON, and coverage is deliberately partial: 187 tools declare anoutputSchemaand 191 tools carry annotations. Tools outside the schema set return text JSON without a declared output schema — seedocs/TOOLS.mdper tool. - Toolset profiles.
REA_TOOLSETSfilters registration to a profile slice (comma-separated union; unknown names fail startup instead of silently falling back toall). Resources and prompts are not filtered. New tools land inallonly (fail-closed). - Roots (legacy + modern). With
REA_ROOTS=1on the legacy stdio path, client roots can only narrowREA_WORKSPACE_ROOT; they can never widen it. Modern-protocol Roots uses the SDK multi-round-trip flow (inputRequired+inputResponses);notifications/roots/list_changedonly exists pre-2026, so refresh happens on the next MRTR round. - Progress (generalized). Stage helpers (
createStageProgress/onAbort) pace notifications (~20/s) and clean up on cancel;rea_process_runpilot unchanged,rea_scan_repo+rea_jadx_fullstaged. Other synchronous handlers remain out of scope. - Async jobs (opt-in). With
REA_ASYNC_JOBS=1, five job tools (rea_job_start/status/result/cancel/list) run whitelisted tools (rea_process_run,rea_scan_repo,rea_behavior_run) through a bounded in-memory queue (2 concurrent). Default surface stays 191 tools; opt-in surface is 196.
💻 CLI
The same engines are scriptable from the terminal (rea-plus-cli, or node dist/cli/index.js in a clone):
🔧 Configuration
All configuration is environment variables — no config files to edit in the server itself.
External tools are discovered from these variables and PATH only — no machine-specific paths are baked in.
🔒 Security model
rea-plus is a debugger: by design it can launch, attach to, and instrument local processes. Treat access to it like shell access.
- stdio first. The default transport never opens a port.
- HTTP is locked down. Bearer token (constant-time compare), localhost Host/Origin validation against DNS-rebinding/CSRF, per-IP rate and concurrency limits (
REA_HTTP_RATE_LIMIT_PER_MIN,REA_HTTP_MAX_CONCURRENT), and — when started without a token — a loud warning plus a reduced surface of 44 read-only, path-free allowlist tools (intersected withREA_TOOLSETS) instead of all 191. - Workspace boundary (opt-in). With
REA_WORKSPACE_ROOTset,rea_*path arguments, the conduitopen_target/debug_openpaths, and user-visible derived writes must stay inside the root (realpath-checked, so junction/symlink escapes fail). Operator temp/cache surfaces (browser artifacts, Ghidra tmp dirs, the hopper tmp request file, the apktool framework cache) are a documented exception and are not forced inside the root. - Audit without content.
REA_AUDIT_LOGrecords one JSONL line per tool call with only time, transport, tool name, duration, andisError— never arguments, tokens, paths, or target content. - Inputs are validated. Addresses that reach backend command languages are restricted to hex/decimal/symbol form — no
;/!command injection into r2/rizin. - SSRF gate. Outbound helper calls (e.g. the JEB bridge) are loopback-only unless the operator opts in; link-local/metadata hosts are always blocked.
- No fake results. Missing capability ⇒
capability_unsupportedwith a reason; handler errors ⇒ MCPisErrorwith the message only (no stack traces). - No target execution in static paths. Inspection tools read bytes; they never run the sample. Run unknown binaries in a VM — that is what the live lane is for.
🧪 Tests
97 test files. The default lane (npm test) runs 91 files and excludes the live-injection/debugger, packet-capture, browser, e2e, and local-Ghidra suites — those touch real processes or machine-specific installs and belong to a VM or a dedicated CI job (npm run test:live). Every file is capped at 90s with process-tree kill, so a hung backend can never hang the lane. The released line's CI runs the default lane on Ubuntu (Node 20 + 22).
Details: docs/VERIFY.md · docs/MCP-CONTRACTS.md · CHANGELOG.md
🎬 Example Sessions
Three end-to-end analysis sessions written with real tool commands and real output (no invented numbers; the capability_unsupported path is explained when a backend is missing):
docs/example-sessions/ghidra-analysis.md— Ghidra headless: import + analysis,rea_ghidra_*(funcs/disasm/strings/decompile), rawanalyzeHeadless/pyghidraRunequivalents, common errorsdocs/example-sessions/ida-comparison.md— IDAidatbatch (rea_ida_idb/rea_ida_flirt), behavior when IDA is not installed, Ghidra ↔ r2 function comparison (rea_diff_*)docs/example-sessions/r2-triage.md— 60-second triage with radare2 (iI/iz/afl/pdf) +rea_r2_callgraph/rea_r2_esil
🗺️ Roadmap
Near the top of the list — the full, prioritized table lives in docs/ROADMAP.md:
- npm + MCP Registry are live (
[email protected],io.github.Alyhnte/rea-plus) — supported installs arenpx -y rea-plusand GHCR - Typed surface is closed: 187 tools carry
outputSchema(4 permanently schema-less) and 191 carry annotations; async whitelist is 3 tools, progress helpers cover the staged tools - Completing the golden binary corpus (expected-output hashes per provider) — including the still-open live Frida VM check and the DEX golden APK acceptance test
- Signed releases + SBOM, and a documented VM sandbox profile for live work
❓ FAQ
Do I need Ghidra, IDA, Hopper, or JEB? No. Static JS/.NET/WASM/EVM and offline inspection work without them; provider-backed depth uses your own installations when present. Commercial tools are never bundled or licensed by rea-plus.
Why does a tool return capability_unsupported?
Its backend is not installed on this machine. The response names the missing capability and where to get it (the same catalog doctor reads). Install it and the tool lights up — no code changes.
Why do live operations need confirm:true?
They mutate a running target (breakpoints, stepping, memory writes). The gate keeps agents from changing program state by accident.
Does it clash with conduit? No. Conduit defaults to port 3847; rea-plus serves 3848, and the 30 conduit tool names are frozen.
npm says the package is not found?
Update your cache — [email protected] is on the npm registry and published on the MCP Registry. Use npx -y rea-plus everywhere above or the GHCR image.
🤝 Contributing
Issues and PRs are welcome — bug reports, feature ideas, docs. Run npm run typecheck and npm test before submitting, keep conduit tool names frozen, and make new tools fail honestly (capability_unsupported, never a fake ok).
If rea-plus saved you an afternoon of hex-editor archaeology, a ⭐ helps other reversers find it.
📄 License
MIT. rea-plus code is MIT licensed; third-party tools and providers keep their own licenses — you must legally obtain and be authorized to use commercial tools (IDA Pro, Hopper, JEB) under their vendor terms.
來源:README.md,提交 c6920d7
工具
0版本歷史
7- v0.13.0最新Oct 20, 2026
- v0.12.0Oct 18, 2026
- v0.11.0Oct 18, 2026
- v0.10.2Oct 16, 2026
- v0.9.0Oct 15, 2026
- v0.8.2Oct 15, 2026
- v0.8.1Oct 14, 2026
評分
已滿足適用檢查項的 40%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
- 近 30 天內可連通25 分
請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。
- 已宣告認證方式10 分
請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。
- 已列出工具15 分
請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。
- 描述必需15 分
- 圖示10 分
- 文件15 分
- 授權條款10 分
請在儲存庫或註冊中心條目中宣告授權條款。