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