返回首页

Go 版聊天 Telega 检测器:VK Calls API

Go 工具 antitelega 通过公共 VK Calls API 扫描 Telegram 聊天中的 Telega 用户。描述架构、jitter 和 risk_level 的封禁保护、gotgproto 的典型错误。

用于在 Telegram 聊天中搜索 Telega 的 Go-bot
Advertisement 728x90

Telegram 群组 Telega 用户检测器:Go 语言实现

安装 VK 的 Telega 客户端,会在未经用户明确同意的情况下,将你的 Telegram ID 注册到 VK Calls 数据库中。这通过向 calls.okcdn.ru 进行匿名登录实现。从 Telegram ID 到 OK ID 的映射关系,通过无需认证的 API 即可公开访问。

基于 Go 语言的 antitelega 检测器会扫描群组,拉取成员 ID,并检查他们是否在数据库中。整个过程只需三个 HTTP 请求:匿名登录、通过外部 ID 查询 OK ID,以及解析响应。

POST https://calls.okcdn.ru/api/auth/anonymLogin

application_key=CHKIPMKGDIHBABABA
session_data={"device_id":"antitelega","version":2,...}

CHKIPMKGDIHBABABA 密钥是从 Telega APK(appId: 512001570726)中提取的。服务器会返回一个 session_key,用于后续请求。

Google AdInline article slot
POST https://calls.okcdn.ru/api/vchat/getOkIdByExternalId

application_key=CHKIPMKGDIHBABABA
session_key=<第一步获取>
externalId=123456789

响应中包含 ok_id 表示已注册;300 错误则表示未找到记录。

扫描器架构:从 /scan 命令到报告生成

机器人通过在“收藏消息”中输入 /scan @群组名 启动扫描。流程包括:

  • 枚举成员:通过 ChannelsGetParticipants 分页拉取成员列表,添加随机抖动,并过滤掉机器人和已删除账号。
  • 缓存查询:检查 SQLite 缓存(TTL 6 小时)。
  • 批量检查:通过工作池分发请求,带速率限制和抖动。
  • 生成报告:在“收藏消息”中格式化输出,如果超过 3800 字符则分块发送。

二进制文件约 26 MB,纯 Go 实现,使用 modernc.org/sqlite,无 CGO,支持 ARM 架构。

Google AdInline article slot

风险级别:预设配置避免封禁

func jitteredDuration(d time.Duration, jitterPct float64) time.Duration {
    factor := 1.0 + jitterPct*(2*rand.Float64()-1)
    return time.Duration(float64(d) * factor)
}

抖动模拟人类行为,避免被检测。风险级别预设:

  • 极度谨慎:1 个工作线程,1 req/s,30 人/页,±50% 抖动(700 人需 16 分钟)。
  • 谨慎(默认):2 个工作线程,3 req/s,80 人/页,±40% 抖动(5 分钟)。
  • 正常:4 个工作线程,6 req/s,150 人/页,±30% 抖动(2.5 分钟)。
  • 激进:无抖动,最大速度(封禁风险高)。

用户机器人开发常见坑

  • 错误设备配置:gotgproto 默认使用 GoTGProto, Helsinki,易触发封禁。修复:使用模拟 Telegram Desktop 的 DeviceConfig
  • 固定间隔:精确 350 ms 是反垃圾系统的明显标志。必须使用抖动。
  • API 变更:端点从 getOkIdsByExternalIds 改为单数形式;密钥可能被 OK 撤销。建议将 application_key 配置化。

方法局限性

检测到 ok_id 只表示过去安装过 Telega,并非当前在使用。它完全镜像 Telega 的协议,无任何漏洞利用。

关键点:

Google AdInline article slot
  • 首次 Telega anonymLogin 时创建映射。
  • API 公开,密钥来自 APK。
  • 用户机器人有封禁风险,使用小号。
  • 缓存和抖动降低检测概率。
  • 约 2000 行 Go 代码,MIT 许可。

— Editorial Team

Advertisement 728x90

继续阅读