Retour à l'accueil

Détecteur Telega dans les Chats sur Go : VK Calls API

Utilitaire Go antitelega scanne les chats Telegram pour les utilisateurs Telega via l'API publique VK Calls. Décrit l'architecture, la protection contre les bans avec jitter et risk_level, erreurs typiques avec gotgproto.

Go-bot pour rechercher Telega dans les chats Telegram
Advertisement 728x90

Détecteur d'utilisateurs Telega dans les chats Telegram : implémentation en Go

L'installation du client Telega de VK enregistre votre identifiant Telegram dans la base de données VK Calls sans consentement explicite de l'utilisateur. Cela se produit via une connexion anonyme à calls.okcdn.ru. La correspondance entre l'ID Telegram et l'ID OK devient accessible publiquement via une API non authentifiée.

Le détecteur antitelega basé sur Go scanne les chats, récupère les ID des membres et vérifie s'ils figurent dans la base. L'ensemble du processus ne nécessite que trois requêtes HTTP : connexion anonyme, recherche d'ID OK par ID externe, et analyse de la réponse.

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

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

La clé CHKIPMKGDIHBABABA est extraite de l'APK Telega (appId : 512001570726). Le serveur répond avec une session_key pour les requêtes suivantes.

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

application_key=CHKIPMKGDIHBABABA
session_key=<from step 1>
externalId=123456789

Une réponse avec ok_id confirme l'enregistrement ; une erreur 300 signifie qu'aucun enregistrement n'a été trouvé.

Architecture du scanner : de la commande /scan au rapport

Le bot se lance avec /scan @nomduchat dans les Messages enregistrés. Le pipeline couvre :

  • Énumération : Récupération des membres via ChannelsGetParticipants avec pagination, jitter et filtrage des bots/comptes supprimés.
  • Consultation du cache : Vérification dans le cache SQLite (TTL 6 heures).
  • Vérification par lots : Répartition sur un pool de workers avec limitation de débit et jitter.
  • Rapport : Sortie formatée dans les Messages enregistrés, divisée en chunks si plus de 3800 caractères.

Le binaire fait ~26 Mo, en pur Go avec modernc.org/sqlite, sans CGO. Support ARM inclus.

Google AdInline article slot

Niveau de risque : Préréglages pour éviter les bannissements

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

Le jitter imite le comportement humain pour échapper à la détection. Préréglages de niveau de risque :

  • paranoïaque : 1 worker, 1 req/s, 30 membres/page, ±50% jitter (16 min pour 700 utilisateurs).
  • prudent (par défaut) : 2 workers, 3 req/s, 80/page, ±40% (5 min).
  • normal : 4 workers, 6 req/s, 150/page, ±30% (2,5 min).
  • agressif : Pas de jitter, vitesse max (risque élevé de ban).

Erreurs courantes en développement de userbots

  • Mauvaise DeviceConfig : gotgproto utilise par défaut GoTGProto, Helsinki, ce qui déclenche des bans. Solution : Utiliser DeviceConfig imitant Telegram Desktop.
  • Intervalles fixes : Exactement 350 ms est un signal évident pour l'anti-spam. Le jitter est indispensable.
  • Changements d'API : L'endpoint est passé de getOkIdsByExternalIds au singulier ; la clé peut être révoquée par OK. Rendre application_key configurable.

Limites de la méthode

Un ok_id positif indique une installation passée de Telega, pas une utilisation actuelle. Cela reflète exactement le protocole de Telega — sans exploitation.

Points clés :

Google AdInline article slot
  • Correspondance créée lors du premier anonymLogin de Telega.
  • API publique ; clé extraite de l'APK.
  • Les userbots risquent des bans — utiliser des comptes jetables.
  • Cache et jitter réduisent les chances de détection.
  • ~2000 lignes de Go, licence MIT.

— Editorial Team

Advertisement 728x90

Lire ensuite