AI 逆向工程带上证据:REA 本地分析实操
【免费下载链接】reaReverse engineer anything with agents, from app behavior down to native binaries.项目地址: https://gitcode.com/GitHub_Trending/rea2/rea
逆向完一个 App,同事问你:这个结论具体从哪来的?如果只能答“模型是这么说的”,结论很难被采信。REA(Reverse Engineer Anything)是一个本地 AI 逆向工程工具:分析全程在你自己的机器上跑,每个结果都带一份证据记录——分析的是哪个文件、哪个引擎出的结果、哪些是观测、哪些是推断。(来源:README.md)
图里左侧是 Hopper 的反汇编与分析 pass 日志,右侧面板给出文件路径、CPU 与地址定位,说明结果来自一次真实启动的分析会话。
一次分析从输入到记录的流程
把一次静态分析拆成四步,看 REA 每一步做什么。
- 输入:你提供一个本地路径。JS/Electron 目标是解包后的应用目录或 ASAR 文件——Use an extracted application directory or an ASAR as the target.(来源:docs/cli.md)也就是目标必须是你磁盘上能指到的东西,REA 直接读文件。
- 解析:原生目标复用你机器上已有的 Hopper、Ghidra 或 IDA——Deep native analysis uses one of them.(来源:README.md)引擎不是 REA 替你装的,是你本来就有的。
- 产出:静态链路把完整图与证据一并返回——Static JavaScript analysis returns the application graph and Evidence directly.(来源:docs/cli.md)模块、导入、边界一次给全,不是一句摘要。
- 记录:每个产出结果的调用都返回完整记录——Evidence-producing tools return the complete canonical Evidence record in both text and structured content.(来源:docs/mcp-contracts.md)人读的和机器读的同时都有。
记录像一张小票:查的是哪个文件、用的哪个引擎、量到了什么、没量到什么,都写在上面。它可以存成文件,用rea evidence-import重新导入,也可以拿rea compare和另一份 bundle 做对比(来源:docs/cli.md)。
3 步跑通本地分析
只跑静态 JS/Electron 分析的话,前置只有一个版本号。
- 第 1 步,准备运行时:Node.js 22.x(>=22.19)、24.x(>=24.11)或 26+,外加 npm(来源:README.md);这条链路不需要任何逆向引擎。
- 第 2 步,一条命令:把路径换成你的解包应用目录或 ASAR:
npx -y rea-agents@latest analyze-javascript-application /absolute/path/to/app --json- 第 3 步,读输出:结果是应用图及其证据。真实应用的证据可能达到数百 MB,文档的建议是先落盘,再用
rea inspect-analysis-view切出摘要页——例子里一个 334 MB 的证据文件对应约 10 KB 的摘要(来源:docs/cli.md)。
想配合 agent 使用,先跑npx rea-agents setup完成注册;rea doctor --json做环境体检,严格只读、不改任何配置(来源:docs/installation.md)。
结果怎么复核
能不能交给同事复核,取决于四条设计。
待分析文件会离开机器吗?不会。Analysis runs locally, and results include the evidence and limitations behind each conclusion.(来源:README.md)目标文件全程不上传,每个结果自带证据与限制说明。不过 agent 所用模型服务商有自己的数据策略,那要另外评估(来源:README.md)。
查不到怎么办?不会补成“不存在”。An empty call list with partial or unknown coverage is not proof that the function has no calls.(来源:docs/mcp-contracts.md)空结果只代表这次读取没覆盖到,不能当“没有”的证据用。
失败时会悄悄换引擎吗?不会。REA cleans only resources it owns and never switches to another provider automatically.(来源:docs/mcp-contracts.md)选定的引擎失败就按原始原因报错,修还是换由你决定。
同样的结论能重跑吗?能。REA reuses an exact result when the target bytes, operation, parameters, provider and settings match.(来源:docs/cli.md)匹配时快照直接命中,同事重放同一条命令即可核对。
哪些目标能喂给它
README 的能力表当前列了 23 类目标,下表是常用的 5 类与各自的预先准备(来源:README.md)。
| 目标 | 分析给你什么 | 你手上要有什么 |
|---|---|---|
| 原生二进制 | 伪代码、汇编、字符串、符号、调用与引用 | Hopper、Ghidra 或 IDA |
| Go / Rust 二进制 | 编译器版本、构建设置;cargo 依赖清单 | 无需任何,内置静态检查 |
| .NET 程序集 | 元数据、CIL 指令、声明的原生依赖、构建对比 | 无(纯静态) |
| JavaScript / Electron | 模块、导入、Source Map、路由、IPC 与原生插件关系 | 只要 Node.js 与 npm |
| Android APK 与设备 | 清单声明、类、反编译方法;设备进程、日志、截图 | Headless JADX + 完整 JDK;设备另需 adb |
官方“明确不做”的还有三件:
- 静态检查只读文件、不执行目标;运行时观察是另一套 capture 流程,各自在文档里写明影响(来源:README.md)。
- REA 不安装也不更新 objdump、Rizin 这类离线引擎,只接入你已有的(来源:README.md)。
- 引擎伪代码只是它的输出,REA 不把它当原始源码(来源:docs/installation.md)。
适合研究未发布产品、内部工具或竞品实现、且结论需要交给别人核对的工程师,前提是目标为你拥有或获准检查的软件(来源:DISCLAIMER.md)。细节看安装与引擎配置、CLI 命令与快照、Evidence 与会话契约。
【免费下载链接】reaReverse engineer anything with agents, from app behavior down to native binaries.项目地址: https://gitcode.com/GitHub_Trending/rea2/rea
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考