← All guides

FOUNDATIONS / 5 MIN READ

What is REA? A practical introduction

Understand how REA connects AI agents to reverse engineering tools, what it can inspect, and where its capabilities end.

Independent guide based on official documentation. Check the linked sources for current requirements. Commands and examples have not been tested against a local REA installation.

A bridge between your agent and analysis tools

REA stands for Reverse Engineer Anything. It provides a CLI and an MCP server that let a coding agent inspect software artifacts and gather evidence. MCP is the connection that allows an agent to call external tools and read their results.

The useful workflow is a sequence of focused questions: find the relevant code, inspect its callers and dependencies, check the available evidence, then implement and test your own version. REA supplies analysis capabilities; the agent interprets the findings.

Different targets need different approaches

JavaScript and Electron analysis can inspect local application files, modules, imports, routes and inter-process communication. Native binary analysis can expose assembly, pseudocode, symbols, strings and references through a configured engine such as Ghidra, Hopper or IDA.

Website inspection can observe browser-visible structure and activity. It does not reveal a remote server's private source code or database. Other supported target types have their own tools, platform requirements and limits; check the official documentation for your exact target.

Ask about one behavior

A narrow question makes the investigation easier to verify. Instead of asking for an entire application to be recreated, choose one behavior with observable inputs and outputs.

Investigate how this application's export feature works.
Identify the entry point and relevant dependencies.
Show source locations or instruction addresses for each conclusion.
Separate observed facts from hypotheses and unresolved questions.

Evidence still needs interpretation

Pseudocode is a reconstruction of compiled behavior, not the original source. Minified JavaScript may have lost meaningful names. A static call candidate is not proof that a path ran in a particular session.

Keep the original artifact and record its version or hash. Confirm important conclusions with a runtime observation or a controlled input/output comparison. A convincing explanation is only a starting point for validation.

CHECK THE PRIMARY SOURCES

Further reading