首页 / 开源热榜 / auto-re-agent / 使用教程

ReAgent 中文教程:先把执行权限锁住

更新于 2026-09-23 · 约 10 分钟

auto-re-agent 已更名为 ReAgent,旧地址会跳转到 Dryxio/reagent。它把 Ghidra 提取的函数信息交给模型生成候选 C/C++,再用检查器和项目命令收集证据。它面对的是可执行文件和项目脚本,第一次验证应限定在自己拥有或明确获准分析的样本。

当前版本:v0.4.0 于 2026-09-09 发布。要求 Python 3.10 以上,并需要 Ghidra、Ghidra Bridge 和至少一种已配置的模型入口。

1. 准备隔离样本

选一个体积小、有源码、许可清楚的自有 C/C++ 示例。复制到临时目录,去掉生产凭据和网络权限。保留原始二进制与构建结果,后面才能核对候选实现。

授权边界:工具能连接反编译器,不代表使用者获得分析第三方软件的权利。软件许可、当地法律和合同限制需要在运行前单独确认。

2. 固定版本并只做环境检查

python3 -m venv .venv
source .venv/bin/activate
python3 -m pip install --upgrade "auto-re-agent[ghidra-bridge]==0.4.0"
re-agent doctor

源码安装还需要 Git。模型可选 Claude、Codex CLI 或 OpenAI 兼容接口,凭据放在隔离环境的密钥管理中,不要写入仓库。

3. 初始化后逐行审阅配置

re-agent init --profile generic-cpp
# 打开生成的配置,先检查 build、test、run 与输出目录

配置的构建、测试和运行字段可以执行目标项目自己的命令。不要因为仓库来自熟悉的组织就直接设置 trust_configured_commands: true。先确认命令只访问测试目录、没有下载脚本,也不会连接生产资源。

4. 先生成计划,再看候选代码

首次运行采用官方当前版本提供的 plan 或 dry-run 路径,只让它读取一个函数。检查函数清单、提示记录、响应日志和候选代码的保存位置。候选实现位于报告或覆盖层,不会自动替换原始源码。

结构检查、目标验证和 parity 信号可以指出差异,但通过并不等于语义正确,更不等于二进制完全一致。至少还要用已知输入、边界条件、回归测试和人工代码审查来判断。

与 Ghidra 对比

Ghidra 是美国国家安全局公开的软件逆向工程框架,提供反汇编、反编译、图形和脚本等基础分析能力。ReAgent 在其上增加模型生成、检查循环、候选代码和证据报告。只需人工分析时直接使用 Ghidra;要在授权项目中试验模型辅助流程,再评估 ReAgent。

验证状态:本轮只核对重定向后的官方仓库、README、pyproject.toml 与 v0.4.0 Release。没有安装 ReAgent、Ghidra 或模型客户端,没有执行任何二进制、构建命令或逆向分析。

这里仅补原教程没有展开的事实和边界。安装命令与操作步骤仍以前文为准。

先判断这个项目是否适合你

适合谁用

适合在获得授权的旧软件维护、互操作研究和自有二进制审计中整理 Ghidra 证据、生成候选实现并记录验证过程。不适合绕过许可、分析未获授权的软件,或把模型输出直接当作可发布源码。

采用建议

ReAgent 可以把授权逆向任务中的 Ghidra 上下文、候选实现和验证记录串起来,但它不能替代工程师对许可、反编译结果和执行命令的判断。先用自有小样本、禁用不可信命令并保留人工审查,再决定是否扩大范围。

原教程未展开的系统信息

核心功能

  • Ghidra 后端

    从 Ghidra 获取反编译结果、交叉引用、类型和符号等上下文,再把选定函数交给代理流程。

  • 候选代码与审查循环

    模型生成的候选实现写入报告或覆盖层,检查器给出反馈后可继续修订;原始源码不会被流程直接覆盖。

架构与数据流

ReAgent 的编排器读取 Ghidra 后端与项目配置,建立函数清单,将反编译上下文交给模型生成候选代码,再运行检查器和可选的构建、测试或运行命令。报告、提示与响应日志构成证据链;候选内容和原项目分开保存。

技术栈和运行条件

语言

Python 3.10+;目标代码为 C/C++

框架

CLI 编排器、Ghidra Bridge、模型提供方适配器

关键依赖

  • Ghidra
  • Ghidra Bridge
  • Claude、Codex CLI 或 OpenAI 兼容模型之一
  • Git(源码安装时)

运行环境

本机或隔离工作环境;验证命令由目标项目配置

常见问题

auto-re-agent 为什么现在叫 ReAgent?

Dryxio 已把仓库更名为 ReAgent,旧的 auto-re-agent 地址会跳转到新仓库。安装包和命令仍以官方 README 当前写法为准。

ReAgent v0.4.0 会直接修改原项目源码吗?

官方说明中,候选代码写入报告或覆盖层,原始源码不会被自动改写。使用者仍要审阅输出后再手工合并。

ReAgent 的 parity 通过是否代表代码完全等价?

不代表。结构检查和 parity 信号是保守证据,只能帮助发现差异,不能证明语义正确或二进制完全一致。

运行 ReAgent 前最需要检查什么?

先确认分析授权,再检查配置里的构建、测试和运行命令。只有在目标项目由自己控制且命令可信时,才启用 trust_configured_commands。