Telega-Nutzerdetektor für Telegram-Chats: Go-Implementierung
Die Installation des Telega-Clients von VK registriert Ihre Telegram-ID in der VK-Calls-Datenbank ohne explizite Zustimmung des Nutzers. Dies geschieht über einen anonymen Login bei calls.okcdn.ru. Die Zuordnung von Telegram-ID zu OK-ID wird über eine unauthentifizierte API öffentlich zugänglich.
Der auf Go basierende Anti-Telega-Detektor scannt Chats, holt Mitglieder-IDs und prüft, ob sie in der Datenbank sind. Der gesamte Prozess umfasst nur drei HTTP-Anfragen: anonymer Login, OK-ID-Suche nach externer ID und Parsen der Antwort.
POST https://calls.okcdn.ru/api/auth/anonymLogin
application_key=CHKIPMKGDIHBABABA
session_data={"device_id":"antitelega","version":2,...}
Der Schlüssel CHKIPMKGDIHBABABA stammt aus der Telega-APK (appId: 512001570726). Der Server antwortet mit einem session_key für Folgeanfragen.
POST https://calls.okcdn.ru/api/vchat/getOkIdByExternalId
application_key=CHKIPMKGDIHBABABA
session_key=<aus Schritt 1>
externalId=123456789
Eine Antwort mit ok_id bestätigt die Registrierung; ein 300-Fehler bedeutet, kein Eintrag gefunden.
Scanner-Architektur: Vom /scan-Befehl bis zum Bericht
Der Bot startet mit /scan @chatname in den Gespeicherten Nachrichten. Der Ablauf umfasst:
- Auflistung: Mitglieder via
ChannelsGetParticipantsmit Pagination, Jitter und Filterung von Bots/gelöschten Accounts. - Cache-Abfrage: Prüfung im SQLite-Cache (TTL 6 Stunden).
- Batch-Prüfung: Verteilung über Worker-Pool mit Rate-Limiting und Jitter.
- Bericht: Formatierte Ausgabe in Gespeicherten Nachrichten, bei >3800 Zeichen in Chunks aufgeteilt.
Binärdatei ~26 MB, reines Go mit modernc.org/sqlite, kein CGO. ARM-Unterstützung inklusive.
Risikostufe: Voreinstellungen gegen Bans
func jitteredDuration(d time.Duration, jitterPct float64) time.Duration {
factor := 1.0 + jitterPct*(2*rand.Float64()-1)
return time.Duration(float64(d) * factor)
}
Jitter simuliert menschliches Verhalten, um Erkennung zu vermeiden. Risikostufen-Voreinstellungen:
- paranoid: 1 Worker, 1 Anfr./s, 30 Mitglieder/Seite, ±50% Jitter (16 Min. für 700 User).
- careful (Standard): 2 Worker, 3 Anfr./s, 80/Seite, ±40% (5 Min.).
- normal: 4 Worker, 6 Anfr./s, 150/Seite, ±30% (2,5 Min.).
- aggressive: Kein Jitter, Max-Geschwindigkeit (hohes Ban-Risiko).
Häufige Fallstricke bei Userbot-Entwicklung
- Falsche DeviceConfig: gotgproto verwendet standardmäßig
GoTGProto, Helsinki, was Bans auslöst. Lösung:DeviceConfigwie Telegram Desktop verwenden. - Feste Intervalle: Genau 350 ms ist ein klares Anti-Spam-Signal. Jitter ist essenziell.
- API-Änderungen: Endpoint von
getOkIdsByExternalIdszu Singular gewechselt; Schlüssel kann von OK widerrufen werden.application_keykonfigurierbar machen.
Methodenbeschränkungen
Ein positiver ok_id zeigt eine frühere Telega-Installation, nicht aktuellen Gebrauch. Es spiegelt Telegas Protokoll exakt wider – keine Exploits.
Wichtige Punkte:
- Zuordnung entsteht bei erstem Telega-
anonymLogin. - API öffentlich; Schlüssel aus APK.
- Userbots riskieren Bans – Wegwerf-Accounts nutzen.
- Cache und Jitter reduzieren Erkennungsrisiko.
- ~2000 Zeilen Go, MIT-Lizenz.
— Editorial Team
Noch keine Kommentare.