Detektor uživatelů Telega v Telegram chatech: Implementace v Go
Instalace klienta Telega od VKontakte vede k registraci Telegram ID do databáze VK Calls bez explicitního souhlasu uživatele. To probíhá prostřednictvím anonymního přihlášení na calls.okcdn.ru. Mapování Telegram ID na OK ID je veřejně dostupné přes API, které nevyžaduje autorizaci.
Detektor antitelega napsaný v Go prohledává chaty, extrahuje ID účastníků a kontroluje jejich přítomnost v databázi. Celý proces zvládne třemi HTTP požadavky: anonymní přihlášení, dotaz na OK ID podle externalId a parsování odpovědi.
POST https://calls.okcdn.ru/api/auth/anonymLogin
application_key=CHKIPMKGDIHBABABA
session_data={"device_id":"antitelega","version":2,...}
Klíč CHKIPMKGDIHBABABA je extrahován z APK Telega (appId: 512001570726). Server vrátí session_key pro následné požadavky.
POST https://calls.okcdn.ru/api/vchat/getOkIdByExternalId
application_key=CHKIPMKGDIHBABABA
session_key=<z kroku 1>
externalId=123456789
Odpověď s ok_id potvrzuje registraci, chyba 300 znamená absence záznamu.
Architektura skeneru: Od příkazu /scan po zprávu
Bot se spouští příkazem /scan @chatname v Uložených zprávách. Pipeline zahrnuje:
- Výčet: Extrakce účastníků přes
ChannelsGetParticipantss paginací, jitterem a filtrováním botů/smažených účtů. - Kontrola cache: Prohledání SQLite cache (TTL 6 hodin).
- Dávková kontrola: Rozdělení do worker poolu s omezením rychlosti a jitterem.
- Zpráva: Formátovaný výstup do Uložených zpráv, rozdělení na bloky při překročení 3800 znaků.
Binárka ~26 MB, čistý Go s modernc.org/sqlite, bez CGO. Podpora ARM.
Risk_level: Předvolby pro snížení rizika banu
func jitteredDuration(d time.Duration, jitterPct float64) time.Duration {
factor := 1.0 + jitterPct*(2*rand.Float64()-1)
return time.Duration(float64(d) * factor)
}
Jitter maskuje vzorce jako lidské chování. Předvolby risk_level:
- paranoidní: 1 worker, 1 požad./s, 30 uživatelů/strana, jitter ±50% (16 min na 700 lidí).
- opatrný (výchozí): 2 workery, 3 požad./s, 80/strana, ±40% (5 min).
- normální: 4 workery, 6 požad./s, 150/strana, ±30% (2,5 min).
- agresivní: Bez jitteru, maximální rychlost (riziko banu).
Typické chyby při vývoji userbotu
- Nesprávná DeviceConfig: Knihovna gotgproto posílá výchozí
GoTGProto, Helsinki, což vede k banu. Řešení — předáníDeviceConfigsTelegram Desktop. - Pevné intervaly: Přesně 350 ms — metronom pro antispam. Jitter je nutný.
- Změny API: Endpoint přejmenován z
getOkIdsByExternalIdsna singulární, klíč může OK odvolat. Konfigurovatelnýapplication_key.
Omezení metody
Pozitivní ok_id ukazuje na minulou instalaci Telega, ne na současnou aktivitu. Metoda používá identický protokol Telega, bez exploitů.
Důležité:
- Mapování vzniká při prvním
anonymLoginTelega. - API je veřejné, klíč z APK.
- Userbot riskuje ban — používejte jednorázové účty.
- Cache a jitter snižují detekci.
- ~2000 řádků Go, MIT licence.
— Editorial Team
Zatím žádné komentáře.