Читаем переписку из базы данных Skype. Напрямую

17 комментариев

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 вам не страшен не понадобится.  Еще вариант — вести переписку не в Skype  .

Update

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


17 комментариев “Читаем переписку из базы данных Skype. Напрямую”

  1. Да,удалось увидеть переписку,но не которые сообщения не читабельные
    приме\р

    Обьяснений не должно быть
    480

    Друг — как я подписан
    479

    Ответить
  2. partlist type=ended» alt=
    part identity=логин с кем общаюсь
    nameИмя контакта в скайпе у меня name
    duration480duration
    part
    part identity=я
    nameДругname
    duration479duration
    part
    partlist

    Ответить
    • NoService
      NoService

      Добрый вечер, Skif! Я Вам отпишусь по почте.

      Ответить
  3. Игорь

    Думаю, выборку можно упростить:

    select
    author, body_xml
    from Messages
    where
    chatname like ‘%vasya%’
    order by timestamp;

    Ответить
    • NoService
      NoService

      Да, Игорь, спасибо, Вы совершенно правы. Хотела сама переписать запрос, но все лень http://noservice.ru/wp-content/plugins/wp-monalisa/icons/ab.gif

      Ответить
  4. Александр

    Чтение сообщений не работает
    выводится ошибка near ‘vasya’: syntax error

    Ответить
    • NoService
      NoService

      Александр, добрый день! Приведите, пожалуйста, полный текст Вашего запроса. Или Вы используете именно тот, который приведен в статье?

      Ответить
      • Александр

        Добрый! Да, так как показано в статье.

        Ответить
        • NoService
          NoService

          Доброго времени суток! Я сразу это предположила, но решила дома проверить на всякий случай, чтобы не вводить в заблуждение. Дело в том, что WordPress квотирует кавычки и обычную одинарную кавычку, которая должна быть в запросе, превращает в запятую. Замените в запросе эти запятые на нормальные одинарные кавычки, и должно все заработать.

          Ответить
  5. Маргарита

    Добрый день! После скачивания SQLite Expert антивирус (Семантек) ругается — файл не проверен. Возникают сомнения в безопасности((((. Что посоветуете?

    Ответить
    • NoService
      NoService

      Добрый день, Маргарита! Если Вы скачиваете программу SQLite Expert с официального сайта, то не бойтесь, можно проигнорировать данное сообщение. Данная программа к вирусам не имеет отношения. Ну только если офф сайт не взломали http://noservice.ru/wp-content/plugins/wp-monalisa/icons/ag.gif

      Ответить
  6. Вероника

    Добрый день. Скажите, а как-то можно узнать дату, когда было написано сообщение? Открыть их получилось, но там не указывается число когда была переписка, просто все сообщения подряд.
    Спасибо

    Ответить
  7. Простите за наивный вопрос от чайника. Таким способом можно прочитать переписку моего Васи с Машей, если компьютер Васи для меня недоступен?

    Ответить
    • NoService
      NoService

      Добрый день, Nat!
      Описанным способом сложно 🙂 У Вас компы в одной сети находятся?

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

    Ответить
  9. Марина

    Подскажите, пожалуйста, а если база данных скайпа вдруг начала требовать пароль, что в таком случае делать?

    Ответить
    • NoService
      NoService

      Марина, здравствуйте! Какая версия Skype используется? Пришлите мне на почту, пожалуйста, скриншот, на котором виден запрос на пароль от БД. попробуем разобраться. Вообще говоря, без каких-либо дополнительных манипуляций с файлом БД Skype такой запрос появляться не должен.

      Ответить

Оставьте комментарий

XHTML: Вы можете использовать следующие теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url=""> <img src="" alt="" class="" width="" height="">

http://noservice.ru/wp-content/plugins/wp-monalisa/icons/ab.gif 
http://noservice.ru/wp-content/plugins/wp-monalisa/icons/ac.gif 
http://noservice.ru/wp-content/plugins/wp-monalisa/icons/ag.gif 
http://noservice.ru/wp-content/plugins/wp-monalisa/icons/ah.gif 
http://noservice.ru/wp-content/plugins/wp-monalisa/icons/ai.gif 
http://noservice.ru/wp-content/plugins/wp-monalisa/icons/ak.gif 
http://noservice.ru/wp-content/plugins/wp-monalisa/icons/am.gif 
http://noservice.ru/wp-content/plugins/wp-monalisa/icons/an.gif 
http://noservice.ru/wp-content/plugins/wp-monalisa/icons/ao.gif 
http://noservice.ru/wp-content/plugins/wp-monalisa/icons/aq.gif 
http://noservice.ru/wp-content/plugins/wp-monalisa/icons/ar.gif 
http://noservice.ru/wp-content/plugins/wp-monalisa/icons/at.gif 
http://noservice.ru/wp-content/plugins/wp-monalisa/icons/av.gif 
http://noservice.ru/wp-content/plugins/wp-monalisa/icons/aw.gif 
http://noservice.ru/wp-content/plugins/wp-monalisa/icons/ay.gif 
http://noservice.ru/wp-content/plugins/wp-monalisa/icons/az.gif 
http://noservice.ru/wp-content/plugins/wp-monalisa/icons/bb.gif 
http://noservice.ru/wp-content/plugins/wp-monalisa/icons/bc.gif 
http://noservice.ru/wp-content/plugins/wp-monalisa/icons/bd.gif 
http://noservice.ru/wp-content/plugins/wp-monalisa/icons/be.gif 
больше...