Zpět na domů

Detektor Telega v chatech na Go: API VK Calls

Go-utilita antitelega skenuje Telegram-chaty na uživatele Telega prostřednictvím veřejného API VK Calls. Popsána architektura, ochrana před bany s jitter a risk_level, typické chyby s gotgproto.

Go-bot pro hledání Telega v Telegram-chatech
Advertisement 728x90

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.

Google AdInline article slot
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 ChannelsGetParticipants s 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.

Google AdInline article slot

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í DeviceConfig s Telegram Desktop.
  • Pevné intervaly: Přesně 350 ms — metronom pro antispam. Jitter je nutný.
  • Změny API: Endpoint přejmenován z getOkIdsByExternalIds na 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é:

Google AdInline article slot
  • Mapování vzniká při prvním anonymLogin Telega.
  • 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

Advertisement 728x90

Číst dál