Komet Client
Komet Client (также Комета, Гомет, Комет-мод, Клиент для школьников-диссидентов) — очередная попытка сумрачного гения отечественного говнокодинга создать альтернативный клиент для скрепного, православного и навязываемого всем бюджетникам мессенджера MAX (он же Сферум, он же перекрашенный ТамТам, он же зонд анальный обыкновенный).
Проект позиционирует себя как свободный, без слежки и с блекджеком и анимешницами, но на деле представляет собой эпический долгострой на Flutter, написанный методом вайбкодинга (читай: копипастой из ChatGPT) группой энтузиастов, которые большую часть времени проводят не в IDE, а в срачах друг с другом в Telegram-чате. Является живым памятником тому, что бывает, когда школьники пытаются бороться с Системой, используя инструменты, которые они сами до конца не понимают.
Суть[править]
В один прекрасный момент Министерство Правды решило, что Telegram и WhatsApp — это вражеские инструменты, и всех школьников, учителей и врачей нужно загнать в стойло под названием MAX. Естественно, юное поколение, привыкшее к нормальному UX/UI и отсутствию товарища майора в списке контактов, взвыло.
На волне всеобщего батхерта появилась группа энтузиастов TeamKomet, заявившая: Мы напишем свой клиент! Без зондов, с темами и возможностью слать стикеры с Путиным!. Идея была здравая: взять API Макса, вырезать всю телеметрию (которая, по слухам, отправляет даже цвет твоих трусов на сервера РКН) и завернуть в красивую обёртку.
Реальность, как водится, внесла свои коррективы. Выяснилось, что писать клиент с нуля — это не моды на Minecraft клепать. Вместо нормального нативного кода был выбран Dart/Flutter, потому что кроссплатформенность и модно. Вместо нормального реверс-инжиниринга протоколов использовался метод тыка и молитвы.
Техническая драма[править]
Главная драма, разворачивающаяся в недрах разработки — это битва WebSocket против Socket.
Изначально разработчики, не мудрствуя лукаво, решили эмулировать работу веб-версии Макса. Это проще, быстрее и позволяет зайти в аккаунт, притворившись браузером. Всё шло хорошо, пока разработчики оригинального MAX не просекли фишку.
В один прекрасный день сервера Макса начали банить пользователей Кометы пачками. Причина? Гениальная реализация спуфинга (подмены данных). Клиент мог одновременно сообщать серверу, что он запущен на Windows, имеет архитектуру процессора от Android, а User-Agent у него от Safari. Сервер, видя такого кадавра, немедленно выдавал пермач, подозревая, что юзер пытается взломать Пентагон через дневник.ру.
Ребят, у меня бан, че делать? — сообщение в чате поддержки.
Перегрызи интернет-кабель и сожги роутер — ответ разработчика.
После Великой Волны Банов команда торжественно объявила, что Вебсокет — это для лохов, и они переходят на ТруЪ-Сокеты (нативный протокол мобильного приложения). Это обещание стало локальным мемом. Переход на сокеты длится вечно. Каждый день в чате обещают, что вот-вот, уже почти, дед допилит либу, но потом выясняется, что дед ушел в запой, Клоки (один из разрабов) ушел в школу, а исходники откатили, потому что кто-то криво смержил ветки в Гите.
Инфраструктура из говна и палок[править]
Если заглянуть под капот этого пепелаца, то можно увидеть не стройные ряды микросервисов, а запутанный клубок из Python-скриптов, бесплатных сертификатов и молитв на аптайм. Вся мощь Кометы держится на честном слове и паре доменов, зарегистрированных на обеды школьников.
Основной домен — komet-app.ru — служит исключительно витриной для скачивания APK. Хостится это чудо инженерной мысли на REG.RU (потому что дешево и сердито), причем администраторы регулярно забывают продлить SSL-сертификаты, из-за чего сайт периодически встречает пользователей радостным сообщением Ваше соединение не защищено, злоумышленники воруют ваши пароли. Учитывая, что пароли от Макса и так утекают быстрее, чем вода в унитазе, это добавляет особый шарм.
Но настоящий киберпанк начинается в недрах приложения. Так как Комета — это паразит, она не имеет своего полноценного бэкенда для переписки. Вместо этого клиент нагло стучится напрямую в ws-api.oneme.ru (официальный веб-сокет шлюз Макса), притворяясь то Хромом, то Сафари, то кофеваркой.
Однако, у разработчиков есть свой маленький C2-сервер — wl.liarts.ru. Это таинственный узел, который отвечает за ту самую безопасность и проверку обновлений. При запуске приложение лезет туда с вопросом: Дядя, я не забанен?. Сервер в ответ плюет JSON, в котором прописано, является ли юзер элитой (wl: true) или челядью. Там же хранятся конфиги, которые позволяют разработчикам удаленно отключать фичи или менять ссылки на API, когда ВК в очередной раз меняет протоколы. Ходят легенды, что этот домен держится на домашнем сервере одного из админов, который стоит под столом и греет ноги, а оплата хостинга производится исключительно за счет донатов на мармеладки.
Периодически в логах всплывают и другие артефакты, вроде backapi.rustore.ru, что намекает на попытки парсить обновления официального клиента, чтобы вовремя менять маскировку. Вся эта хрупкая конструкция работает до тех пор, пока у админа не отвалится интернет или пока РКН не решит, что liarts.ru звучит слишком подозрительно.
Функционал[править]
- Ожидание: Полная анонимность, шифрование, звонки, видео, удаление сообщений у собеседника без следа, встроенный КВН, блекджек.
- Реальность:
- Вход: Работает через раз. Периодически отваливается, требуя токен, который нужно выковыривать из Developer Tools браузера (процедура, доступная 1 % целевой аудитории). Регистрации нет, потому что макс кастрировал вебсокет.
- Звонки: Их нет. Разработчики утверждают, что звонки для лохов, настоящие пацаны пишут текстом. На самом деле, реализация WebRTC и проприетарных протоколов звонков ВК — это сложно, а ChatGPT такое не пишет.
- Шифрование: Заявлено некое локальное шифрование, когда два юзера Кометы обмениваются ключами и пишут друг другу кракозябры. На практике это выглядит как попытка изобрести PGP из говна и палок.
- Интерфейс: Material Design, который пьяный мастер натягивал на глобус. Шрифты скачут, темы слетают, аватарки не грузятся.
- Сферум: Школьная платформа. Интеграция работает по принципу если повезет. Часто вместо учебного чата открывается пустота или профиль завуча с вопросом Где домашка?.
Разработчики и комьюнити[править]
Это отдельный цирк с конями. В чате разработки царит атмосфера тотальной анархии, сдобренной подростковым максимализмом и техническим снобизмом.
- K!ocky (Клоки): Местный идол и главный генератор лулзов. То ли фембой, то ли школьник, то ли 40-летний мужик. Периодически грозится всё бросить, но продолжает пилить. Любит банить за вопросы когда обнова.
- Floppy: Основатель, который то теряет доступ к донатам, то уходит в запой, то появляется с гениальными идеями вроде давайте сделаем свой мессенджер.
- Ivan2282: Человек-хаос. Может сломать билд одним коммитом, может починить. Любит Linux и ненавидит все остальное.
- RATcraft: Местный юродивый. Постоянно просит открыть исходный код (Open Source), за что регулярно получает муты и баны. Считает, что Комет — это мод, чем вызывает лютую ярость разработчиков, настаивающих, что ЭТО КЛИЕНТ БЛЕАТЬ.
В чате постоянно происходят драмы:
- Периодически кто-то из обиженных бывших разрабов сливает код в паблик. Код оказывается настолько ужасным (нейросетевая лапша), что никто не может его скомпилировать, кроме самих авторов.
- Собирают на хостинг, лакрицу и пиво. Куда уходят деньги — загадка, так как сервер падает каждые два дня.
- Елена — мифический персонаж (возможно, завуч или рандомная женщина из интернета), которую форсят как маскота.
- WhiteMAX — это модификация оригинального приложения (просто вырезали трекеры). Комет — это написанное с нуля. Разработчики Кометы считают юзеров Вайта унтерменшами, а те в ответ просто пользуются рабочим приложением, пока Комета лежит.
Комет — это мод[править]
Самый страшный триггер для разработчиков. Если зайти в чат и написать Классный у вас мод на Макс, можно улететь в бан быстрее, чем скажется слово криптография. Разработчики с пеной у рта доказывают, что это Native Client, Stand-alone Application, что они писали это руками (а не просили Дипсик).
Народ в ответ прозвал проект Gomet (Гомет), намекая на сомнительную ориентацию разработчиков (в чате процветает культ фембойев и гачи-шуток) и общее качество продукта. Также популярен форс Komet — В С Ё, который запускается каждый раз, когда задерживается обнова (то есть всегда).
Безопасность[править]
Главный аргумент установки Кометы — Анонимность.
- Теория: Клиент подменяет Device ID, скрывает модель телефона, не шлёт аналитику. Товарищ майор видит, что вы сидите с Nokia 3310 через браузер Amigo.
- Практика: Из-за кривой реализации спуфинга сервер Макса видит лютую дичь (например, Windows Phone на iOS) и автоматически флагает аккаунт как подозрительный. В итоге вместо анонимности вы получаете бан и поход в МФЦ для восстановления доступа.
Также ходит легенда про Троян в коде. VirusTotal периодически орёт на сборки Кометы, но разработчики мамой клянутся, что это особенности подписи и китайские антивирусы тупые. Учитывая закрытый код (обещания открыть его переносятся с каждого релиза на следующий), параноики обходят проект стороной.
Итог[править]
Идеальная иллюстрация русского опенсорса (который клоузсорс). Амбиции уровня убьем Телеграм, реализация уровня лабораторная работа 9-Б класса. Это глючное, падучее, но душевное произведение искусства, которое держится на честном слове, матах в комментариях к коммитам и вере в то, что когда-нибудь они допилят сокеты.
Пользоваться можно, если вы мазохист, ненавидите официальный клиент до дрожи в руках и готовы каждый день переустанавливать приложение, меняя User-Agent на Микроволновка Samsung, чтобы просто прочитать сообщение от старосты.
Когда обнова? — 32 декабря. Перегрызи кабель.