Skip to content

集成方式

IconHash Skills 提供 4 种集成路径,覆盖从 AI 代理到嵌入式 SDK 的全部场景。

按场景速览:

  • SKILLS AI 代理自动调用 —— 让 Claude / GPT 直接理解图标指纹能力
  • CLI 命令行脚本 —— 11 个子命令,渗透 / 批处理首选
  • SDK Go 嵌入式 —— import 即用,性能最高
  • API HTTP 服务 —— 跨语言、团队共享

不会选?看一句结论

个人 / 单机:直接用 CLIAI 工作流:装 SKILLS自建 Go 工具:用 SDK团队 / 多语言:部署 API。详见下方选型矩阵选型决策图

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用哈希查询指纹库

详见 SKILLS 集成MCP 集成

② 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/mcpAI 代理(标准 MCP)

完整端点见 HTTP API 参考MCP 集成

组合使用

四种方式并非互斥,常组合使用。一个典型的安全团队部署:

组合原则

  • 共享层:团队只起一个 iconhash server,统一维护指纹库
  • 接入层:CLI / SDK / SKILLS 各取所需,不重复造轮子
  • 离线兜底:关键岗位本地常备 CLI 二进制,断网也能用

下一篇:CLI 命令手册

基于 MIT 许可证发布