REA:基于AI代理的逆向工程工具解析

REA是一款基于AI代理的逆向工程工具,可自动检查代码并解释功能。用户通过自然语言提问,即可获取反编译代码与调用关系,辅助重建或修改特定特性,如解析计算器百分比逻辑及游戏速度机制。

REA:基于 AI 代理的逆向工程工具

REA(Reverse Engineering Agent)是一款旨在辅助软件逆向工程的工具。其核心逻辑是通过集成到编码代理中,让 AI 自动检查程序代码、解释功能并协助重建或修改特定特性。

AI代理自动解析代码逻辑

安装与配置

用户可通过以下两种方式将 REA 连接至编码代理:

  1. 通过编码代理指令:在代理中输入 Install REA and connect it to this coding agent using npx rea-agents@latest setup. Let me see the setup plan, then verify the installation.
  2. 通过终端命令:运行 npx rea-agents@latest setup,随后重启代理。

工作原理与应用场景

逆向工程的目标是理解软件运作机制,以便解释、修改或重建某一功能。传统方式需要人工解码指令、跟踪调用链及重建计算逻辑;而使用 REA,用户只需用自然语言向代理提问,由 REA 提供反编译代码和处理程序信息,再由代理进行解释和重构。

案例一:Windows 计算器百分比逻辑分析

问题背景:为何在 Windows 计算器中,200 + 10% 的结果为 220?

操作指令:“使用 REA 检查 Windows 计算器。为什么 200 加 10% 就是 220?”

分析结果:REA 提取了处理程序的指令、反编译代码及调用关系。代理据此解释:在加法运算后,百分比按钮会计算第一个数字的百分比值。

10% of 200 = 20
200 + 20 = 220

进阶应用:若需重建计算器的百分比按钮以支持乘法和除法,可进一步询问:“使用 REA 检查 Windows 计算器的 % 按钮。恢复 + 和 × 之后的规则,然后构建一个使用两者的小计算器。”

底层逻辑差异:

  • 加法/减法场景:取前一个数的百分比。
    percent = current * previous / 100
  • 乘法/除法场景:将当前数值转换为小数比例。
    if (operation == multiply || operation == divide) { percent = current / 100; }

工作流:REA 读取 calc.exe 启动的应用库 -> 返回百分比处理器的代码函数 -> 代理解释分支逻辑并尝试重建。

案例二:Chrome 恐龙游戏速度机制分析

目标:重建具有可调速功能的恐龙游戏。

原理:为了复现游戏的加速效果,需要获取运行时的实际规则:初始速度、增量幅度及上限。

操作指令:“使用 REA 检查这个恐龙游戏。为什么它会变得更快?显示速度规则,然后构建一个可调速的小版本。”

分析结果:代理读取页面脚本中的更新功能和速度设置,发现原始规则为:从 6 开始,每次无碰撞更新时增加 0.001,直到达到最大速度 13。

if (this.currentSpeed < this.config.MAX_SPEED) {
  this.currentSpeed += this.config.ACCELERATION;
}

应用:代理利用恢复的规则,在新游戏中添加速度滑块控制,允许用户自定义加速度参数。

其他应用场景

REA 适用于多种逆向工程任务,包括但不限于:

  • 网站克隆:例如,“使用 REA 检查 https://rea.tools/。为我复制这个网站。”
  • 游戏逻辑重建:例如,“使用 REA 从它的可执行文件重建这个游戏。在 C 语言中恢复游戏逻辑并对其进行测试。”(参考 DX-Ball 案例研究)

支持的分析目标类型

根据目标不同,REA 提供不同的分析指南:

原生二进制文件 (Native binaries)

用于检查可执行文件和库中的函数、字符串、引用及调用关系。

JavaScript 与 Electron 应用

用于映射模块、路由、IPC 通信及本地依赖项,支持从应用程序文件夹或 ASAR 归档中提取信息。

浏览器与运行时活动

用于捕获选定的浏览器或进程活动,并在多次运行之间比较结果。

评论 0

0/500

评论需审核后展示,请文明发言

💬
还没有评论,来说两句

相关阅读