techleadevelopers/vulnerability-forensics-smart-contract
GitHub: techleadevelopers/vulnerability-forensics-smart-contract
一款基于深度字节码分析与非破坏性分叉验证的智能合约安全审计工具,旨在实时检测并降低 DeFi 场景中的误报率。
Stars: 5 | Forks: 2
# 审计智能合约 — 工作区
## 概述
使用 TypeScript 的 pnpm 工作区单体仓库。具备 React 仪表板的 EVM 智能合约安全审计引擎。
## 技术栈
- **单体仓库工具**:pnpm workspaces
- **Node.js 版本**:24
- **包管理器**:pnpm
- **TypeScript 版本**:5.9
- **API 框架**:Express 5
- **数据库**:PostgreSQL + Drizzle ORM
- **验证**:Zod (`zod/v4`)、`drizzle-zod`
- **API 代码生成**:Orval(基于 OpenAPI 规范)
- **构建**:esbuild(CJS 打包)
- **前端**:React + Vite + Tailwind CSS + shadcn/ui
## 关键命令
- `pnpm run typecheck` — 全单体包类型检查
- `pnmb run build` — 类型检查并构建所有包
- `pnpm --filter @workspace/api-spec run codegen` — 从 OpenAPI 规范重新生成 API 钩子和 Zod 模式
- **关键**:代码生成后始终用 `export * from "./generated/api";` 覆盖 `lib/api-zod/src/index.ts`
- `pnpm --filter @workspace/db run push` — 推送数据库架构变更(仅开发环境)
- `pnpm --filter @workspace/api-server run dev` — 本地运行 API 服务器
## 架构
### 构件
- **API 服务器**(`artifacts/api-server/`)— 端口来自 `$PORT`(开发环境为 8080)的 Express 5 REST API
- 路由:`/api/reports`、`/api/scanner/status`、`/api/scanner/endpoints`、`/api/scanner/run`(SSE)
- **UI**(`artifacts/contract-scanner-ui/`)— React 仪表盘,访问路径 `/`
- 页面:仪表盘、扫描器(带 SSE 日志的实时扫描)、报告、报告详情、端点
### 库
- `lib/db/` — Drizzle ORM 架构 + 数据库连接(`vulnerability_reports` 表)
- `lib/api-spec/` — OpenAPI YAML 规范(所有 API 形态的单一事实来源)
- `lib/api-client-react/` — 生成的 React Query 钩子(通过 Orval)
- `lib/api-zod/` — 生成的 Zod 校验器(通过 Orval)
### 扫描器流水线(SSE 端点 `/api/scanner/run`)
POST 请求体为 `{ contractAddress, mode, simulation, fork }`,返回实时 SSE 流:
1. 字节码获取与解码
2. 操作码分析(DELEGATECALL、SELFDESTRUCT、CALLCODE)
3. ABI 选择器提取(4 字节数据库)
4. 可选执行 eth_call 模拟(+50 置信度)
5. 置信度 ≥ 60 时启用 Anvil 分叉验证(自动模式)
6. 输出置信度分数并持久化至数据库
### 置信度分数
每条报告输出 0–100 的整数值:
- 发现危险操作码:+15(每项)
- 标记的选择器:+10(每项)
- 模拟成功:+50
- 模拟中存在价值转移:+30
- 分叉验证确认:+20
- `≥ 80` → CRITICAL,`≥ 60` → HIGH,`≥ 40` → MEDIUM,`≥ 20` → LOW,否则为 INFO
## 数据库架构说明
- `vulnerability_reports` 表包含 `confidence_score INTEGER NOT NULL DEFAULT 0`
- 架构变更后请务必运行 `pnpm --filter @workspace/db run push-force`
请参考 `pnpm-workspace` 技能以了解工作区结构、TypeScript 配置与包详情。
标签:API代码生成, DeFi安全审计, DeFi审计工具, Drizzle ORM, esbuild构建, EVM安全, Express 5 API, Maven, Mempool监控, Node.js 24, OpenAPI规范, Orval, pnpm monorepo, PostgreSQL, React前端, shadcn/ui, SSE实时流, Tailwind CSS, TypeScript, Vite, Zod验证, 区块链安全, 字节码解码, 安全插件, 实时安全分析, 工作区架构, 操作码分析, 数据库迁移, 智能合约审计, 测试用例, 深度字节码检查, 漏洞模拟, 漏洞验证, 状态分叉执行, 误报消除, 通知系统, 非破坏性执行