Sachin-Buluswar/reentbot

GitHub: Sachin-Buluswar/reentbot

一个由 LLM 智能体驱动的 Solidity 智能合约自动化审计框架,整合静态分析、模糊测试和形式化验证等多种技术来发现并验证漏洞。

Stars: 1 | Forks: 0

# ReentBot 自动化智能合约审计工具。它在 Docker 沙箱中运行 LLM 智能体循环,结合 Slither、Foundry、Echidna、Medusa 和 Halmos,以查找 Solidity 代码中的漏洞。 ## 快速开始 ``` export OPENROUTER_API_KEY=sk-or-... uv sync reentbot ./path/to/contracts ``` ## 设置 ``` # 使用 uv 安装 uv pip install -e . # 或安装依赖 uv sync ``` ### 环境要求 - Python 3.11+ - Docker(运行中) - OpenRouter API 密钥 ### 环境变量 ``` export OPENROUTER_API_KEY=sk-or-... # Required export ETH_RPC_URL=https://eth-mainnet... # Optional, enables on-chain queries export REENTBOT_MODEL=anthropic/claude-sonnet-4-20250514 # Optional ``` ## 使用方法 ``` # 基本审计 — 启动交互式设置向导 reentbot ./path/to/contracts # 带选项 (跳过向导中对已提供值的提示) reentbot ./contracts --model anthropic/claude-sonnet-4-20250514 --max-time 1800 --capital 5000 # 设置 token 和 turn budgets reentbot ./contracts --max-tokens 500000 --max-turns 50 # 设置 context window 以匹配你的模型 (例如,Claude Sonnet 4 为 200k) reentbot ./contracts --context-window 200000 # 跳过交互式 chat reentbot ./contracts --no-chat # 自定义 output directory 和 Docker image 名称 reentbot ./contracts --output ./my-audit-results --image my-custom-tools # 控制 tool output 详细程度 reentbot ./contracts --verbosity full # Complete untruncated output reentbot ./contracts --verbosity partial # Truncated output (default) reentbot ./contracts --verbosity off # Tool headers only, no result panels ``` 如果任何配置值缺失(未通过 CLI 标志或环境变量提供),设置向导将在开始审计之前交互式地提示您。通过 CLI 标志或环境变量提供的值将跳过相应的提示。 ### 详细级别 | 级别 | 行为 | |-------|----------| | `off` | 仅显示工具调用头信息(例如 `>> run_command: forge test`),不显示结果面板 | | `partial` | 截断长结果(显示前/后 350 个字符)。默认值。 | | `full` | 显示完整的工具输出,不截断 | 无论详细程度如何设置,发现(`submit_finding`)和审计报告始终会完整显示。 首次运行会构建包含所有审计工具的 Docker 镜像(需要几分钟)。后续运行将使用缓存的镜像。 ## 输出 每次运行都会在 `./findings/` 下创建一个带有时间戳的目录(例如 `./findings/2025-06-15_14-30-00/`),其中包含: - `report.md` — 包含攻击合约的完整漏洞报告 - `findings.json` — 机器可读的发现结果 智能体在审计期间编写的利用合约和测试文件将保留在源目录中。 ## 预算默认值 | 参数 | 默认值 | 描述 | |-----------|---------|-------------| | `--max-tokens` | 2,000,000 | 审计循环的总 token 预算 | | `--max-turns` | 200 | 最大智能体轮次 | | `--max-time` | 3600s | 实际运行时间限制 | | `--context-window` | 128,000 | 模型的上下文窗口大小;控制对话历史记录的保留 | | 每次响应 | 16,384 | 审计和聊天阶段每次 LLM 响应的最大输出 token | | 每次响应 | 65,536 | 报告生成阶段每次 LLM 响应的最大输出 token | ## 三个阶段 1. **审计** — 自主进行。智能体探索代码,运行工具,发现并验证漏洞。 2. **报告** — 自动生成。生成包含攻击合约的综合 Markdown 报告。 3. **聊天** — 交互式。提出后续问题,请求更深入的分析,或输入 `keep-auditing` 以恢复审计。 ## 免责声明 本工具旨在用于授权的安全测试、教育用途和 CTF 竞赛。它不能替代专业的手动审计。用户有责任确保其拥有测试目标合约的授权。 ## 许可证 MIT
标签:C2, Claude, CVE检测, DevSecOps, Docker沙箱, Echidna, Foundry, Halmos, Medusa, OpenRouter, Python, Slither, Solidity, Web3安全, 上游代理, 云安全监控, 以太坊, 区块链安全, 合约验证, 大型语言模型, 形式化验证, 无后门, 智能合约审计, 请求拦截, 逆向工具, 重入攻击检测, 静态分析