hzybjyd/ethereum-auditor
GitHub: hzybjyd/ethereum-auditor
一款结合 Slither 静态分析与 DeepSeek 大模型的以太坊智能合约安全审计工具,支持链上合约自动获取与七类漏洞检测并生成修复建议。
Stars: 0 | Forks: 0
# 以太坊智能合约多维安全监测与 DeepSeek 智能反馈系统
面向教育目的的以太坊智能合约安全审计工具,支持链上合约自动获取、7 类漏洞检测、DeepSeek 大模型智能修复建议,以及结构化审计报告生成。
## 快速开始
### 环境要求
| 依赖 | 版本 |
|------|------|
| Python | >= 3.10(推荐 3.14) |
| uv | 最新版 |
| solc-select | 随 requirements.txt 安装 |
### 安装
cd ethereum-auditor
uv venv --python 3.14 .venv
.venv\Scripts\activate
uv pip install -r requirements.txt
### 配置
cp .env.example .env
编辑 `.env`,填入你的 API 密钥:
ETHERSCAN_API_KEY=你的Etherscan密钥 # 必填
DEEPSEEK_API_KEY=你的DeepSeek密钥 # 必填
LLM_MODEL=deepseek-chat # 可选
### 验证连通性
python -m src.tools.test_etherscan_api # 测试 Etherscan
python -m src.tools.test_llm_api # 测试 DeepSeek
### 运行审计
# 审计链上合约(Etherscan API 模式)
python -m src.main -a 0x6B175474E89094C44Da98b954EedeAC495271d0F
# 审计本地文件/目录
python -m src.main -f ./samples/GyroECLPPool
报告自动保存到 `reports/` 目录(JSON + Markdown 双格式)。
## 项目结构
ethereum-auditor/
├── .venv/ Python 虚拟环境(不入 Git)
├── .env / .env.example 环境配置
├── requirements.txt Python 依赖(6 个直接依赖)
├── README.md 本文件
├── docs/
│ ├── system_introduction.md 系统介绍报告(架构、模块、数据流)
│ └── operation_guide.md 运行操作指导(安装、配置、使用、排错)
├── reports/ 审计报告输出(自动生成,不入 Git)
├── samples/ 本地示例合约
│ └── GyroECLPPool/ Balancer GyroECLPPool 多文件项目
└── src/
├── config.py 配置管理(.env 加载、单例)
├── main.py CLI 入口 / 异步编排器
├── collector/ 数据采集
│ ├── etherscan_client.py Etherscan API 客户端(v2/v1 自动回退)
│ └── rate_limiter.py 令牌桶限流器
├── detectors/ 漏洞检测
│ ├── base_detector.py 检测器抽象基类
│ ├── engine.py 检测引擎(Slither 编译 + 并发检测)
│ ├── result.py 结果数据模型
│ ├── call_injection.py (1) 调用安全漏洞
│ ├── reentrancy.py (2) 重入攻击
│ ├── access_control.py (3) 权限控制
│ ├── integer_overflow.py (4) 数值溢出
│ ├── account_freeze.py (5) 账户冻结
│ ├── logic_flaw.py (6) 逻辑缺陷
│ └── randomness_misuse.py (7) 随机数误用
├── llm/ 大模型集成
│ ├── deepseek_client.py DeepSeek API 客户端(OpenAI 兼容)
│ └── prompt_templates.py 7 套漏洞修复提示词模板
├── storage/ 存储与报告
│ ├── models.py AuditRecord 数据模型
│ ├── repository.py JSON 文件存储仓库
│ └── report_generator.py Markdown 报告生成器
└── tools/ API 连通性测试
├── test_etherscan_api.py
└── test_llm_api.py
## 系统架构
用户输入 (--address / --file)
│
├─ Etherscan API ──┐
│ (令牌桶限流) │
│ ├─ solc 版本自动切换 → Slither 编译
└─ 本地文件 ───────┘
│
7 个检测器并发执行
│
DeepSeek LLM 修复建议
│
JSON + Markdown 报告
## 7 个漏洞检测器
| # | 检测器 | 检测内容 | 等级 |
|---|--------|----------|------|
| 1 | 调用安全漏洞 | `.call{}`、`.delegatecall{}` 底层调用 | HIGH |
| 2 | 重入攻击 | 外部调用后仍有状态写入(CEI 违规) | HIGH |
| 3 | 权限控制 | 敏感函数缺少访问控制修饰器 | HIGH |
| 4 | 数值溢出 | Solidity < 0.8 未使用 SafeMath | HIGH |
| 5 | 账户冻结 | 向 address(0) 转账;仅有冻结无解冻 | HIGH/WARNING |
| 6 | 逻辑缺陷 | `tx.origin` 认证、`block.number` 严格比较 | HIGH/WARNING |
| 7 | 随机数误用 | 使用 block.timestamp 等可预测数据作随机源 | HIGH/WARNING |
## 输出产物
每次审计生成两个文件到 `reports/` 目录:
| 文件 | 用途 |
|------|------|
| `{name}_{id}.json` | 结构化数据,可程序化处理 |
| `{name}_{id}.md` | 中文 Markdown 报告,含表格、代码片段、LLM 修复建议 |
报告明确标注**数据来源**(API / 本地)和 **LLM 状态**(已调用 / 未调用)。
## 文档索引
| 文档 | 内容 |
|------|------|
| [system_introduction.md](docs/system_introduction.md) | 系统架构、模块详解、数据流、技术栈 |
| [operation_guide.md](docs/operation_guide.md) | 环境搭建、API 密钥获取、运行命令、报告查看、常见问题排查 |
## 技术栈
Python 3.14 / asyncio / httpx / Slither / solc-select / DeepSeek API / Jinja2 / tabulate
标签:DLL 劫持, Python, 以太坊, 大语言模型, 无后门, 智能合约, 计算机取证, 运行时操纵, 逆向工具