REA Reverse – Engineer Anything
REA Reverse – Engineer Anything
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.
REA 为您的代理提供了检查程序并解释其功能所需的工具。
Already know RE? Skip to analysis guides →
已经了解逆向工程(RE)了吗?直接跳转至分析指南 →
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.
›使用 npx rea-agents@latest setup 安装 REA 并将其连接到此编码代理。向我展示安装计划以供批准,然后验证安装。
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%?
一个问题:为什么计算器计算 200 + 10% 的结果是 220?
Before REA · You investigate it yourself
在 REA 之前 · 您亲自调查
“0x5b? 0x5c? Two jumps to the same place. Which operators are these?”
“0x5b?0x5c?两次跳转到同一个地方。这些是什么运算符?”
Look up the command IDs, then label the branch.
查找命令 ID,然后标记分支。
02 · What do the calls do?
02 · 这些调用有什么作用?
“100 is clear. The calls are just addresses. Which one divides? Which value goes in?”
“100 很清楚。这些调用只是地址。哪一个是除法?哪个值被输入?”
Inspect the helpers and trace the stored values.
检查辅助程序并追踪存储的值。
03 · What is the rule?
03 · 规则是什么?
“This path multiplies by the other input. So 10% means 10% of 200 after +.”
“这条路径乘以另一个输入。所以 10% 意味着加号之后 200 的 10%。”
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
使用 REA · 您询问您的代理
Ask your agent in plain English.
用简单的英语询问您的代理。
›Use REA to inspect Windows Calculator. Why does 200 + 10% give 220?
›使用 REA 检查 Windows 计算器。为什么 200 + 10% 等于 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
示例 01 · Chrome 恐龙游戏
Play the reconstruction
运行重构版本
Original rule: start at 6, then increase toward 13.
原始规则:从 6 开始,然后增加到 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.
›使用 REA 检查这个恐龙游戏。为什么它会变快?展示速度规则,然后构建一个具有可调速度的小版本。
Inspected target: wayou’s Chromium-derived browser edition.
检查目标:wayou 基于 Chromium 的浏览器版本。
Start at 6. Add 0.001 each update without a collision, while speed is below 13.
从 6 开始。在没有碰撞的情况下,每次更新增加 0.001,直到速度低于 13。
REA inspected the HTTP browser edition through a local debugging connection and returned the loaded index.js, including its source and digest.
REA 通过本地调试连接检查了 HTTP 浏览器版本,并返回了加载的 index.js,包括其源代码和摘要。
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.
我们在受控的浏览器检查中调用了原始游戏的更新函数,并禁用了障碍物和自动调度。经过 4,000 次更新后,速度为 10.0;经过 10,000 次更新后,速度为 13.0(四舍五入到小数点后一位)。
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.
要亲自检查目标,请使用恐龙页面按照浏览器连接步骤操作。将该页面 URL 和您的本地调试端点提供给您的代理,然后复制上面的提示。
Inspected speed code · Chromium Authors · BSD license
检查的速度代码 · Chromium 作者 · BSD 许可证
Example 02 · Windows Calculator
示例 02 · Windows 计算器
We saw why 200 + 10% gives 220. Now let’s recover the rules for both + and ×, and try them.
我们了解了为什么 200 + 10% 等于 220。现在让我们恢复 + 和 × 的规则,并进行尝试。
10% of 200 = 20. Then 200 + 20 = 220.
200 的 10% = 20。然后 200 + 20 = 220。
One branch divides by 100. The other also multiplies by the first number. The agent uses both to recreate the % button.
一个分支除以 100。另一个分支也乘以第一个数字。代理使用两者来重构百分号按钮。
For this example, previous = 200 and current = 10.
在此示例中,previous = 200,current = 10。
›Use REA to inspect Windows Calculator’s % button. Recover the rules after + and ×, then build a small calculator that uses both.
›使用 REA 检查 Windows 计算器的百分号按钮。恢复 + 和 × 之后的规则,然后构建一个同时使用两者的简易计算器。
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.
使用 REA 4.1.0 检查:Windows 计算器 11.2508.4.0, x64。可读摘要使用了来自微软公共源代码的名称来解释恢复的分支。
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.
下载我们的 Notes 示例,追踪其 CSV 导出,并检查一个更改后的输入。
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.
告诉您的代理您想要了解或构建的内容。使用 REA,您可以共同完成从克隆本网站到从可执行文件重构游戏等任何任务。
›Use REA to inspect https://rea.tools/. Clone this website for me.
›使用 REA 检查 https://rea.tools/。为我克隆这个网站。
›Use REA to reconstruct this game from its executable. Recover the gameplay logic in C and test it against the original.
›使用 REA 从可执行文件重构此游戏。用 C 语言恢复游戏逻辑并针对原始版本进行测试。
See the DX-Ball case study →
查看 DX-Ball 案例研究 →
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.
映射应用程序文件夹或 ASAR 归档文件中的模块、路由、IPC 和原生依赖项。
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.
阅读常见问题解答,在 Discord 上与我们聊天,或为错误和功能请求提交 GitHub Issue。
Share investigations and get help from other REA users on Discord. Follow REA on X for project updates.
在 Discord 上分享调查结果并从其他 REA 用户那里获得帮助。在 X 上关注 REA 以获取项目更新。