LinusandClaude Opus 5.5 ab9bb3eae9 Add unblob so REA can extract firmware
unblob 26.6.4 (the version REA is verified with) is installed from its
PyPI wheel into /opt/unblob, with dependencies pinned to its uv.lock at
the release commit. A wrapper puts that venv first on PATH, and
REA_UNBLOB_COMMAND points REA's extract_firmware at it.

Its extractors follow upstream's install-deps.sh: Ubuntu packages,
sasquatch v4.5.1-6 (also used by binwalk) and onekey-sec's e2fsprogs
fork, whose debugfs rdump options the ext2/3/4 handler needs. The build
checks that unblob finds every extractor.

The uv.lock converter moves to scripts/ and skips the locked project
itself generically, since ghidra-mcp and unblob both use it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 18:20:01 +01:00

claude_re_setup

A Docker-based reverse-engineering workstation for Linux. Claude Desktop is connected over MCP to Ghidra and to REA ("Reverse Engineer Anything"), and binwalk, unblob and esptool are installed alongside them. Nothing beyond Docker and an X server (or XWayland) is needed on the host.

Usage

./run.sh            # build the image if needed, pick a folder to share, start
./run.sh --build    # rebuild the image first
./run.sh --workspace ~/re/target-x    # share this folder without asking
docker stop claude-desktop            # stop everything

The shared folder is mounted at /workspace in both containers. Sign in to Claude Desktop on every start; the sign-in is not kept. Closing Claude Desktop or Ghidra's project window stops everything.

What runs where

Container Contents Network
claude-desktop Claude Desktop, Ghidra GUI + GhidraMCP, binwalk, unblob, esptool default + internal
claude-re-mcp REA MCP server (headless Ghidra, binwalk, unblob), no display internal only, no internet

Both containers run from the same image. REA gets its own container because some of its tools run the target. Claude Desktop reaches it at http://rea:8765/mcp through mcp-remote.

MCP servers in Claude Desktop (claude-desktop/claude_desktop_config.json):

  • ghidra: needs a program open in Ghidra's CodeBrowser.
  • rea: opens files from /workspace by itself, with its own headless Ghidra project.

Sources

Versions and checksums are pinned in the Dockerfile. CLAUDE.md has the details.

S
Description
No description provided
Readme
219 KiB
Languages
Dockerfile 49.3%
Shell 48.8%
Python 1.9%