Detector de usuarios de Telega en chats de Telegram: Implementación en Go
Instalar el cliente Telega de VK registra tu ID de Telegram en la base de datos de VK Calls sin consentimiento explícito del usuario. Esto ocurre mediante un inicio de sesión anónimo en calls.okcdn.ru. El mapeo de ID de Telegram a ID de OK queda accesible públicamente a través de una API sin autenticación.
El detector antitelega basado en Go escanea chats, extrae los IDs de los miembros y verifica si están en la base de datos. Todo el proceso requiere solo tres peticiones HTTP: inicio de sesión anónimo, búsqueda de ID de OK por ID externo y análisis de la respuesta.
POST https://calls.okcdn.ru/api/auth/anonymLogin
application_key=CHKIPMKGDIHBABABA
session_data={"device_id":"antitelega","version":2,...}
La clave CHKIPMKGDIHBABABA se extrae del APK de Telega (appId: 512001570726). El servidor responde con una session_key para las peticiones siguientes.
POST https://calls.okcdn.ru/api/vchat/getOkIdByExternalId
application_key=CHKIPMKGDIHBABABA
session_key=<de paso 1>
externalId=123456789
Una respuesta con ok_id confirma el registro; un error 300 indica que no hay registro.
Arquitectura del escáner: Del comando /scan al informe
El bot se inicia con /scan @nombrechat en Mensajes Guardados. El flujo incluye:
- Enumeración: Extracción de miembros vía
ChannelsGetParticipantscon paginación, jitter y filtrado de bots/cuentas eliminadas. - Consulta de caché: Verificación en caché SQLite (TTL 6 horas).
- Verificación por lotes: Distribuida en un pool de workers con limitación de tasa y jitter.
- Informe: Salida formateada en Mensajes Guardados, dividida en fragmentos si supera 3800 caracteres.
El binario ocupa ~26 MB, Go puro con modernc.org/sqlite, sin CGO. Incluye soporte ARM.
Nivel de riesgo: Preajustes para evitar baneos
func jitteredDuration(d time.Duration, jitterPct float64) time.Duration {
factor := 1.0 + jitterPct*(2*rand.Float64()-1)
return time.Duration(float64(d) * factor)
}
El jitter imita el comportamiento humano para evadir detección. Preajustes de nivel de riesgo:
- paranoico: 1 worker, 1 req/s, 30 miembros/página, ±50% jitter (16 min para 700 usuarios).
- cauteloso (predeterminado): 2 workers, 3 req/s, 80/página, ±40% (5 min).
- normal: 4 workers, 6 req/s, 150/página, ±30% (2,5 min).
- agresivo: Sin jitter, velocidad máxima (alto riesgo de baneo).
Errores comunes en desarrollo de userbots
- DeviceConfig incorrecto: gotgproto usa por defecto
GoTGProto, Helsinki, lo que activa baneos. Solución: UsaDeviceConfigque imite Telegram Desktop. - Intervalos fijos: Exactamente 350 ms es una señal clara para el antispam. El jitter es imprescindible.
- Cambios en API: El endpoint pasó de
getOkIdsByExternalIdsa singular; la clave puede ser revocada por OK. Hazapplication_keyconfigurable.
Limitaciones del método
Un ok_id positivo indica una instalación pasada de Telega, no uso actual. Replica el protocolo exacto de Telega—sin exploits.
Puntos clave:
- Mapeo creado en el primer
anonymLoginde Telega. - API pública; clave del APK.
- Userbots arriesgan baneos—usa cuentas desechables.
- Caché y jitter reducen probabilidades de detección.
- ~2000 líneas de Go, licencia MIT.
— Editorial Team
Aún no hay comentarios.