REA Reverse – Engineer Anything
Reverse engineering, with your coding agent
REA gives your agent the tools to inspect a program and explain what it does.
Already know RE? Skip to analysis guides →
Want to go deeper? Read the Blog →
Copy this into your coding agent:
›Install REA and connect it to this coding agent using npx rea-agents@latest setup. Show me the setup plan for approval, then verify the installation.
Or run this in your terminal:
Approve the setup plan, then restart your agent.
Finding out how software works by examining the program itself.
The goal: understand a feature well enough to explain it, change it or rebuild it.
One question: why does Calculator give 220 for 200 + 10%?
Before REA · You investigate it yourself
“0x5b? 0x5c? Two jumps to the same place. Which operators are these?”
Look up the command IDs, then label the branch.
02 · What do the calls do?
“100 is clear. The calls are just addresses. Which one divides? Which value goes in?”
Inspect the helpers and trace the stored values.
03 · What is the rule?
“This path multiplies by the other input. So 10% means 10% of 200 after +.”
Name the operands and check both operator paths.
Illustrative expert reasoning
You decode the instructions, follow the calls and reconstruct the calculation.
With REA · You ask your agent
Ask your agent in plain English.
›Use REA to inspect Windows Calculator. Why does 200 + 10% give 220?
Example answer · based on the findings
After +, the % button takes a percentage of the first number.
Let’s try two examples. Change a game’s speed, then return to Calculator and rebuild its % button.
Example 01 · Chrome’s dinosaur game
Play the reconstruction
Original rule: start at 6, then increase toward 13.
The script actually running in the page. The agent reads its update function and speed settings, then uses that rule in a new game.
›Use REA to inspect this dinosaur game. Why does it get faster? Show the speed rule, then build a small version with an adjustable speed.
Inspected target: wayou’s Chromium-derived browser edition.
Start at 6. Add 0.001 each update without a collision, while speed is below 13.
REA inspected the HTTP browser edition through a local debugging connection and returned the loaded index.js, including its source and digest.
We called the original game’s update function in a controlled browser check, with obstacles and automatic scheduling disabled. After 4,000 updates, speed was 10.0; after 10,000, it was 13.0, rounded to one decimal.
The new mini-game keeps that speed rule. Its drawing, jumping and collision code are a small teaching implementation. Open the lab to see the new code and run the same speed check.
To inspect the target yourself, follow the browser connection steps using the dinosaur page. Give your agent that page URL and your local debugging endpoint, then copy the prompt above.
Inspected speed code · Chromium Authors · BSD license
Example 02 · Windows Calculator
We saw why 200 + 10% gives 220. Now let’s recover the rules for both + and ×, and try them.
10% of 200 = 20. Then 200 + 20 = 220.
One branch divides by 100. The other also multiplies by the first number. The agent uses both to recreate the % button.
For this example, previous = 200 and current = 10.
›Use REA to inspect Windows Calculator’s % button. Recover the rules after + and ×, then build a small calculator that uses both.
From the installed app to a working % button
Inspected with REA 4.1.0: Windows Calculator 11.2508.4.0, x64. The readable summary uses names from Microsoft’s public source to explain the recovered branch.
Percentage implementation · Microsoft’s test cases · Native setup guide
Your first investigation
Download our Notes example, trace its CSV export, and check one changed input.
Tell your agent what you want to understand or build. With REA, you can work together on anything from cloning this website to reconstructing a game from its executable.
›Use REA to inspect https://rea.tools/. Clone this website for me.
›Use REA to reconstruct this game from its executable. Recover the gameplay logic in C and test it against the original.
See the DX-Ball case study →
For setup and analysis steps, choose your target:
Inspect functions, strings, references and call relationships in executables and libraries.
Map modules, routes, IPC and native dependencies from an application folder or ASAR archive.
Capture selected browser or process activity, then compare the results across runs.
Read the FAQ, chat with us on Discord, or open a GitHub issue for bugs and feature requests.
Share investigations and get help from other REA users on Discord. Follow REA on X for project updates.