Недавно я обратился к ИИ-помощнику Gemini (в среде Antigravity) с вопросами о безопасности популярного модифицированного клиента Telegram — AyuGram. Меня интересовало, общается ли AyuGram напрямую с серверами Telegram и действительно ли его исходный код полностью открыт для самостоятельной сборки.
Ниже представлен подробный анализ репозитория и принципов работы AyuGram, который подготовил ИИ-помощник Gemini в ходе нашего диалога.
Раунд 1. Куда AyuGram отправляет данные?
Анатолий: github.com/AyuGram шлёт ли аюграм информцию через свои сервера или общается напрямую с сервером телеграм?
Gemini (ИИ-помощник): AyuGram общается с серверами Telegram напрямую, используя официальный протокол MTProto. Ваши личные данные, сообщения, медиафайлы, пароли двухэтапной аутентификации и коды авторизации не передаются через сторонние серверы разработчиков AyuGram.
Вот как устроена сетевая работа и безопасность AyuGram:
- Прямое подключение к Telegram
Вся основная функциональность мессенджера (отправка сообщений, получение обновлений чатов, звонки и т.д.) происходит напрямую между вашим устройством и официальными серверами Telegram (или через настроенные вами лично прокси/VPN). - Как работают «невидимка» и «сохранение удаленных сообщений»?
- Режим невидимки (Ghost Mode): Реализован полностью локально. Клиент просто перехватывает и не отправляет на серверы Telegram определенные запросы (например, запрос
messages.readHistoryпри чтении сообщений илиmessages.setTypingпри наборе текста). - Сохранение удаленных и измененных сообщений: Когда вам присылают сообщение, AyuGram кэширует его в локальную базу данных на вашем устройстве. Если отправитель удаляет или изменяет сообщение, сервер Telegram присылает вашему клиенту команду «удалить/изменить сообщение». AyuGram игнорирует эту команду для отображения в интерфейсе и считывает исходный текст из своей локальной базы данных. Никакие удаленные сообщения не загружаются на сторонние серверы.
- Режим невидимки (Ghost Mode): Реализован полностью локально. Клиент просто перехватывает и не отправляет на серверы Telegram определенные запросы (например, запрос
- Куда AyuGram может делать дополнительные запросы?
Как и любой форк, AyuGram выполняет несколько служебных сетевых запросов вне сети Telegram:- Проверка обновлений: Клиент обращается к GitHub API или серверам AyuGram, чтобы проверить наличие более новой версии приложения.
- Спонсорство и AyuPremium: Если вы являетесь спонсором проекта или используете функции AyuPremium, клиент делает запрос к API AyuGram для проверки вашего Telegram ID и выдачи соответствующего статуса (например, значка в профиле).
- Авто-прокси: Если вы используете встроенную функцию автоматического поиска прокси, приложение может загружать актуальные списки прокси с GitHub или ресурсов AyuGram.
- Crash-репорты (аналитика падений): В некоторых сборках (особенно если они устанавливаются из магазинов приложений) могут быть интегрированы стандартные системы сбора логов ошибок (например, Firebase Crashlytics), которые отправляют технические отчеты о сбоях в Google/разработчикам. Сборки с GitHub обычно содержат минимум телеметрии или не содержат её вовсе.
- Открытый исходный код
Исходный код проекта полностью открыт и опубликован в репозитории AyuGram на GitHub. Это позволяет любому независимому разработчику или специалисту по безопасности проверить код приложения на наличие скрытых бэкдоров, уязвимостей или несанкционированной отправки данных.
Раунд 2. Полная открытость исходников и нюансы сборки
Анатолий: вот прямо полностью опубликован на гитхаб, ничего не утаили, можно самому собрать?
Gemini (ИИ-помощник): Да, исходный код AyuGram полностью опубликован на GitHub, исходники открыты, и его можно собрать самостоятельно. Никакого скрытого (обфусцированного) кода в самом клиенте нет.
Однако при самостоятельной сборке и использовании ключей API есть важные технические нюансы:
- Маскировка под официальные клиенты (API Spoofing)
В готовых сборках AyuGram «из коробки» зашиты официальные ключи API (api_idиapi_hash) официальных приложений Telegram (например, Telegram Android, Telegram Desktop, iOS, macOS).- Зачем это сделано: Серверы Telegram видят ваше подключение как стандартное официальное приложение. Это избавляет вас от необходимости регистрировать свои ключи на
my.telegram.orgи минимизирует риски блокировки (бана) аккаунта антиспам-системой Telegram, которая часто подозрительно относится к новым сторонним API-ключам. - В настройках AyuGram встроен удобный селектор, позволяющий «на лету» переключать конфигурации маскировки под разные платформы.
- Зачем это сделано: Серверы Telegram видят ваше подключение как стандартное официальное приложение. Это избавляет вас от необходимости регистрировать свои ключи на
- Нюансы самостоятельной сборки
Если вы решите скомпилировать AyuGram самостоятельно из исходного кода на GitHub, вам нужно учесть:- В публичном репозитории на GitHub вместо официальных API-ключей могут находиться заглушки (так как прямая публикация официальных ключей нарушает правила Telegram). Чтобы собрать рабочее приложение, вам придётся либо зарегистрировать собственные ключи на
my.telegram.org, либо самостоятельно найти и прописать в исходный код общеизвестные официальные ключи Telegram, извлеченные реверс-инжинирингом.
- В публичном репозитории на GitHub вместо официальных API-ключей могут находиться заглушки (так как прямая публикация официальных ключей нарушает правила Telegram). Чтобы собрать рабочее приложение, вам придётся либо зарегистрировать собственные ключи на
- Сложность сборки
Собрать проект такого масштаба — задача не в один клик:- AyuGram Desktop (C++, Qt, CMake/GYP) требует настройки сложного окружения компиляции (компилятор MSVC/GCC/Clang, библиотеки Qt, OpenSSL и другие зависимости).
- AyuGram Android собирается через Android Studio и Gradle, требуя настройки Android SDK и NDK.
- Закрытая серверная часть (Бэкенд)
Код клиента полностью открыт. Но код сервера, который обрабатывает премиум-функции AyuGram (проверка подписки AyuPremium, выдача значков спонсоров), является закрытым (проприетарным) и принадлежит разработчикам.- В коде клиента вы можете четко видеть все обращения к этому серверу (что именно отправляется и какой ответ ожидается).
- При самостоятельной сборке вы можете либо оставить эти запросы как есть (они будут работать, если ваш ID внесен в базу спонсоров на сервере разработчиков), либо просто вырезать эту логику из исходного кода или перенаправить на свой локальный сервер-заглушку.
Ссылки на исходники:
- Исходный код версии для ПК (Desktop): AyuGram Desktop на GitHub
- Исходный код версии для Android (на базе exteraGram/Telegram): AyuGram4A на GitHub
- Исходный код альтернативной версии для Android (на базе Telegram X): AyuGramX на GitHub