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, 以太坊, 大语言模型, 无后门, 智能合约, 计算机取证, 运行时操纵, 逆向工具