Android · APK analysis
How an authenticator generates a login code
Trace Aegis's six-digit login code through its released APK, then move a demo clock to see why it changes every 30 seconds.
Read the Android case studyReverse engineering, with your coding agent
Ask your coding agent about an app, a game or a website. REA gives it the tools to inspect the code behind the answer.
Showcases → , investigations and interactive demos.
Blog → , methods and reconstruction notes.
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:
npx rea-agents@latest setup
Approve the setup plan, then restart your agent.
First time, or missing Node.js or a coding agent? Follow the step-by-step setup guide →
Reverse engineering means learning how software works by inspecting the program itself. With REA, your agent can follow the code, explain a feature and help you rebuild it.
Give your agent a program or page and a question.
REA returns code, references and runtime observations.
Your agent uses the findings to explain or rebuild the feature.
Why does Calculator give 220 for 200 + 10%?
0x180124945: MOV EAX, dword ptr [R13 + 0x18]
0x180124949: CMP EAX, 0x5c
0x18012494c: JZ 0x180124aba
0x180124952: CMP EAX, 0x5b
0x180124955: JZ 0x180124aba
0x18012495b: MOV EDX, 0x64
0x180124960: LEA RCX, [RSP + 0x160]
0x180124968: CALL 0x180122650
0x18012496e: LEA RDX, [R13 + 0x160]
0x180124975: LEA RCX, [RSP + 0x78]
0x18012497a: CALL 0x180109720
0x18012497f: MOV RSI, RAX
0x180124982: MOV qword ptr [RSP + 0x28], RAX
0x180124987: LEA RDX, [RSP + 0x160]
0x18012498f: MOV RCX, RAX
0x180124992: CALL 0x180123190
; … value-copy instructions omitted …
0x180124a14: MOV RDX, RDI
0x180124a17: LEA RCX, [RSP + 0xf8]
0x180124a1f: CALL 0x180109720
0x180124a24: LEA R8, [RSP + 0x30]
0x180124a29: MOV RDX, RAX
0x180124a2c: LEA RCX, [RSP + 0xb8]
0x180124a34: CALL 0x180123c10
You decode the instructions, follow the calls and reconstruct the calculation.
Ask your agent the same question
Use REA to inspect Windows Calculator. Why does 200 + 10% give 220?
After +, the % button takes a percentage of the first number.
10% of 200 = 20200 + 20 = 220
Let’s try two examples: change a game’s speed, then rebuild Calculator’s % button.
Example 01 · Chrome’s dinosaur game
The game gets faster as you run. To rebuild it with a speed control, we first need to find out how the speed changes.
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.
REA lets the agent read the game’s running code. The speed starts at 6 and increases a little each update while it is below 13.
We rebuilt that rule in the mini-game below and added a speed slider. Press Play, then choose your own speed.
Original rule: start at 6, then increase toward 13.
Inspected target: wayou’s Chromium-derived browser edition.
if (this.currentSpeed < this.config.MAX_SPEED) {
this.currentSpeed += this.config.ACCELERATION;
}
Start at 6. Add 0.001 each update without a collision, while speed is below 13.
What each part does
REA inspected the HTTP browser edition through a local debugging
connection and returned the loaded index.js,
including its source and digest.
ACCELERATION: 0.001,
MAX_SPEED: 13,
SPEED: 6
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.
Example 02 · Windows Calculator
The % button does different things after + and ×. Let’s find both rules and try them in a small calculator.
Use REA to inspect Windows Calculator’s % button. Recover the rules after + and ×, then build a small calculator that uses both.
REA helps the agent read the code behind the % button. It applies two different rules:
10% of 200 = 20 → 200 + 20 = 220
200 × 0.1 = 20
We recreated both rules below. Choose + or ×, press %, then press =.
10% of 200 = 20. Then 200 + 20 = 220.
For this example, previous = 200 and
current = 10.
if (operation == multiply || operation == divide) {
percent = current / 100;
} else {
percent = current * previous / 100;
}
From the installed app to a working % button
ms-calculator:. The agent then
selects the installed app’s library.
100.
0x180124945: MOV EAX, dword ptr [R13 + 0x18]
0x180124949: CMP EAX, 0x5c
0x18012494c: JZ 0x180124aba
0x180124952: CMP EAX, 0x5b
0x180124955: JZ 0x180124aba
0x18012495b: MOV EDX, 0x64
#define IDC_MUL 92 // 0x5c
#define IDC_DIV 91 // 0x5b
#define IDC_PERCENT 118 // 0x76
0x64 = 100
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
Explore a feature in a released app or game, with code and checked results.
Android · APK analysis
Trace Aegis's six-digit login code through its released APK, then move a demo clock to see why it changes every 30 seconds.
Read the Android case studyElectron · Feature tracing
Follow Notion's packaged JavaScript to the system clipboard and see how a copy preserves rich block data.
Read the Notion case studyNative · Reconstruction
Recover how a ball's position becomes left/right sound in a 1996 Windows game.
Read the DX-Ball case studyYour first investigation
Download our Notes example, trace its CSV export, and check one changed input.
These guides cover setup and a first investigation for each kind of software.
Inspect functions, strings, references and call relationships in executables and libraries.
Native analysis guideMap modules, routes, IPC and native dependencies from an application folder or ASAR archive.
Application workflowsCapture selected browser or process activity, then compare the results across runs.
Browser observation guideUse REA to inspect https://rea.tools/. Clone this website for me.
Yes, this one.
Use REA to reconstruct this game from its executable. Recover the gameplay logic in C and test it against the original.
Read the FAQ , setup and common questions.
Join Discord , get help and discuss your investigations.
GitHub issues , report a bug or request a feature.