Vault

REA (Reverse Engineer Anything) — Candidate Tool and Harness Teardown

An MCP harness that lets Claude Code drive Ghidra, IDA or Hopper in a question-and-answer loop. It was recorded as a candidate for moo1-re, then torn down (2026-10-16) to see what a mature RE harness does that ours doesn’t. Not installed. Ghidra isn’t installed either.

Links: moo1-re · Data-First RE (the DOS overlay wall) · The AI Decomp Wave (earlier video, same trend) · Transpilation as Grounding (why the KOEI work skipped Ghidra) · Contract vs. Substrate (the frame for the comparison) · Theory of the Firm (build vs. buy) · Jevons for Software, CyborgDJ as Controller — the same pattern (inference driving tools over MCP) proposed for DJ analysis

Source: YouTube: Low Level, “I Tested The Viral Reverse Engineering Repo” (~16 min, mostly an overview) · repo morluto/rea (MIT, created 2026-04-14; shallow clone read at d5be402, 2026-10-17 +0800; 61 MB, TypeScript) · npm rea-agents

What it is

Fit check (measured, not guessed)

What a mature harness does — and how ours compares

| REA technique | Our nearest equivalent | Read | |—|—|—| | Every result is an Evidence record: an ID, coverage, limitations, and observation vs. inference vs. unknown kept separate | The rule that a learned fact records its cause (projects SDK) | They enforce it in the schema. We enforce it in prose. Worth borrowing as a field convention for findings files. | | record_unknown / update_unknown: a registry of open questions with revisions and supporting/contradicting evidence IDs | ## Open Questions sections, matched with grep | Vault/CLAUDE.md already names our failure: questions get re-asked or answered without anyone noticing. This is the mechanical fix. Strongest thing to borrow. | | “Missing coverage is unknown, not absence”: a bounded negative search stays bounded | The zero-yield-is-a-wrong-path rule | Same instinct, with REA’s version applied per result. | | Load-image verification: digest the loaded program against the file bytes and relocations | The EXE byte-search verifier (moo1-re) | Verification-independence at the loader layer. Our tools assume the loader is right. | | Reconstruction obligation ledger: a claim closes only when a verifier of comparable authority passes | The oracle ladder (data-first-re) | The same thing written as a closure rule. | | Summary first, then page through retained results, with token-cost measurements in experiments/analysis-efficiency/ (e.g. 4 selective replies cost more than 1 full dossier) | Coordinator holds context and curates the working set | They measure. We don’t. Their numbers are relevant to cost-conscious runs. | | Primitives over workflows; add a workflow only after repeated use shows it’s needed (docs/tool-design.md) | Skills appear after a pattern repeats | Same rule. | | annotate_native_function writes a name and reads it back, but edits are discarded on close | The .toml symbol registry, which persists | We’re ahead here. REA is a per-delivery contract. The vault is substrate. |

Could we build it? The core is an MCP wrapper over headless Ghidra plus an evidence schema, so yes. But reuse beats rebuild: REA is MIT-licensed and already works. The part only we would build is the persistence bridge: exporting Ghidra annotations into our symbol registries so they survive the session.

Discussion — the teardown (Chris, 2026-10-16)

Discussion — the closing claims

Low Level’s three concerns: (1) all software becomes abandonware (who maintains a one-shot clone?), (2) clones are a supply-chain risk, (3) companies will protect their IP by moving software to the cloud, VDI or web apps.

Open Questions

Tags

reverse-engineering, decompilation, claude, youtube