REA (Reverse Engineer Anything)
REA (Reverse Engineer Anything) is a software-analysis toolkit in the morluto/rea repository. It exposes local inspection tools through the Model Context Protocol and a command-line interface. Coding agents use its findings to investigate application behavior and develop their own implementations.[1] The project is written mainly in TypeScript, is released under the MIT License, and is distributed as the npm package rea-agents.[6][8][9] Its GitHub repository was created on 14 April 2026, and the first release on its releases page, rea 0.2.0, was published on 12 July 2026.[8] REA drew wide attention in October 2026: as of 30 October 2026 the repository had about 409,700 stars and 102,600 forks, and the latest release was rea-agents 6.8.0 (25 October 2026).[8]
History
The account morluto owns the repository and holds the copyright line in its license; as of 30 October 2026 it was also the largest committer, followed by N0zoM1z0, who wrote the project blog's essays on game reconstruction and maintains the DX-Ball and TH04 reconstructions used in its case studies.[6][8][18][29] Release 0.2.0 renamed the package and command-line tool to REA. Starting with release 0.3.0 on 12 July 2026, the npm package has been published as rea-agents, and the npm registry records that package's creation on the same day.[8][9]
| Date (2026) | Event |
|---|---|
| 14 April | GitHub repository created.[8] |
| 12 July | First releases published: rea 0.2.0 and 0.2.1, then rea-agents 0.3.0 and 0.4.0.[8] |
| 16 July | Version 2.0.0 released.[8] |
| 2 August | Version 3.0.0 released.[8] |
| 5 October | Version 4.0.0 released.[8] |
| 7 to 9 October | Versions 5.0.0 (7 October) and 6.0.0 (8 October) released. Startup Fortune reported on 9 October that the repository had reached GitHub's trending page with more than 10,400 stars.[8][21] |
| 6 to 14 October | Startup Fortune, citing the tracking site OSSInsight, reported growth from under 10,000 stars on 6 October to 234,477 on 14 October.[22] |
| 25 October | Version 6.8.0 released; it was the latest release as of 30 October 2026.[8] |
The README thanks users for passing 400,000 GitHub stars.[1] The npm download API recorded 1,102,675 downloads of rea-agents between 29 September and 28 October 2026.[9]
How REA works
An agent calls REA through MCP to inspect a local target and trace the code relevant to a question. REA returns findings with their evidence; the agent uses them to ask follow-up questions, explain behavior, or write and test an implementation. CLI commands run the same workflows.[1] REA's guided prompts ask agents to keep observations, inferences and unknowns distinct, and saved Evidence records keep those categories separate.[3][10]
Guided workflows
REA exposes six provider-neutral investigation workflows through the MCP prompts capability. Clients without prompt support can render them through a guided_workflows tool, and the CLI offers rea guided-workflows. Rendering a workflow returns guidance only; it does not inspect a target or start analysis.[10]
| Prompt | Documented purpose |
|---|---|
investigate_feature | Trace a feature from discovery into relevant function evidence.[10] |
compare_application_versions | Compare two shipped artifacts, with optional static and runtime follow-up.[10] |
verify_reconstruction | Evaluate a reconstruction specification against retained comparison Evidence.[10] |
trace_crash | Correlate a crash symptom with static paths and optional process-capture evidence.[10] |
audit_residual_unknowns | Audit unresolved findings and how they were resolved.[10] |
prepare_bounded_process_capture | Design a bounded process experiment before running it.[10] |
Analysis targets
REA's documented targets include the following.[1]
| Target | Documented inspection | Requirements |
|---|---|---|
| Native binaries | Assembly, pseudocode, symbols, and cross-references | Hopper, Ghidra, or IDA.[1] |
| JavaScript and Electron applications | Modules, imports, source maps, and interprocess communication | Node.js and npm.[1] |
| .NET assemblies | Metadata and CIL instructions | Static inspection without a native-analysis engine.[1] |
| Websites | Page structure, scripts, and network observations | A Chrome-family browser.[1] |
| Android APKs | Manifest declarations, classes, and decompiled methods | Headless JADX and a full JDK on supported hosts.[1] |
Static JavaScript and .NET inspection read supplied files without running the application.[1]
As of 30 October 2026, the README's target table had grown to more than 30 rows. Additions include desktop installations, Go and Rust binaries, GPU code objects, GGUF and safetensors model files, Unity IL2CPP metadata, Godot PCK archives, PE certificates and imports, ELF notes, Linux kernel modules, Erlang BEAM files, WebAssembly, EVM bytecode, SQLite databases, saved network and packet captures, firmware, Flutter apps, JEB projects, connected Android devices and PyInstaller executables. Many of these use built-in static parsers; others need an external tool such as pwntools, WABT, TShark, adb, Apktool, Binwalk or Unblob.[1] For native code, the README lists Kuna alongside Hopper, Ghidra and IDA as deep-analysis providers, and REA also supports caller-supplied GNU objdump and Rizin for offline inspection.[1]
The project's Electron guide follows an export operation through a renderer API, a preload bridge, an IPC channel, and a main-process file writer. Static analysis pairs literal channel names with handlers and records source locations. Computed names or ambiguous handlers can remain unresolved; code-derived paths are inferences until runtime observations establish what executed.[7]
Setup and version boundaries
The npm package is rea-agents. The installation guide for release 6.3.0 (9 October 2026) listed support for Node.js 22.x from 22.19, 24.x from 24.11, and 26 or later.[12] As of 30 October 2026, the guide requires Node.js 22.x from 22.23.4, 24.x from 24.22.1, or 26.12.1 and later, and excludes Node.js 23, 25, earlier 26.x releases, and prereleases.[2] On Linux, Ghidra, JADX, firmware tools and static JavaScript analysis also need a procps-compatible ps on the path.[1]
npx rea-agents@latest setup
Setup can configure clients including Claude Code, OpenAI Codex, Cursor, and Gemini CLI. It presents a plan for approval, preserves unrelated configuration, and backs up changed files. Permission to download the npm package does not approve those configuration changes or an optional Hopper installation.[2] The supported-agents table in the installation guide also lists Claude Desktop, Windsurf, Devin, OpenCode, Antigravity, GitHub Copilot CLI, Qwen Code, Kimi Code, VS Code and Grok Build, among others.[2]
Installing REA's agent skill alone supplies instructions, not an MCP registration or analysis engines. Registrations pin the version used during setup. Repository main can describe later functionality than the published package, so the running server's schemas and available tools determine usable features.[2]
CLI and evidence
These illustrative commands inspect a supplied native program through Ghidra; they require that provider to be configured.[3]
rea analyze /absolute/path/to/program --provider ghidra --json
rea decompile /absolute/path/to/program 0x1000 --provider ghidra --json
rea xrefs /absolute/path/to/program 0x1000 --provider ghidra --json
analyze returns an overview, decompile returns pseudocode, and cross-reference queries locate relationships. Each CLI invocation is a separate process. Saved Evidence records retain artifact identity, source locations, observations, inferences, and unresolved findings; import, export, and comparison commands operate on these records.[3]
Analysis snapshots reuse eligible exact results when target bytes, operation, parameters, provider, and settings match. They are not saved provider databases. New queries may still need the analysis engine, and mutation or cursor-dependent calls are excluded from caching.[3]
For MCP clients, binary_session reports tool availability and reasons for unavailable operations. Opening a target establishes a provider binding; REA does not silently substitute another provider after its failure. Cancellation and timeout are separate outcomes, and a rejected client request does not itself prove server work has stopped.[4]
MCP clients control their confirmation interfaces. REA does not require a permission grant on every tool call, and its effect annotations are descriptions rather than authorization controls.[4]
Runtime capture and data handling
Process capture launches a caller-selected command and records bounded terminal, interaction, exit, and selected filesystem observations. It runs with the user's permissions and inherited environment. It is not a sandbox: selecting observation paths does not limit what the launched process can access.[5]
New process captures require Linux or macOS with the supported native PTY backend. Filesystem snapshots can miss short-lived changes; incomplete observations and truncation remain explicit in the result rather than proving two executions equivalent.[5]
The project states that target analysis happens locally, but tool results reach the coding agent and remain subject to its model provider's data policy.[1]
Reinforcement-learning environments
The README describes a workflow for building reinforcement learning and evaluation environments from a recorded web-app session. REA turns recorded API requests and responses into tools an agent can call, and the exported environment supports state changes only when the recording confirms their effects. The command rea environment-build converts a HAR file into an environment; running it requires AgentEnv and Docker.[1]
Case studies
The project website publishes worked case studies that show REA's tool calls next to the resulting explanation or code.[13][14][15][16][17]
| Case study | Target | What the page reports |
|---|---|---|
| DX-Ball | Windows i386 executable of DX-Ball 1.07 (1996) | A sound-pan helper recovered as a small C function. The README says the reconstruction passes 3,205 original-x86 cases and reproduces all 63 compiled function bytes. At a 7 October 2026 checkpoint the wider reconstruction had 55 maintained C functions, 33 of them with matching compiled bytes. The reconstruction repository reported on 22 October 2026 that all 270 authored functions were exact.[1][13][29] |
| TH04 | PC-98 DOS executable of Touhou 4: Lotus Land Story | REA inspected a 16-bit bullet-angle helper. The TH04 reconstruction project's compiler checks, recorded on 3 October 2026, report a 2,139-byte section of bullet-generation code matching the original.[14] |
| Aegis Authenticator | Android APK, Aegis 3.4.3 | In the 3,077-class package, REA searches and reference traces located the time-based one-time-password code. The selected decompiled Java methods matched an independent reconstruction on 133 test cases.[15] |
| DownUnderCTF 2023 | Linux x86-64 flag-checker challenge | Masks and sums were recovered as equations, and the solved flag was checked against the original program.[16] |
| Notion | Notion Desktop 7.6.1, an Electron app | A clipboard call was traced from the page API through preload and IPC wrappers to Electron's clipboard writer.[17] |
The DX-Ball reconstruction repository says that Codex uses REA to inspect the program through Ghidra and recover its functions.[29] The TH04 page notes that the reconstruction's source and compiler checks come from the separate TH04 project, and that the page adds a fresh REA inspection of the original executable.[14]
Touhou reconstruction essays
The REA blog carries two essays by N0zoM1z0 on agent-driven reconstruction of Touhou games. The first, dated 10 October 2026, describes the TH095 (Shoot the Bullet) project. According to the essay, its repository began on 29 August 2026; all 697 identified game functions had source by 7 September, 696 had been accepted as exact comparisons by 8 September, and the Windows build was marked playable on 10 September, about twelve days after initialization.[18] The essay also describes a flaw in the TH08 project's comparison check: it adjusted relocated addresses but did not verify the floating-point constants behind them, so functions with wrong constants had passed as exact matches until a 2 September fix and a wider audit.[18] It describes the TH08 work as a continuation of GensokyoClub's earlier public reconstruction. GensokyoClub's README states that from 5 September 2026 its work would continue in private until the decompilation is complete, citing a "rise of grifters (AI decompilations and ports)".[18][20]
The second essay, dated 13 October 2026, discusses whether reconstruction work needs larger general models or specialized ones, using examples attributed to GPT-6.1 Sol and GPT-6 Astra sessions. It proposes comparisons with specialist and reinforcement-learning-trained models but states that no trained specialist was evaluated for the essay.[19]
Reception and concerns
Coverage of REA's October growth focused on its star count and on dual use. A Startup Fortune article of 9 October 2026 set its arrival on GitHub's trending page against reports, days earlier, that an agentic penetration-testing tool had been used in breaches at South Korean banks. It stated that "none of this makes REA malicious" but argued that the tool lowers the skill needed for reverse engineering.[21] A second Startup Fortune article, on 18 October, called the tool "dual-use by design" and reported concerns about piracy and intellectual-property theft alongside security-research uses.[22] Developer Mukesh Murugan wrote on 28 October that REA had become GitHub's top trending repository by 9 October, and warned that fake copies offering "REA zip downloads" had appeared on GitHub.[23] The README itself names the GitHub repository, rea.tools and the rea-agents npm package as the official sources and states that a similar repository name or copied README does not establish that a download is official.[1]
Related research
LLM-driven reverse engineering predates REA's first public release. In April 2026, Elastic Security Labs published a one-week research project that tested Claude Opus 4.6 against a crackme obfuscated with the academic Tigress obfuscator. The study did not use REA: each worker instance reached IDA Pro through an IDA MCP plugin. Elastic reported that Opus 4.6 solved 40% of the 20 evaluated tasks, at an average cost of $2.39 for successes and $4.83 for failures, and solved none of the tasks in the multi-layer phase. The researchers also concluded that obfuscation aimed specifically at LLM analysis was cheap and fast to develop.[24] See AI in cybersecurity for broader context.
Licensing and use
REA uses the MIT License, which permits modification and distribution subject to retaining its copyright and permission notice. The license disclaims warranties.[6]
The project describes its intended use as lawful reverse-engineering research and makes users responsible for required authorization. Analysis findings and a coding agent's subsequent implementation are distinct outputs.[1]
The project's disclaimer lists security research, malware and incident analysis, vulnerability research and coordinated disclosure, CTFs and education, interoperability, software preservation, and debugging or auditing software the user owns or is authorized to examine. It says the project will not help with circumventing DRM, license checks, anti-cheat systems or other technical protection measures; developing game cheats; bypassing authentication or access controls; copying proprietary software or its protected code and assets; evading AI providers' usage policies; or reselling AI accounts. It also states that obtaining source-like output does not grant rights to the original program or the generated output.[11] The README adds that users must legally obtain commercial tools such as IDA Pro, Hopper and JEB, and that REA grants no license or activation for them.[1]
Legal context
This section summarizes background law and is not legal advice. Reverse engineering may be restricted by jurisdiction or by the license of the software analyzed, as REA's own disclaimer notes.[11]
In the United States, two Ninth Circuit decisions address software reverse engineering under fair use:
| Case | Holding relevant to reverse engineering |
|---|---|
| Sega Enterprises Ltd. v. Accolade, Inc., 977 F.2d 1510 (9th Cir., decided 20 October 1992) | Disassembling copyrighted object code is a fair use "where disassembly is the only way to gain access to the ideas and functional elements embodied in a copyrighted computer program and where there is a legitimate reason for seeking such access." The court added that this did not insulate Accolade's finished products from an infringement claim.[25] |
| Sony Computer Entertainment, Inc. v. Connectix Corp., 203 F.3d 596 (9th Cir., filed 10 February 2000) | Intermediate copies made while reverse engineering the PlayStation BIOS were fair use, "necessary to permit Connectix to make its non-infringing Virtual Game Station function with PlayStation games." The court noted that the Virtual Game Station did not contain Sony's copyrighted material.[26] |
Clean-room design separates the people who study an existing program from those who write the new one. Compaq co-founder Rod Canion described the company's approach to the IBM PC BIOS this way: one engineer read IBM's code and wrote functional specifications, and a second engineer who had never seen IBM's code wrote new code from that specification.[28]
Anti-circumvention law is separate from copyright infringement. Section 1201 of the U.S. Copyright Act, added in 1998 by the Digital Millennium Copyright Act (Pub. L. 105-304), restricts circumventing technological protection measures. Subsection 1201(f) permits a person who has lawfully obtained the right to use a program to circumvent such a measure "for the sole purpose of identifying and analyzing those elements of the program that are necessary to achieve interoperability of an independently created computer program with other programs," where those elements have not previously been readily available to that person, and only to the extent the acts are not otherwise infringing.[27] For how these questions arise with AI systems more generally, see Copyright and AI.
Continue reading
- Coding agentA coding agent is a software system that uses a large language model to carry out programming work by acting on a development environment rather than only producing text for a person to copy.Mentioned 3 times above
- Model Context ProtocolModel Context Protocol (MCP) is an open protocol for exchanging context and invoking capabilities between applications that use large language models and external programs or data sources.Linked in the introduction
- JavaScriptJavaScript (often abbreviated JS) is a high-level, dynamically typed, multi-paradigm programming language that, alongside HTML and CSS, forms one of the three core technologies of the World Wide Web.Mentioned 3 times above
- Cursor (code editor)Cursor is a proprietary AI-assisted code editor and software-development platform made by Anysphere.Mentioned twice above
- MIT LicenseThe MIT License is a short, permissive software license. It grants broad permission to use, copy, modify, merge, publish, distribute, sublicense, and sell covered software, subject to one express preservation…Mentioned twice above
- Gemini CLIGemini CLI is an open-source, terminal-based AI agent developed by Google that brings Gemini models directly into the command line for coding, file editing, shell automation, and research grounded in real-time…Also in Developer Tools
More to read
Topics:AI AgentsDeveloper ToolsOpen Source AISoftware Development
References
- ^1 ^2 ^3 ^4 ^5 ^6 ^7 ^8 ^9 ^10 ^11 ^12 ^13 ^14 ^15 ^16 ^17 ^18 ^19morluto. REA: Reverse Engineer Anything, repository README, accessed 10 and 30 October 2026.
- ^1 ^2 ^3 ^4REA. Installation and setup, accessed 10 and 30 October 2026.
- ^1 ^2 ^3 ^4REA. CLI and Evidence, accessed 10 October 2026.
- ^1 ^2REA. MCP runtime contracts, accessed 10 October 2026.
- ^1 ^2REA. Process capture, accessed 10 October 2026.
- ^1 ^2 ^3morluto. MIT License, copyright 2026.
- ^REA. JavaScript and Electron Analysis, accessed 10 October 2026.
- ^1 ^2 ^3 ^4 ^5 ^6 ^7 ^8 ^9 ^10 ^11 ^12GitHub. morluto/rea releases and repository metadata (GitHub REST API: creation date, stars, forks, language, contributors), accessed 30 October 2026.
- ^1 ^2 ^3npm. rea-agents, registry metadata and download counts, accessed 30 October 2026.
- ^1 ^2 ^3 ^4 ^5 ^6 ^7 ^8REA. Guided MCP prompts and completion, accessed 30 October 2026.
- ^1 ^2REA. Disclaimer, accessed 30 October 2026.
- ^REA. Installation and setup, release 6.3.0, 9 October 2026.
- ^1 ^2REA. Rebuilding DX-Ball from its executable, accessed 30 October 2026.
- ^1 ^2 ^3REA. Reconstructing TH04's bullet patterns, accessed 30 October 2026.
- ^1 ^2REA. How does an authenticator generate a login code?, accessed 30 October 2026.
- ^1 ^2REA. Find the flag in a CTF binary, accessed 30 October 2026.
- ^1 ^2REA. How Notion copies text and HTML, accessed 30 October 2026.
- ^1 ^2 ^3 ^4N0zoM1z0. The industrial revolution in reverse engineering, REA blog, 10 October 2026.
- ^N0zoM1z0. Does reverse engineering need a bigger model?, REA blog, 13 October 2026.
- ^GensokyoClub. th08 README, "Important notice", September 2026.
- ^1 ^2Elroy Fernandes. An AI agent that reverse engineers any software just hit number one on GitHub, Startup Fortune, 9 October 2026.
- ^1 ^2Ron Patel. An AI tool called REA now reverse engineers software in minutes not years, Startup Fortune, 18 October 2026.
- ^Mukesh Murugan. REA (Reverse Engineer Anything): What It Is, How I Used It, codewithmukesh, 28 October 2026.
- ^Cyril François, Daniel Stepanic and Jia Yu Chan. The Cost of Understanding: LLM-Driven Reverse Engineering vs Iterative LLM Obfuscation, Elastic Security Labs, 21 April 2026.
- ^Sega Enterprises Ltd. v. Accolade, Inc., 977 F.2d 1510 (9th Cir. 1992).
- ^Sony Computer Entertainment, Inc. v. Connectix Corp., 203 F.3d 596 (9th Cir. 2000).
- ^Legal Information Institute. 17 U.S. Code § 1201: Circumvention of copyright protection systems.
- ^Brian McCullough. The Incredible True Story Behind AMC's Halt And Catch Fire: How Compaq Cloned IBM And Created An Empire, Internet History Podcast, May 2014.
- ^1 ^2 ^3N0zoM1z0. dx-ball: DX-Ball 1.07 reconstruction, GitHub repository README, accessed 30 October 2026.
Improve this article
Add missing citations, update stale details, or write a clearer explanation. Anyone can edit: changes go live when you publish, and every edit is checked by an editor.
3 revisions · v3 · 3,131 words · full history
Fact-checks are independent of edits: a reviewer re-verifies the article against its sources and stamps the date. How we verify
Research and drafting on this wiki are AI-assisted, under named human editorial standards. How AI is used here
Reviewer note: xg29 independent verification (37 sources, ~165 claims: GitHub API/releases, npm, case-study pages, court opinions, 17 U.S.C. 1201(f)); 4 minor fixes applied pre-publish
Cite this page: AI Wiki. "REA (Reverse Engineer Anything)." aiwiki.ai, updated 30 Oct 2026, fact-checked 30 Oct 2026. CC BY 4.0. https://aiwiki.ai/wiki/rea_reverse_engineer_anything



