Mail.ru History Reader 2.0

По просьбам трудящихся я решил сесть и дописать свою программку.

Mail Agent с версии 5,4 для хранения истории и служебной информации о контактах использует файл mra.dbs, который представляет из себя файл встроенной реляционный базы данных (я так думаю). К сожалению, определить формат базы мне не удалось, поэтому пришлось ковыряться в самом файле.


Декомпилируем exe

Запустив агент в отладчике OllyDbg я посмотрел, какие в нем имеются строки. Среди них я нашел много интересного, например

--parametres tables --
table name=
size=
type =
param name=
item

--history--
Mraparams-
mrahistory_
m_sItem=
and m_sName=
m_sKeyName
and m_sItemName
and m_nCount > 0
m_bDirection=
m_sKey=
m_sSimple


start from last follow by prevous
---------------------
m_sItemName
m_sKeyName
m_nCount
m_sProtocol
m_sItem
m_sSimple
m_Message
m_bUnread
m_bDirection
m_sFrom
m_dwType
m_Time
m_oid
m_sName
Как видно это поля в таблицах и запросы к ним, но мне это никак не помогло...

Анализ файла mra.dbs

Отрыв файл в HEX редакторе сразу видно, что он в UNICODE кодировке, переключившись в эту кодировку, мы сразу замечаем много интересного.

mrahistory_gar.i.k@mail.ru_13gr6kk0j1@inbox.ru n нулей
То есть, найдя все строки mrahistory_(email)_(email).ru мы можем вывести список email ов истории которых хранятся в базе.

Проанализировав файлик дальше можно выявить закономерность:
ник в юникоде с завершающим нулем
сообщение в юникоде с завершающим нулем
RTF в юникоде без нуля
и FF FF FF

Основываясь на этих данных можно написать программу, которая будет искать
00 00 {\rtf1\
далее идем вверх до 00 00 там будет сообщение
далее идем до вверх 00 00 там будет ник

Mail.ru History Reader 2.0 beta

Программа представляет из себя консольное приложение позволяющее вытащить из файла mra.dbs список email ов с которыми пользователь вел переписку и все сообщения к сожелению в не отформатированном формате, но читаемом виде.
Её можно скачать здесь, а исходных код посмотреть тут

Комментарии

  1. Будет ли продолжение это программули?

    ОтветитьУдалить
  2. Возможно, но пока этого я не планирую.

    ОтветитьУдалить
  3. К сожалению, сообщения вытаскивает не все. Как оказалось (проверил прогой и ручками в редакторе), не у всех присутствует {\rtf1\, вот теперь сложнее...придется думать уже.

    ОтветитьУдалить
  4. Вы знаете, Гарик, что-то ничего не получается у меня с Вашей прогой:-( после ввода команды запрашивает "создать ли файл такой-то" - и после создания файл оказывается пустым:-(

    ОтветитьУдалить
  5. Вот только не понял одно,как время получения (отправки) сообщений узнать?

    ОтветитьУдалить
  6. Гарик, у меня таже проблема что и у ананима от 22 декабря..

    ОтветитьУдалить
  7. такая же проблема. не понятно в чем дело. путь правильный в кавычках, еще пробовал mra.dbs переносить с каталог с magent-hr.exe. такое впечатление что команде
    magent-hr m mail.txt mra.dbs похеру на последнию "mra.dbs", я пробовал писать даже так специально неправльно
    magent-hr m mail.txt mmaaasda.dbs - меня спрашивало создать ли новый файл или нет и создавала пустое файло. в чем может быть проблема?

    размер исходник 704 кб

    ОтветитьУдалить
  8. Гарик выложи плиз версию Mail.ru History Reader 2.3, на античате в архиве тока файл ридми.

    ОтветитьУдалить

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

Популярные сообщения из этого блога

Сказ об убунте заморской

Работа с HTTP

FileZilla shortcut