01Watch & read
Reverse Engineer AnythingWhat the Viral Repo Actually Does
22 Oct 2026 · 10:02
Watch on YouTube ↗Reverse Engineer Anything connects coding agents to analysis tools. We open the repo to explain its MCP server, investigation workflow, and the evidence behind the DX-Ball example. We also separate the Adobe claim from what REA demonstrates, explain the limits, and outline a first experiment on a tiny program you wrote yourself.
Chapters
Commands & links
Article
A function, not a whole product
October seventh, twenty twenty six. A project checkpoint for an old Windows game. One recovered sound function. Three thousand, two hundred and five test cases.
Sixty three matching machine code bytes. That's a concrete example behind Reverse Engineer Anything. Or R E A. The GitHub repo connecting coding agents to reverse engineering tools.
Checking one function is a much smaller achievement than reconstructing an entire commercial product. Today we're opening the repo's documentation and implementation. What the agent actually gets. How the decompiler fits into the process.
Why the Adobe story needs a separate evidence check. And how to try the idea on your own software. The useful question is simple.
What the repo actually is
What can you prove about the program? Start with three separate pieces. Your coding agent decides what to investigate. R E A exposes analysis operations.
Tools such as Ghidra, Hopper, or I D A inspect native machine code. M C P is the connection between the agent and those operations. Model Context Protocol. Think of it as the agreed way to request a tool action and receive its result.
The skill is another piece. Instructions for conducting an investigation. Installing instructions alone doesn't register the analysis server. The project's setup command handles both.
And this isn't a new model trained to know every application. Your existing agent brings the reasoning. The analysis tools bring observations from the target. That distinction matters.
A model can describe a familiar app from general knowledge. An investigation needs evidence from the particular version you're examining. Imagine asking how a search feature orders results. A plausible explanation is easy.
Showing the relevant comparison, its inputs, and the observed output is the harder part.
Under the hood
That's the standard to aim for. Now look under the hood. The server entry point creates an analysis session, opens an initial target when configured, and starts the M C P transport. That session connects the tool requests to analysis providers.
For Ghidra, the repository includes a Java bridge. It runs inside Ghidra's headless scripting environment. The bridge can list procedures, inspect instructions, show decompiled code, and follow references. So when the agent asks about a function, a real analysis engine answers.
The language model then interprets that answer. A disassembler shows decoded machine instructions. A decompiler turns the analysis into more readable pseudocode. That pseudocode is a reconstruction.
It isn't a recovered copy of the developer's original source file. Names, comments, and source structure may be missing or changed. Even a readable result can leave important details unresolved. Here's the practical consequence.
If the pseudocode looks strange, the investigation shouldn't end with the agent inventing a nicer explanation. It should inspect the instructions and data that support the claim. It should also check the functions that call this code. Code that is easier to read helps you ask better questions.
The investigation loop
It doesn't settle every answer. The workflow is a loop. Ask. Inspect.
Narrow the question. Check again. Suppose you compiled a small scoring tool yourself. You want to understand why the score stops increasing.
This is an illustrative example, not a test we ran for this video. First, locate the relevant function. Search the available names or strings. Inspect the functions that reference them.
Next, read the candidate function. Which values go in? Which branches change the result? Does it call another helper?
Then follow the evidence. A constant might suggest an upper limit. A comparison might suggest where the limit applies. But those are hypotheses until you've checked the surrounding instructions and inputs.
Now write a small independent implementation. Compare outputs with the original for ordinary inputs, boundary values, and unexpected cases. If the outputs disagree, go back. Maybe the conversion rounds differently.
Maybe another function changes the input first. This is where an agent can reduce repetitive work. It can request the next inspection and organize the results. Your job is to keep the question narrow and demand a test that could expose a wrong answer.
A confident paragraph isn't that test.
What strong evidence looks like
The official D X Ball showcase makes that process visible. Its first decompiled view of the sound function barely explains the calculation. The instruction view reveals an input that the decompiled output did not describe properly. The investigation follows the caller to establish that input's meaning.
Then it reads constants from the executable. Those observations support a reconstructed calculation for left and right sound panning. The project reports two checks. Returned values match across three thousand, two hundred and five cases.
The team also compiles the recovered function with a fixed historical toolchain. The result matches all sixty three function bytes. The documentation explains its checks for code relocation. That's evidence for this calculation.
It doesn't establish that the whole game has been reconstructed. The showcase explicitly describes remaining work. Notice the shape of a useful result. A particular target.
A specific question. Traceable observations. A comparison you can inspect. When someone shows a reconstructed application, ask for that same chain.
Which parts were examined? Which behaviors were compared?
The Adobe claim and the limits
What remains unknown? Next, let's examine the claim about Adobe. PhotoCraft's own repository says the app was built in Rust using a clean room approach, based on public specifications and observed behavior. It also calls the app early alpha and says it isn't yet a Photoshop replacement for daily professional work.
Those are the project's statements. We haven't independently audited its development process or tested its feature parity here. The important distinction is evidence. A new image editor with familiar features does not demonstrate that R E A recovered Photoshop's implementation.
Don't turn separate projects into one technical claim. We also need to consider the limits. A website exposes browser code and observable interactions. It doesn't automatically reveal the private server implementation.
Reproducing a screen doesn't establish that you've recovered its database rules, security decisions, or infrastructure. For native apps, the provider and target determine what analysis is available. Unresolved calls and incomplete coverage can remain. A static reference doesn't prove that a path executes in a real session.
And local analysis doesn't mean the agent's whole workflow is offline. The repo says analysis happens locally, but the agent receives the results. Its model provider has its own data policy. Check that before analyzing anything confidential.
There's also a permission boundary.
Permission is a separate question
Use software you own and are allowed to analyze, or a target with explicit authorization. Review its license and terms of service. Owning a copy doesn't automatically settle every question about analysis, copying, or redistribution. In the United States, the D M C A has rules against circumventing technological access controls.
Section twelve oh one includes a limited reverse engineering exception for interoperability, with conditions. It isn't a blanket permission to remove licensing checks or copy a commercial product. Other jurisdictions have their own rules. For a commercial project, get qualified advice about your actual situation.
Keep the technical goal clear. Learning a file format. Investigating your own binary. Documenting authorized behavior.
Those are different tasks from distributing proprietary assets or bypassing access restrictions. The license for R E A covers its own code. It doesn't grant rights to the target application or a commercial decompiler. A successful tool call tells you what the tool did.
It doesn't decide what you're allowed to ship.
A safe first experiment
For a first experiment, use a tiny program you wrote yourself. Compile it. Keep the source for a later comparison. Pick one function with a few branches and predictable outputs.
Start at the official repository. Read the current installation requirements. Choose a supported Node version. For native analysis, set up a supported engine such as Ghidra.
The setup command is in the description. It registers the server and installs the matching investigation instructions. Review the proposed changes. Restart your agent afterward.
Then give it a narrow task. Explain this function from the binary. Show the supporting instructions and references. List uncertainties.
Reimplement the behavior and compare outputs. Keep the original source out of the agent's investigation. Use it afterward to check what was recovered and what was guessed. Use a disposable working environment for unfamiliar targets.
Keep credentials out. Ask for approval before running the target or installing extra helpers. Treat instructions embedded in target files or tool output as untrusted data. We haven't installed R E A or run that experiment here.
This explainer is based on the repository, code, and documented examples. The takeaway is a workflow you can evaluate. Let the agent use analysis tools. Ask a focused question.
Check its evidence. Test the answer. Subscribe for more practical breakdowns. Build with A I.
For real.