Восстанавливаем удалённые сообщения в Telegram

Введение

Телеграм довольно ответственно относится к конфиденциальности пользователей. В частности, можно удалить любое сообщение в переписке, как у себя, так и у собеседника. И сообщение действительно удалится, у обоих и навсегда. Но есть пара «но».

Восстанавливаем удалённые сообщения в Telegram

Если сообщение было написано не слишком давно, то, скорее всего, на устройстве собеседника есть его локальная копия. Так что:

Во-первых. Чтобы сообщение удалилось с устройства собеседника, он должен открыть телеграм с включённым интернетом. Только тогда чаты синхронизируются, и сообщение будет удалено из базы данных на устройстве.

Во-вторых. Даже если сообщение уже удалилось, всё равно есть небольшой шанс на его восстановление. Хотя для этого на устройствах Android понадобится рут, а на устройствах iOS — джейлбрейк.

Шанс на восстановление будет близок к 100%, если:а) вы сами удалили сообщение со своего устройства,б) сразу закрыли телеграм и больше его не открывали,в) выключили интернет.

Потому что каждое вновь полученное сообщение (из любого, в т.ч. замьюченного, чата) может записаться на место удалённого.

Итого.

Если хотите понадёжнее удалить сообщение, — делайте это заранее и позвольте новым сообщениям окончательно затереть удалённые на вашем устройстве. И собеседника тоже вытаскивайте в онлайн.

Если же хотите восстановить сообщение, которое могло быть удалено без вашего ведома, — наоборот, не допускайте синхронизации данных, как можно быстрее выключите интернет. И, если в самом приложении найти сообщение всё равно не удаётся, готовьтесь взламывать собственное устройство (если в вашем случае оно того стоит, конечно).

Практика

Как делать рут или джейлбрейк, я описывать не стану. Но если вам хочется просто потренироваться «на кошках» (как мне), — то вместо реального устройства можно использовать эмулятор из Android Studio. Эмуляторы по умолчанию имеют рут и, соответственно, дают доступ ко всей файловой системе.

В Android Studio создаём и запускаем эмулятор, ставим на него телеграм. Открываем в студии вкладку Device Explorer и идём в /data/data/org.telegram.messenger.web/ (название может немного отличаться в зависимости от вашей версии телеграма). Ищем там обычную базу данных SQLIite с расширением «.db» (в моём случае это был файл «cache4.db» в подпапке «files») и сохраняем её к себе.

Восстанавливаем удалённые сообщения в Telegram

Далее можно пойти разными путями. Если нужно просто просмотреть базу в наглядном виде, то стоит использовать просмотрщик БД, вроде DB Browser for QSLite. Если нужно восстановить сообщения, то можно воспользоваться специальными утилитами, либо простым текстовым редактором. Утилиты для восстановления (я попробовал с десяток) сегодня фактически бесполезны. Возможно, они успешно восстанавливали что-то на базах SQLite старых версий, но не на современных. Так что остаётся лишь вручную разбирать текст.

Чтобы открыть базу данных в виде текста, можно воспользоваться любым редактором. Главное чтобы он мог открыть файл как текст в кодировке UTF-8. Можно сделать это через Notepad++ (после открытия выбрать Кодировки > UTF8). Или через банальный Microsoft Word (сразу при открытии db-файла выбрать Другая > Юникод (UTF-8)). Большая часть текста всё равно останется кракозябрами, но родную речь в нём уже можно будет найти. Если помните какие-то ключевые слова нужного сообщения, воспользуйтесь поиском. Если сообщение было удалено, но ещё не было перезаписано чем-то новым, — вы его найдёте.

Восстанавливаем удалённые сообщения в Telegram

Если интересно просто посмотреть, как телеграм хранит ваши данные, стоит открыть базу в просмотрщике БД. Открыв наш файл в DB Browser, во вкладке «Данные» можно выбрать таблицу «messages_v2» и поискать сообщения в ней. Текст каждого сообщения хранится в столбце «data». В DB Browser его можно открыть выделив ячейку и выбрав на панели «Редактирование ячейки БД» (справа) кнопку «>>», затем «Open in external application». Далее не забываем про кодировку.

Восстанавливаем удалённые сообщения в Telegram

Сообщения от конкретного пользователя можно найти в таблице по полю «uid». Идентификатор пользователя можно выяснить либо через Telegram Desktop, либо на web.telegram.org. В веб-версии uid пользователя будет виден в адресной строке, если просто открыть чат с ним. В версии для ПК нужно зайти в Настройки > Продвинутые настройки > Экспериментальные настройки > Show Peer IDs in Profile, затем открыть профиль нужного пользователя.

11
4 комментария

а если с телефона?

1
Ответить

Шанс на восстановление будет близок к 100%, если:а) вы сами удалили сообщение со своего устройства,б) сразу закрыли телеграм и больше его не открывали,в) выключили интернетНикак

1
Ответить

Раньше можно было скринить временные фотки, если сперва отключить сеть…. А щас вроде бы уже и не скривится нормально

Ответить

Мам, смотри, я очень быстрый!!!

Ответить