REA:面向编码代理的AI驱动逆向工程
REA使AI代理能够执行自主逆向工程
REA是一套工具集,旨在弥合高级AI编码代理与低级程序分析之间的差距。它为代理提供了检查可执行二进制文件、JavaScript文件和浏览器运行时所需的工具,使代理能够解释程序的工作原理、恢复其逻辑,并通过简单的英文提示重建功能。
无需人类开发人员手动解码汇编指令并在调试器中跟踪调用堆栈,用户可以要求配备REA的代理“检查Windows计算器并解释为什么200 + 10%等于220”。然后,代理使用REA检索处理程序的指令和反编译代码,以确定百分比按钮在加法过程中取第一个数字的百分比。
核心能力与目标环境
REA支持三个主要的分析向量,使代理能够在不同的软件层上操作:
原生二进制文件
REA允许代理检查编译后的可执行文件和库中的函数、字符串、引用和调用关系。这能够从原生代码中恢复逻辑,例如Windows计算器百分比处理程序中使用的特定分支逻辑。
JavaScript和Electron
对于基于Web或Electron的应用程序,REA可以映射模块、路由、进程间通信(IPC)和原生依赖。它可以分析应用程序文件夹或ASAR归档,以提取已部署应用程序的底层逻辑。
浏览器和运行时活动
REA可以从选定的浏览器或进程中捕获活动,并比较不同运行的结果。这通过其检查Chromium恐龙游戏运行脚本以恢复其加速规则(从6开始,每次更新增加0.001,上限为13),然后重建带有可调速度滑块的游戏版本来证明。
实现与设置
REA旨在无缝集成到现有的AI编码代理中。安装通过单个命令完成,该命令可以由代理本身或用户在终端中执行:
npx rea-agents@latest setup
安装后,代理可以连接到REA工具集,使其能够执行用户用简单英语请求的分析任务。
社区见解与技术辩论
REA的引入引发了关于软件开发未来和逆向工程合法性的重大讨论。
技术效能与现有工具
一些开发人员质疑REA与简单地指示代理使用Ghidra或Radare2等既有工具有何不同。其他人指出,
如果这能比原始Ghidra脚本更可靠地维护大型二进制文件的状态,它就在工作流程中赢得了一席之地。
“软件之死”与知识产权
有一种强烈的观点认为,AI辅助逆向工程可能从根本上改变闭源软件的价值。一些用户建议,这可能导致“软件之死”,即访问或生成编译程序源代码的能力不再是一个障碍。
AI现在正在打破我们自计算机诞生以来所有系统所基于的一个前提:我们无法访问或生成编译程序的源代码。
法律与伦理问题
用户强调了《数字千年版权法》(DMCA)与维修或学习权利之间的紧张关系。人们希望这些工具能够使用户绕过限制性DRM或恢复废弃软件(abandonware)丢失的源代码。
模型护栏与拒绝
一个反复出现的关注点是“网络墙”——前沿模型提供商(如Anthropic和OpenAI)实施的安全护栏,当用户提到“逆向工程”或“漏洞利用”时,即使是为了合法研究或爱好者工作,也常常触发拒绝。
大规模性能
一些开发人员指出了当前实现的局限性。例如,一位用户提到,REA通过jadx MCP对Android的支持在大规模APK分析时可能很慢,导致他们开发了替代工具,如droidasc,用于大型二进制文件的毫秒级分析。
Sources
相关
- 项目
- 项目
- 项目
- 项目
- Dispatch