cognis-digital/approvewarden

GitHub: cognis-digital/approvewarden

扫描钱包中危险的 ERC 代币授权与无限额度,评估资产被 drainer 抽走的风险并生成撤销交易,可嵌入 CI 实现自动化安全门禁。

Stars: 0 | Forks: 0

APPROVEWARDEN # 批准 WARDEN ### 扫描任何钱包,查找危险的 ERC-20/721/1155 token 授权和无限额度,评估 drainer 暴露风险并生成撤销交易。 [![PyPI](https://img.shields.io/pypi/v/cognis-approvewarden.svg?color=6b46c1)](https://pypi.org/project/cognis-approvewarden/) [![CI](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/3733bb9d53183855.svg)](https://github.com/cognis-digital/approvewarden/actions) [![License: COCL 1.0](https://img.shields.io/badge/License-COCL%201.0-2b6cb0.svg)](LICENSE) [![Suite](https://img.shields.io/badge/Cognis-Neural%20Suite-6b46c1.svg)](https://github.com/cognis-digital) *Web3 与智能合约安全 —— 链上安全与分析。*
``` pip install cognis-approvewarden approvewarden scan . # → prioritized findings in seconds ``` ## 使用说明 —— 分步指南 `approvewarden` 审计导出的钱包授权集(JSON 或 CSV),查找无限额度并评估 drainer 暴露风险 —— 完全在离线环境下进行。 1. **安装** (Python 3.10+): pip install -e . # 或者:pipx install approvewarden 2. **扫描授权导出文件**(易读的表格形式): approvewarden scan demos/01-basic/approvals.json 3. **以 JSON 格式读取输出**(例如总体风险评分): approvewarden scan approvals.csv --format json | jq .risk_score cat approvals.json | approvewarden scan - # 标准输入 (JSON) 4. **在超过严重程度阈值时中断构建 (Fail the build)**: approvewarden scan approvals.json --fail-on high 5. **拦截 CI** —— 当发现达到或超过 `--fail-on` 风险级别的授权时退出码为 `2`,无风险时为 `0`,解析错误时为 `1`: - 运行:pip install -e . && approvewarden scan approvals.json --fail-on high ## 目录 - [为什么选择 approvewarden?](#why) · [功能](#features) · [快速开始](#quick-start) · [示例](#example) · [架构](#architecture) · [AI stack](#ai-stack) · [对比](#how-it-compares) · [集成](#integrations) · [随处安装](#install-anywhere) · [相关工具](#related) · [贡献](#contributing) ## 为什么选择 approvewarden? 这是一个无头、可脚本化的 revoke.cash,DAO/金库可以将其运行在 CI 中,以针对过期的无限授权发出警报 —— 普及安全卫生习惯。 `approvewarden` 具有单一用途、可脚本化且支持自托管:将其指向目标,即可通过您的工作流已有的格式(表格 · JSON · SARIF)获取优先级排序后的结果,据此拦截 CI,并允许 agent 通过 MCP 驱动它。
↑ 返回顶部
## 功能 - ✅ 归一化地址 (Normalize Address) - ✅ 额度分类 (Classify Allowance) - ✅ 授权评分 (Score Approval) - ✅ 从文本加载授权 (Load Approvals From Text) - ✅ 加载授权 (Load Approvals) - ✅ 审计授权 (Audit Approvals) - ✅ 支持 Linux/macOS/Windows · Docker · devcontainer 运行 - ✅ 提供 Python、JavaScript、Go 和 Rust 多语言移植版本 (`ports/`)
↑ 返回顶部
## 快速开始 ``` pip install cognis-approvewarden approvewarden --version approvewarden scan . # scan current project approvewarden scan . --format json # machine-readable approvewarden scan . --fail-on high # CI gate (non-zero exit) ```
↑ 返回顶部
## 示例 ``` $ approvewarden scan . [HIGH ] APP-001 example finding (./src/app.py) [MEDIUM ] APP-002 another signal (./config.yaml) 2 findings · risk score 5 · 38ms ```
↑ 返回顶部
## 架构 ``` flowchart LR IN[addresses + transactions] --> P[approvewarden
cluster + trace] P --> OUT[sanctions xref / report] ```
↑ 返回顶部
## 从任何 AI stack 中使用 `approvewarden` 兼容所有流行的 AI 使用方式: - **MCP server** —— `approvewarden mcp` (Claude Desktop、Cursor、Cognis.Studio、[uncensored-fleet](https://github.com/cognis-digital/uncensored-fleet)) - **OpenAI 兼容 / JSON** —— 通过管道将 `approvewarden scan . --format json` 传入任何 agent 或 LLM - **LangChain · CrewAI · AutoGen · LlamaIndex** —— 一行代码将 CLI/JSON 封装为工具 - **CI / 脚本** —— 为非 AI pipeline 提供退出码 + SARIF
↑ 返回顶部
## 对比 | | **Cognis approvewarden** | Revoke.cash | |---|:---:|:---:| | 支持自托管,无需账户 | ✅ | 视情况而定 | | 单条命令,零配置 | ✅ | ⚠️ | | 提供 CI 适用的 JSON + SARIF | ✅ | 视情况而定 | | MCP 原生支持 (AI agents) | ✅ | ❌ | | 多语言移植版本 (JS/Go/Rust) | ✅ | ❌ | | 开源许可证 | ✅ COCL | 视情况而定 | *秉承 **Revoke.cash** 的精神,以 Cognis 的方式重新构建。遗漏了致谢?欢迎提交 PR。*
↑ 返回顶部
## 集成 无缝接入您的技术栈:用于代码扫描的 **SARIF**、用于一切场景的 **JSON**、用于 AI agent 的 **MCP server** (`approvewarden mcp`),以及用于 SIEM/Slack/Jira 的 webhook 转发器。详见 [`docs/INTEGRATIONS.md`](docs/INTEGRATIONS.md)。
↑ 返回顶部
## 安装 —— 全方式、全平台 ``` pip install "git+https://github.com/cognis-digital/approvewarden.git" # pip (works today) pipx install "git+https://github.com/cognis-digital/approvewarden.git" # isolated CLI uv tool install "git+https://github.com/cognis-digital/approvewarden.git" # uv pip install cognis-approvewarden # PyPI (when published) docker run --rm ghcr.io/cognis-digital/approvewarden:latest --help # Docker brew install cognis-digital/tap/approvewarden # Homebrew tap curl -fsSL https://raw.githubusercontent.com/cognis-digital/approvewarden/main/install.sh | sh ``` | Linux | macOS | Windows | Docker | 云平台 | |---|---|---|---|---| | `scripts/setup-linux.sh` | `scripts/setup-macos.sh` | `scripts/setup-windows.ps1` | `docker run ghcr.io/cognis-digital/approvewarden` | [DEPLOY.md](docs/DEPLOY.md) (AWS/Azure/GCP/k8s) |
↑ 返回顶部
## 相关 Cognis 工具 - [`reentryx`](https://github.com/cognis-digital/reentryx) —— 静态 + 符号执行检测器,用于标记 Solidity/Vyper 中的重入、跨函数和只读重入路径,并输出支持 CI 拦截的 SARIF。 - [`forkfuzz`](https://github.com/cognis-digital/forkfuzz) —— 主网分叉不变量模糊测试器,通过实时状态和有状态序列重放您的合约,以便在部署前破坏协议不变量。 - [`mevscope`](https://github.com/cognis-digital/mevscope) —— 重放交易或地址历史,以归因夹子攻击、抢先交易和尾随交易 MEV 提取,并进行每笔交易的损失核算。 - [`rugradar`](https://github.com/cognis-digital/rugradar) —— token 合约风险扫描器,在您盲目投资前检测蜜罐、隐藏的 mint/blacklist 函数、所有者后门以及未锁定流动性。 - [`storagelens`](https://github.com/cognis-digital/storagelens) —— 对跨代理升级的合约存储布局进行差异比对和解码,以捕获存储冲突和未初始化插槽的 bug。 - [`sigsleuth`](https://github.com/cognis-digital/sigsleuth) —— 将原始 calldata 和 EIP-712 类型化数据解码为人类可读的意图,标记盲签和恶意的 permit/Permit2 payload。 **探索完整工具套件 →** [🗂️ 所有 170+ 工具](https://github.com/cognis-digital/cognis-neural-suite) · [⭐ awesome-cognis](https://github.com/cognis-digital/awesome-cognis) · [🔗 cognis-sources](https://github.com/cognis-digital/cognis-sources) · [🤖 uncensored-fleet](https://github.com/cognis-digital/uncensored-fleet) · [🧠 engram](https://github.com/cognis-digital/engram)
↑ 返回顶部
## 互操作性 `{}` 与包含 300+ 工具的 Cognis 套件协同工作 —— 统一的 JSON 输入/输出以及共享的 兼容 OpenAI 的 `/v1` 主干网络。请参阅 **[INTEROP.md](INTEROP.md)** 获取 套件图谱、组合模式以及参考技术栈。 ## 许可证 源代码可见,基于 **Cognis Open Collaboration License (COCL) v1.0** 许可证 —— 个人、内部评估、研究和教育用途免费;**商业/生产用途需要许可证** (licensing@cognis.digital)。请参阅 [LICENSE](LICENSE)。
Cognis Digital · Cognis Neural Suite 中的 170+ 工具之一 · Making Tomorrow Better Today
标签:Python, Web3, 区块链安全, 可视化界面, 数据可视化, 无后门, 日志审计, 智能合约审计, 请求拦截, 逆向工具