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 ов с которыми пользователь вел переписку и все сообщения к сожелению в не отформатированном формате, но читаемом виде.
Её можно скачать здесь, а исходных код посмотреть тут

blog comments powered by Disqus
сюда туда