
Sage-is/CleanRoom


Sage-is/CleanRoom

一个带可分页证据的本地 MCP 服务器和 CLI,作为同一想法的独立 Python 实现而编写。
为何被列出:AGPL 许可的工具;对公开想法的独立实现。
安装方法请查看原始来源。
CleanRoom is a local-only Python 3.12 reimplementation of
morluto/rea (MIT), the "Reverse Engineer
Anything" MCP server and CLI. It keeps rea's analysis surface (native
binaries, JavaScript and Electron, web pages, HAR files, .NET, Android, Apple
bundles, EVM bytecode and process captures) in 12 verbs, one Evidence type
and one module per target kind, in under 8,000 lines. rea's ideas, edge cases
and some code are adapted with credit; see NOTICE.
Pre-release. P0 (core, CLI, MCP and the builtin native engine) is in progress. Nothing is published yet.
Once released:
uvx --from cleanroom-re cleanroom
brew tap sage-is/apps && brew install cleanroom
From a checkout: make install, then uv run cleanroom.
| Verb | Inputs | Meaning |
|---|---|---|
| open | target, kind?, engine?, arch? | Detect and bind a target |
| close | none | Close the target and its workers |
| list | what, match?, offset=0, limit=200 | List functions, strings, files, requests and more |
| show | ref, view=auto | Inspect one item |
| xrefs | ref, direction=to\|from\|both | References into, out of, or both ways |
| trace | start, goal?, depth=3 | Breadth-first search over xrefs |
| extract | target, out_dir | Unpack ZIP, ASAR, DMG, firmware or JS bundles |
| diff | a, b, what? | Keyed diff of list output |
| run | argv or url, steps?, breakpoints?, timeout=30 | Capture a process or browser run |
| annotate | ref, name?, comment? | Native annotations, read back |
| evidence | id?, offset?, export?, import? | Page, export or import Evidence |
| doctor | none | Report engines, libraries and prerequisites |
Every result is Evidence: a record with a stable ev_ ID, the engine that
produced it, a confidence and its unknowns. Large results page through
evidence.
claude mcp add cleanroom -- uvx --from cleanroom-re cleanroom mcp
Every engine decompiles on your machine. CleanRoom never sends code to a cloud decompiler.
| Engine | Role |
|---|---|
| Ghidra | Free default; needs JDK 21 |
| Hopper | Optional |
| IDA Pro 9+ | Only when named: engine=ida or CLEANROOM_ENGINE=ida |
| builtin (lief + capstone) | Always available; functions, strings, asm, xrefs; no pseudocode |
make install # uv sync --locked --all-extras
make test # pytest -m "not live"
make ci # lint, tests, build
Design: docs/design.md. Survey of rea: docs/research/.
AGPL-3.0-or-later. Adapted rea files keep their MIT notice; NOTICE lists
them.