Сталкер версия Telegram Android с усиленной обходами блокировок Телеграма (ТСПУ) и фикс MtProto с MtProxy https://t.me/zastogram
  • C++ 95.6%
  • Python 2.3%
  • Objective-C++ 0.7%
  • CMake 0.6%
  • CSS 0.2%
  • Other 0.4%
Find a file
2026-07-24 19:12:00 +03:00
.claude Merge remote-tracking branch 'upstream/dev' into dev 2026-07-14 18:46:38 +03:00
.codex/skills/tdesktop-local-release Add fast local Release delivery workflow 2026-07-22 20:13:34 +03:00
.github Add versioned ZIPs to Windows release assets 2026-07-15 15:57:53 +03:00
cmake@2b73962997 Update cmake_helpers. 2026-07-07 23:37:50 +04:00
docs Record MTProxy split plan completion 2026-07-02 19:51:17 +03:00
lib/xdg Add faq and vcs-browser URLs to the AppStream metadata 2026-02-11 09:03:53 +04:00
snap Re-use LZ4 from snap runtime 2026-07-14 13:07:47 +04:00
Telegram Remove admission from live MTProxy sessions 2026-07-24 19:08:38 +03:00
.cursorignore Add some Cursor rules / ignore paths. 2025-05-01 11:13:22 +04:00
.devcontainer.json Ensure clangd cache is out of build directory 2025-05-13 10:41:42 +04:00
.gitattributes Update lottie icons in voice chats. 2021-04-12 10:48:16 +04:00
.gitignore Ignore local MTProxy architecture skill 2026-07-24 19:12:00 +03:00
.gitmodules Fork lib_ui and lib_lottie for full frame rate emoji animations 2026-07-11 19:25:37 +03:00
AGENTS.md Add fast local Release delivery workflow 2026-07-22 20:13:34 +03:00
changelog.txt Version 7.0.1. 2026-07-14 15:41:00 +04:00
CMakeLists.txt Scope legacy CMake policy for helpers 2026-07-16 16:10:54 +03:00
LEGAL Update copyright year to 2026. (#30159) 2026-01-05 12:21:48 +04:00
LICENSE Add single LEGAL file with license and copyright. 2018-01-03 13:04:34 +03:00
README.md Refactor proxy connection and endpoint health management 2026-07-04 18:48:54 +03:00
REVIEW.md [ai] Forbid Q_OS_LINUX checks in the agent guidelines 2026-07-10 14:04:30 +04:00

ZaStoGram Desktop

image

ZaStoGram — форк Telegram Desktop, заточенный под работу в сетях с DPIцензурой и под приватность. Цель проекта: чтобы клиент уверенно подключался там, где обычный Telegram режут, маскировал трафик под обычный браузерный HTTPS и не терял переписку (удалённые сообщения, истории, правки).

Это неофициальная сборка. Она основана на исходниках официального клиента и сохраняет весь его функционал, добавляя сверху сетевой стелс, WSSтранспорт и набор приватных функций.

⚠️ Используйте на свой риск. Проект не связан с Telegram FZLLC. Базовый код — под GPLv3 с OpenSSLисключением (см. раздел «Лицензия»).


Чем отличается от обычного Telegram Desktop

Область Что добавлено
Обход DPI FakeTLSстелс: профили ClientHello, правдоподобные повторные TLSподключения через поддельные билеты возобновления, маскировка старта, фрагментация ClientHello, варьирование размера TLSзаписей, пейсинг трафика, разнос попыток подключения
Надёжность Классифицированный loopbackoff переподключения (cap 8 c), деприоритизация «залипших» endpoint'ов (cooldown)
Транспорт Встроенный WSS (MTProto поверх WebSocket к webрелею Telegram)
Прокси Обязательный прокси (forceproxy) + дефолтный локальный SOCKS5 127.0.0.1:1353
Приватность Сохранение удалённых сообщений и историй (stories), скачивание любых (даже защищённых) историй, история правок сообщений
Производительность Ограничение числа потоков софт‑декодера видео, троттлинг под нагрузкой
UX Список прокси больше не устраивает «шквал» проверок при открытии
Бренд Имя и иконка ZaStoGram

🛡️ Обход DPI — стелс MTProxy

Когда задан MTProxy (FakeTLS), клиент маскирует подключение под настоящий браузерный TLSхэндшейк. Всё настраивается тумблерами в окне прокси (Настройки → Продвинутые → Тип соединения → список прокси).

  • Профиль ClientHello — ClientHello воспроизводит форму реального браузера/приложения: Auto (Chrome), Autorotate, Chrome Modern, Android Chrome, Firefox, Firefox Android, Yandex, Android OkHttp.
  • Маскировка старта (startupcover) — первые записи разбиваются и подаются так, чтобы начало сессии не выделялось характерным паттерном.
  • Фрагментация ClientHello — ClientHello дробится при отправке, чтобы DPI было сложнее собрать и распознать его целиком.
  • Варьирование размера TLSзаписей — размеры записей не фиксированы, что ломает сигнатуры по длине.
  • Пейсинг трафика — межзаписевые задержки на старте сглаживают «взрывной» профиль (без удушения уже установленного потока).
  • Разнос попыток подключения — попытки к нескольким endpoint'ам и одиночный FakeTLS ClientHello стартуют со сдвигом, а не пачкой.
  • Правдоподобные повторные TLSподключения — первый ClientHello к узлу и имени назначения идёт без PSK, как обычный «холодный» заход браузера. После успешного fakeTLSхэндшейка клиент держит небольшой локальный пул поддельных билетов возобновления с ограниченным временем жизни и при повторных подключениях отправляет один из них с нормальным возрастом. Это убирает подозрительный паттерн «каждый параллельный сокет приносит новый случайный PSK» и делает повторные подключения похожими на обычный браузерный HTTPS. Эти билеты нужны только для маскировки, не используются для шифрования MTProto и не сохраняются на диск.

Надёжность подключения

  • Loopbackoff — классифицированные таймауты переповтора, привязанные к прокси, с верхней границей, чтобы не зацикливаться на мёртвом узле и не спамить коннектами.
  • Endpoint cooldown — endpoint, который только что отвалился, временно понижается в приоритете (а не выбрасывается), чтобы клиент пробовал живые маршруты, не теряя резервные.

🌐 WSSтранспорт

Встроенный MTProtooverWebSocket (чистая реализация на QSslSocket + RFC 6455): настоящий TLS → HTTPupgrade (GET /apiws) → бинарные WSфреймы, внутри которых идёт обфусцированный MTProtoпоток. Подключается к официальным webрелеям Telegram (kws2/kws4.web.telegram.org) для DC2/DC4.

Включается тумблером «Route via WSS (web, DC2/DC4 only)». Полезен там, где прямой TCP к DC блокируется, но вебTelegram работает. Может ходить как напрямую, так и через заданный SOCKSпрокси.

Альтернатива встроенному WSS — внешний локальный прокси (telegram_proxy из zapretнабора) на 127.0.0.1:1353, к которому клиент подключается по SOCKS5 (см. ниже).


🔌 Прокси: обязательный + дефолтный

  • Forceproxy — без выбранного прокси клиент не выходит в сеть; «щит» соединения виден всегда. Исключение — включённый режим WSS (он сам является методом обхода). Это страховка от случайного прямого подключения в опасной сети.
  • Дефолтный SOCKS5 127.0.0.1:1353 — добавляется в список один раз (если такого ещё нет; существующие прокси не перетираются). Это endpoint внешнего сервиса telegram_proxy: схема tdesktop → SOCKS5 1353 → telegram_proxy → WSS/FakeTLS → Telegram.

🔒 Приватность

Клиент‑сайд функции, которые сохраняют данные локально (по умолчанию включены):

  • Сохранение удалённых сообщений — когда сервер присылает «удалить», сообщение не уничтожается локально, а остаётся (помечается как удалённое отправителем). Переписка не пропадает.
  • Сохранение историй (stories) — локальный снэпшот историй с восстановлением при старте; истории не исчезают по истечении срока.
  • Скачивание любых историй — медиа истории сохраняется на диск даже для защищённых от пересылки (noforwards) и чужих историй, без Premium (снят клиентский гейт canDownload).
  • История правок — при редактировании сообщения предыдущие версии (текст + время) сохраняются, чтобы видеть, что было изменено.

Это локальные функции: они не влияют на сервер и не нарушают шифрование. Хранение части данных может быть только в памяти до перезапуска (персистентность отдельных частей — в развитии).


Производительность

  • Decoder policy — централизованное ограничение числа потоков софтверного видео‑декодера и троттлинг запуска декодеров под нагрузкой, чтобы тяжёлые медиа не «съедали» CPU и не плодили лишние декодеры.

🧰 Спокойная архитектура прокси

  • Список прокси не запускает проверку всех строк при открытии окна — это убирает «шквал» одновременных тестовых коннектов. Строки по умолчанию в состоянии Unknown; проверка запускается вручную по пункту Check Status.

🗺️ Roadmap (запланировано, ещё не реализовано)

  • Глобальный лимитер MTProxyhandshakes — в текущем Desktop каждый аккаунт держит свой MTP::Instance со своей DCсессией (разные auth keys, msg_id/seqno, salt), поэтому «один общий поток» для всех аккаунтов сделать нельзя без серверной поддержки. Вместо этого планируется безопасный лимитер: общий cap на число одновременных MTProxyhandshakes между аккаунтами + jitter/backoff + очередь; снижение числа активных проверок ротации (10 → 12); кэширование статусов прокси; единый gate для всех StartProxyCheck и рабочих handshakes. Это сгладит всплеск подключений, не душа уже установленный трафик.
  • UI приватности — видимая метка «удалено» на сохранённых сообщениях и просмотрщик истории правок (контекст‑меню).

🏗️ Сборка и CI

  • Сборка идёт через GitHub Actions (.github/workflows/win.yml): только Windows, конфигурации x64 и x64_x86 (Qt5). После каждого пуша автоматически публикуется пре‑релиз dev-N с готовыми .exe.
  • Зависимости (Qt, Libraries, ThirdParty) кэшируются между запусками.
  • Инструкции по ручной сборке официального клиента (применимы и здесь) — в docs/.

Базовый клиент собирается стандартным тулчейном Telegram Desktop. Артефакты пре‑релиза переименовываются в ZaStoGram-<arch>.exe.


📥 Установка

Скачайте ZaStoGram-x64.exe (или x64_x86 для 32бит) из раздела Releases (пре‑релиз dev-N). Это сборка из исходников этого репозитория. Для работы дефолтного прокси 127.0.0.1:1353 нужен запущенный внешний сервис telegram_proxy, либо включите встроенный WSSтранспорт.


📄 Лицензия

Проект основан на Telegram Desktop и распространяется под GPLv3 с OpenSSLисключением — тот же текст лицензии, что и у апстрима, см. LICENSE и LEGAL.

ZaStoGram — независимый форк; товарные знаки Telegram принадлежат их владельцам.