cognis-digital/sigsleuth

GitHub: cognis-digital/sigsleuth

SigSleuth 是一款 Web3 链上安全工具,将原始 EVM calldata 和 EIP-712 签名数据解码为人类可读意图,并自动标记盲签和恶意 permit 风险。

Stars: 0 | Forks: 0

SIGSLEUTH # SIGSLEUTH ### 将原始的 calldata 和 EIP-712 typed-data 解码为人类可读的意图,并标记盲签(blind-signing)和恶意的 permit/Permit2 payload。 [![PyPI](https://img.shields.io/pypi/v/cognis-sigsleuth.svg?color=6b46c1)](https://pypi.org/project/cognis-sigsleuth/) [![CI](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/f5924b248f163352.svg)](https://github.com/cognis-digital/sigsleuth/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-sigsleuth sigsleuth scan . # → prioritized findings in seconds ``` ## 用法 — 分步指南 `sigsleuth` 将原始的 EVM calldata 和 EIP-712 typed data 解码为人类可读的意图,并标记高风险模式。控制台命令:`sigsleuth`。 1. **安装**: pipx install sigsleuth # 或者:pip install sigsleuth 2. **解码原始 calldata**(例如 ERC-20 转账)— `--format` 标志是全局的,需放在子命令之前: sigsleuth calldata 0xa9059cbb000000000000000000000000ab5801a7d398351b8be11c439e05c5b3259aec9b00000000000000000000000000000000000000000000000000000000000f4240 3. **从文件或 stdin 解码**,并添加额外的 ABI 签名以便识别自定义 selector: sigsleuth calldata --file payload.hex --sig 'foo(uint256)' cat payload.hex | sigsleuth calldata 4. **解码 EIP-712 typed data** 并计算签名哈希,以 JSON 格式输出以便通过管道传输: sigsleuth --format json eip712 --file permit.json | jq '.signingHash' 5. **用作钱包/CI 的签名关卡** — 退出码 `0` = 安全,`2` = 存在风险发现,`1` = 无法解码: sigsleuth calldata --file payload.hex; test $? -ne 2 || echo "RISK: refusing to sign" ## 目录 - [为什么选择 sigsleuth?](#why) · [功能](#features) · [快速开始](#quick-start) · [示例](#example) · [架构](#architecture) · [AI stack](#ai-stack) · [对比](#how-it-compares) · [集成](#integrations) · [随处安装](#install-anywhere) · [相关工具](#related) · [贡献](#contributing) ## 为什么选择 sigsleuth? 将“不要盲签”的口号转化为一个与钱包无关的 CLI,准确解释签名授权了什么 — 提升防网络钓鱼的传播力。 `sigsleuth` 是单一用途、可脚本化且可自托管的:将其指向目标,以您的工作流已有的格式(table · JSON · SARIF)获取优先级排序的结果,以此为依据拦截 CI,并让 agent 通过 MCP 驱动它。
↑ 返回顶部
## 功能 - ✅ Keccak256 - ✅ Selector Of - ✅ 解码 Calldata - ✅ 解码 Eip712 - ✅ 可在 Linux/macOS/Windows · Docker · devcontainer 上运行 - ✅ 提供 Python、JavaScript、Go 和 Rust 版本 (`ports/`)
↑ 返回顶部
## 快速开始 ``` pip install cognis-sigsleuth sigsleuth --version sigsleuth scan . # scan current project sigsleuth scan . --format json # machine-readable sigsleuth scan . --fail-on high # CI gate (non-zero exit) ```
↑ 返回顶部
## 示例 ``` $ sigsleuth scan . [HIGH ] SIG-001 example finding (./src/app.py) [MEDIUM ] SIG-002 another signal (./config.yaml) 2 findings · risk score 5 · 38ms ```
↑ 返回顶部
## 架构 ``` flowchart LR IN[input] --> P[sigsleuth
analyze + score] P --> OUT[report] ```
↑ 返回顶部
## 从任何 AI stack 中使用它 `sigsleuth` 可以与所有流行的 AI 使用方式互操作: - **MCP server** — `sigsleuth mcp` (Claude Desktop, Cursor, Cognis.Studio, [uncensored-fleet](https://github.com/cognis-digital/uncensored-fleet)) - **兼容 OpenAI / JSON** — 将 `sigsleuth scan . --format json` 通过管道传递给任何 agent 或 LLM - **LangChain · CrewAI · AutoGen · LlamaIndex** — 一行代码即可将 CLI/JSON 封装为工具 - **CI / 脚本** — 为非 AI pipeline 提供 exit code + SARIF
↑ 返回顶部
## 对比 | | **Cognis sigsleuth** | ScopeLift's 'what does this transaction do' | |---|:---:|:---:| | 可自托管,无需账户 | ✅ | 视情况而定 | | 单一命令,零配置 | ✅ | ⚠️ | | 用于 CI 的 JSON + SARIF | ✅ | 视情况而定 | | MCP 原生(AI agent) | ✅ | ❌ | | 多语言端口 (JS/Go/Rust) | ✅ | ❌ | | 开源许可 | ✅ COCL | 视情况而定 | *秉承 **ScopeLift 的 'what does this transaction do' / Etherscan calldata decoder** 的精神,以 Cognis 的方式重新构建。遗漏了致谢?欢迎提交 PR。*
↑ 返回顶部
## 集成 可无缝接入您的技术栈:用于代码扫描的 **SARIF**,用于任何场景的 **JSON**,用于 AI agent 的 **MCP server** (`sigsleuth mcp`),以及用于 SIEM/Slack/Jira 的 webhook 转发器。详见 [`docs/INTEGRATIONS.md`](docs/INTEGRATIONS.md)。
↑ 返回顶部
## 安装 — 全平台、全方式 ``` pip install "git+https://github.com/cognis-digital/sigsleuth.git" # pip (works today) pipx install "git+https://github.com/cognis-digital/sigsleuth.git" # isolated CLI uv tool install "git+https://github.com/cognis-digital/sigsleuth.git" # uv pip install cognis-sigsleuth # PyPI (when published) docker run --rm ghcr.io/cognis-digital/sigsleuth:latest --help # Docker brew install cognis-digital/tap/sigsleuth # Homebrew tap curl -fsSL https://raw.githubusercontent.com/cognis-digital/sigsleuth/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/sigsleuth` | [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) — 主网分叉不变性模糊测试器,在实时状态和有状态序列上重放您的合约,以在部署前破坏协议不变性。 - [`approvewarden`](https://github.com/cognis-digital/approvewarden) — 扫描任何钱包中的危险 ERC-20/721/1155 代币授权和无限额度,对 drainer 风险进行评分并生成撤销交易。 - [`mevscope`](https://github.com/cognis-digital/mevscope) — 重放交易或地址历史记录,以归因三明治攻击、抢跑和尾随 MEV 提取,并进行逐笔交易损失核算。 - [`rugradar`](https://github.com/cognis-digital/rugradar) — 代币合约风险扫描器,可在您盲目投资前检测蜜罐、隐藏的铸币/黑名单函数、所有者后门以及未锁定流动性。 - [`storagelens`](https://github.com/cognis-digital/storagelens) — 对跨代理升级的合约存储布局进行对比和解码,以捕获存储冲突和未初始化槽位的 bug。 **探索全套工具 →** [🗂️ 全部 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
标签:Web3, 代码示例, 区块链安全, 可视化界面, 数据分析, 数据可视化, 日志审计, 智能合约, 解码工具, 请求拦截, 逆向工具