Открыть файл Skype — Переписка Skype. База данных

Skype SQLite

Вы защитили Skype хорошим паролем. Вы регулярно выходите из своего аккаунта. Вы думаете: «Мою переписку Skype с Васей муж точно не прочтет! Пароль-то он не знает!». Если данную статью прочтете раньше Вы, то поймете, что Вы под ударом все эти полгода, что строчите Васе любовные признания. Если муж… Я не виновата . Но для этого ему необходим физический доступ к компьютеру, с которого Вы сидели в Skype. Как было обещано в предыдущей статье про SQLite, я расскажу, как можно прочитать свою переписку в Skype из его базы данных SQLite совершенно открыто. Для этого нам понадобится SQLite Expert. Если его нет на Вашем компьютере, то скачайте его и установите.

Будем считать, что программа у Вас уже установлена и даже открыта. В окне программы на панели инструментов, расположенной в верхней части окна, нажимаем на кнопку с зеленым плюсиком. При наведении мышью на данную кнопку должна появиться подсказка «Open Database», как на рисунке.

sqlite expert открыть базу данных

После нажатия на нее появится стандартное виндовое окно открытия файла. Чтобы найти файл базы данных Skype, в окне в верхнее поле ввода адреса вставьте следующий адрес: %APPDATA%\Skype\SkAcc, где вместо SkAcc напишите свой логин в скайпе, и нажмите Enter.

sqlite expert путь до базы данных

Прошу взять на заметку, что SkAcc — это не мой логин в скайпе =) Он кому-то принадлежит, но я его не знаю =).

В этом же окне откроется список файлов указанной Вами папки. Щелкните мышью по файлу main.db и нажмите кнопку «Открыть».

skype main.db

Как изображено на рисунке выше, в программе SQLite Expert откроется содержимое базы данных Skype. Мы видим список всех ее таблиц. Давайте кратко пробежимся по самым интересным из них.

  • Accounts — в этой таблице есть подробная информация об аккаунте. В колонке skypename — логин в Skype, mobile_phone — мобильный телефон, привязанный к Skype, чтобы отправлять SMS, skypeout_balance — баланс Skype.
  • Calls — с кем Вы общались голосом по скайпу за данным компьютером
  • Chats — список чатов, здесь пишется в общем виде, кто с кем общался. Например, значение в колонке name #vasya/$masha;7330a1337f0667c5 — чат Васи с Вами. Более понятно это записано в колонке activemembers
  • Contacts — полный список контактов, логин в колонке skypename
  • Messages — самая на сегодня важная для нас таблица, в ней содержатся сообщения
  • Transfers — какие файлы мы получали и от кого (колонка partner_handle)

Щелкаем левой кнопкой мыши по таблице Messages. В левой верхней части окна Вы увидите несколько вкладок. Щелкните по вкладке Data.

sqlite expert вкладка Data

Если Вы скайпом пользуетесь активно, то в левой части окна программы откроется весьма значительная табличка. Самые важные для нас колонки — это chatname (имя чата, подробности в таблице Chats), author (кто писал сообщение) и body_xml — текст самого сообщения.

Если Вы хотите увидеть общение между Вами и определенным контактом из Вашего списка, щелкните по вкладке SQL (на картинке выше ее видно), и в открывшееся поле скопируйте следующий запрос:

select author, body_xml from Messages m inner join Chats c on m.[chatname] = c.[name] where c.[participants] = ‘masha vasya’ or c.[participants] = ‘vasya masha’;

, только вместо vasya и masha впишите нужные Вам логины, один из которых, скорее всего, Ваш (у нас в примере masha), а второй — Вашего партнера по нежелательному общению (vasya).

Должно получиться примерно так:

skype main.db сообщения

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

Перед тем как начать экзекуцию, скопируйте файл базы данных в ту же папку, назвав его, например, main-bak.db. На случай, если что-то пойдет не так.

Удаление части сообщений

Если нас интересует выборочное удаление сообщений с данным человеком, то подкорректируем наш запрос, добавив в него одну нужную нам колонку:

select m.id, author, body_xml from Messages m inner join Chats c on m.[chatname] = c.[name] where c.[participants] = ‘masha vasya’ or c.[participants] = ‘vasya masha’;

Нажимаем F5. Это позволит нам увидеть id не нравящихся нам сообщений. Запоминаем их, ниже пишем такой запрос:

delete from Messages where id in (117, 118);

, где 117, 118 — это id не нравящихся нам сообщений. Замените на свои id-шники через запятую. Нажимаем F5, и нет палевных сообщений!

Чистим историю основательно

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

create temp table chatnames(chat_name);

insert into chatnames select distinct c.[name] from Messages m inner join Chats c on m.[chatname] = c.[name] where c.[name] like ‘#vasya /$masha%’ or c.[name] like ‘#masha/$vasya%’;

delete from ChatMembers where chatname in (select chat_name from chatnames); delete from Chats where name in (select chat_name from chatnames); delete from Messages where chatname in (select chat_name from chatnames); delete from Messages where chatname = ‘vasya’; drop table if exists chatnames;

Теперь необходимо удалить также инфу обо всех картинках и видеозвонках из скайпа. Предположим, что из двух нами используемых логинов Вы — masha, стало быть удаляем все о Васе.

delete from CallMembers where identity = ‘vasya’; delete from Calls where current_video_audience = ‘vasya’; delete from Transfers where partner_handle = ‘vasya’;

Не забудьте, что мы удалили лишь упоминание о картинках, но сами картинки остались по адресу %APPDATA%\Skype\My Skype Received Files. Позаботьтесь и об их исчезновении.

Также следует помнить про то, что Skype синхронизирует сообщения на клиенте и на сервере. Для того, чтобы как-то ориентироваться в этом, Skype записывает некоторые данные в таблицу Conversations. С теми контактами, с которыми у меня не было никакого общения, значение поля history_sync_state было (null). Судя по всему, если мы боимся собственной тени, тоже выставим такое значение. Это проще всего сделать, щелкнув два раза по строке с нужным контактом (выбираем по колонке identity) и в открывшемся окошке в поле history_sync_state написав (null) или оставив поле пустым:

history_sync_state

Значение соседнего поля history_horizon было 0, после того, как я удалила все сообщения некоторого своего коллеги по скайпу, чтобы протестировать все, о чем я здесь пишу. Когда я оправила первое с точки зрения моего скайпа сообщение, history_horizon заменилось конкретным значением, поле history_sync_state из (null) стало пустым, позже заполнилось некоторым значением, как у всех контактов, с которыми я общалась и ничего у них не удаляла . Точно тут не могу сказать, видимо, поле history_horizon тоже желательно пометить (null).

И не забудьте удалить файл main-bak.db!

Что Вы говорите? Сложно?!

skype main.db

Проще всего и правильнее с этим Васей вообще не общаться или общаться на тему погоды, так никакой SQLite Expert вам не понадобится.

Update

Поигралась с данными таблицы Conversations, обнуляла различные таймштампы, среди них таймштамп последней активности (last_activity_timestamp), таймштамп ящика входящих сообщений (inbox_timestamp), уже упоминавшиеся history_horizon и history_sync_state и еще некоторые. По крайней мере у меня, даже когда я обнулила все данные у конкретного партнера по скайпу, перезатягивания сообщений не произошло после перезагрузки скайпа. Тем не менее, когда я копировала различные версии main.db, с сервера подтягивались недостающие для данной версии сообщения. Возможно, скайп ориентируется еще на что-то.

Вас ждут следующие статьи:

Поделиться:
Нет комментариев

Добавить комментарий

Ваш e-mail не будет опубликован. Все поля обязательны для заполнения.

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.