集成方式
IconHash Skills 提供 4 种集成路径,覆盖从 AI 代理到嵌入式 SDK 的全部场景。
按场景速览:
- SKILLS AI 代理自动调用 —— 让 Claude / GPT 直接理解图标指纹能力
- CLI 命令行脚本 —— 11 个子命令,渗透 / 批处理首选
- SDK Go 嵌入式 ——
import即用,性能最高 - API HTTP 服务 —— 跨语言、团队共享
4 种方式一览
选型矩阵
| 维度 | ① SKILLS | ② CLI | ③ Go SDK | ④ MCP/API |
|---|---|---|---|---|
| 语言 | 无(AI 调用) | Shell/任意 | Go | 任意 |
| 运行形态 | AI 代理内 | 独立进程 | 编译进二进制 | HTTP 服务 |
| 交互性 | 自然语言 | 命令行参数 | 函数调用 | HTTP 请求 |
| 自动化 | ★★★★★ | ★★★★ | ★★★★★ | ★★★★ |
| 部署复杂度 | 极低 | 极低 | 低 | 中 |
| 性能 | 中(经 AI) | 高 | 最高 | 中(HTTP) |
| 典型场景 | AI 安全助手 | 渗透脚本 | 自建工具 | 团队共享服务 |
选型决策图
按问题一步步走,落地到最适合的方式:
四种方式并非互斥
实际项目里常常组合使用:本地脚本用 CLI 速查、Go 工具嵌入 SDK、团队再起一个 HTTP 服务共享指纹库,AI 助手则通过 SKILLS / MCP 接入。详见末尾组合使用。
① SKILLS — AI 代理集成 SKILLS
让 Claude、GPT 等 AI 代理直接理解并能调用 IconHash 能力。
适用场景
- 用自然语言驱动红队侦察:「帮我把这批站点都查一下指纹」
- 在 Claude Code / Cursor 等工具里零代码调用图标识别
- 需要 AI 帮你解释哈希值、关联指纹库结果
安装:
安装步骤(点击展开)
bash
# 作为 Claude Code 插件
/plugin install cyberspacesec/iconhash-skills安装后 AI 代理会自动读取 SKILLS.md 技能声明,无需额外配置即可识别 iconhash_url 等 4 个技能。
4 个技能:
| 技能 | 作用 |
|---|---|
hash | 从 URL/文件/base64 计算哈希 |
discover | 发现网站所有图标 |
identify | 一键端到端识别 |
lookup | 用哈希查询指纹库 |
② CLI — 命令行 CLI
最直接的使用方式,11 个子命令覆盖全部功能:
为什么选 CLI
- 零依赖:单二进制丢到
PATH即可,适合渗透机 / 容器 - 管道友好:可被 shell 脚本、CI、cron 直接编排
- 离线可用:本地指纹库随二进制分发
典型用法:
更多命令示例(点击展开)
bash
# 端到端识别
iconhash identify https://example.com
# 批量
iconhash batch -f urls.txt -w 10 -o json
# 查指纹
iconhash lookup -i -1161367058常用组合:
| 目标 | 命令 |
|---|---|
| 单站识别 | iconhash identify <url> |
| 批量扫描 | iconhash batch -f urls.txt -w 10 |
| 仅查哈希 | iconhash url <url> |
| 反查指纹 | iconhash lookup -i <hash> |
完整命令参考见 CLI 命令手册。
③ Go SDK — 嵌入式 SDK
把哈希与指纹能力直接编译进你的 Go 工具:
SDK 注意事项
- Go module 需
go 1.21+,执行go get github.com/cyberspacesec/iconhash-skills/pkg/... - 指纹库以嵌入资源形式编译进二进制,单文件分发无需外部依赖
- 与 CLI 同源代码,行为完全一致,可放心替换
代码示例:
完整示例(点击展开)
go
package main
import (
"fmt"
"github.com/cyberspacesec/iconhash-skills/pkg/hasher"
"github.com/cyberspacesec/iconhash-skills/pkg/fingerprint"
)
func main() {
// 计算哈希
hash, _ := hasher.HashFromURL("https://example.com/favicon.ico")
// 查询指纹
result := fingerprint.Lookup(hash)
fmt.Printf("服务: %s\n", result.Service)
}更多 API:
| 函数 | 作用 |
|---|---|
hasher.HashFromURL(url) | 从 URL 算 MMH3 哈希 |
hasher.HashFromFile(path) | 从本地文件算哈希 |
hasher.HashFromBase64(b64) | 从 base64 算哈希 |
fingerprint.Lookup(hash) | 哈希反查服务 |
fingerprint.MergeDB(dbs...) | 合并多个指纹库 |
完整 API 见 Go SDK。
④ MCP / API — HTTP 服务 API
以独立服务运行,供任何语言或团队调用:
部署前必读
- 务必设置
--auth-token:指纹接口涉及目标资产,公网暴露需鉴权 - 服务是无状态的单进程,建议前置 Nginx / 反代 并加 TLS
- 指纹库更新后需重启进程生效(暂不热加载)
启动服务:
启动与调用示例(点击展开)
bash
iconhash server -p 8000 --auth-token "your-secret"启动后用 token 调用:
bash
# 计算 URL 哈希
curl -H "Authorization: Bearer your-secret" \
"http://localhost:8000/hash/url?url=https://example.com/favicon.ico"
# 反查指纹
curl -H "Authorization: Bearer your-secret" \
"http://localhost:8000/lookup?hash=-1161367058"两种协议:
| 协议 | 端点 | 适合 |
|---|---|---|
| REST | /hash/*, /lookup, /fingerprints | 程序化调用 |
| MCP | /mcp | AI 代理(标准 MCP) |
完整端点见 HTTP API 参考 与 MCP 集成。
组合使用
四种方式并非互斥,常组合使用。一个典型的安全团队部署:
组合原则
- 共享层:团队只起一个
iconhash server,统一维护指纹库 - 接入层:CLI / SDK / SKILLS 各取所需,不重复造轮子
- 离线兜底:关键岗位本地常备 CLI 二进制,断网也能用
下一篇:CLI 命令手册。