Как стать автором
Обновить

Новый баг в Telegram Desktop позволяет прочитать последнее сообщение

Время на прочтение2 мин
Количество просмотров35K
Недавно я обнаружил в Telegram очень интересный баг. Он позволяет читать удалённые сообщения. И как сторонник и фанат культовых продуктов — тут же отправил сообщение о баге саппорту Telegram. Со спокойной совестью демонстрировал коллегам на работе, найденный баг. «Хочешь восстановлю твоё последнее сообщение в Telegram?» — говорил я и принимался за дело, наблюдая удивленные лица коллег.

telegram bug

Впрочем не будем медлить и перейдем к делу


Версия Telegram Desktop 1.6.3(последняя возможная на сегодня)

Шаги для воспроизведения

  1. Отправляем «секретное» сообщение Бобу
  2. Чистим чат сообщений с Бобом, кнопочка «Clear history»
  3. Отправляем новое любое сообщение Бобу
  4. Удаляем сообщение из контекстного меню «Delete message» (ставим галочку — удалить у Боба тоже)

Ожидания

Все сообщения удалены и чат полностью пуст.

Реальность

Появилось наше «секретное сообщение», которое было удалено.

Дальнейший ход моих мыслей


Первым делом, хотелось понять — это сторона сервера или сторона клиента. Поэтому аналогичным образом я попытался воспроизвести багу на клиенте Telegram под Android. К сожалению, на сотовом бага не воспроизвелась и оптимизм уже поубавился. Стало понятно, что перед нами скорее всего косметический фикс: напутали с индексами и из локального кэша достается чуть больше записей.

Так как Telegram Desktop является open source и лежит на github. Я нашёл свою версию Telegram, открыл код и попытался понять что к чему. Код оказался достаточно тривиальным и понятным. Всё начинается с подвешивания обработчика для команды. Он всего лишь показывает диалоговое окошечко с параметрами для удаления и дальше идёт очистка чата. Лично я визуально глазом ни за что не зацепился и вроде всё работает правильно. Нужно развернуть environment, отладить и сразу станет понятно, что к чему.

На текущей момент и на момент публикации данной статьи — данная бага не исправлена, поэтому вы можете удивлять ею коллег и друзей. Можете показать своей девушке, чтобы она не делала глупостей.

Если вам понравится данная статья и будет много комментариев, я обязательно напишу следующую статью: «Как я исправил баг в Telegram». А так же расскажу подробно, как развернуть environment для desktop версии Telegram. Спасибо за внимание!

Update


Как изменилась жизнь после публикации на Хабре


Как обычно встаю и смотрю новости в google. Вижу на первых страницах свою ФИО и понимаю, что что-то не так. Народ воспроизводит тоже эту багу и форсит данный message(полный текст статьи). Это очень приятно, спасибо!

image

Смотрим Android app


В личку многие попросили посмотреть Android app. Не могу отказать коллегам и устанавливаем Android приложения Telegram. Особо я не вникал, но и тут достаточно ошибок. Например, вот.

image

Шаги воспроизведения
1) Очищаю историю с «Victor»
2) «Victor» пишет сообщение

Ожидания
Приходит notify через сервер google и сообщение отображается в ListView.

Реальность
Notify приходит, но ListView не отображает изменения. Стоит пометка «История очищена».

Как была найдена текущая бага


Очень много коллег интересовало, как я нашёл данную багу. Потому что у всех Telegram «работает как часы». Мой бывший тим-лидер(Антон Рыжаков), когда-то отвечал на этот вопрос так: «Тыкал тыкал и беду натыкал». Это очень точно характеризует всё происходящее. Друзья, спасибо Вам за все отклики в личку — их очень приятно было читать. Надеюсь Вам было интересно. Хорошего рабочего дня!
Теги:
Хабы:
Всего голосов 68: ↑41 и ↓27+14
Комментарии17

Публикации

Истории

Ближайшие события

Антиконференция X5 Future Night
Дата30 мая
Время11:00 – 23:00
Место
Онлайн
OTUS CONF: GameDev
Дата30 мая
Время19:00 – 20:30
Место
Онлайн
Конференция «IT IS CONF 2024»
Дата20 июня
Время09:00 – 19:00
Место
Екатеринбург
Summer Merge
Дата28 – 30 июня
Время11:00
Место
Ульяновская область