How do I read an Agent's story? How to restore the archive of messages in the agent How to find the history of the agent in mail

The Mail.ru Agent program, which many people use to exchange instant messages, by default stores the entire history of correspondence on the hard disk of the computer on which it is installed. If you have forgotten your password and cannot open the program, you can access the dialog history using additional software tools.

Instructions

  • In early versions of messenger programs, all correspondence was kept in an accessible form, and it could be read without much difficulty using the standard tools of the operating system. The developers have corrected this misunderstanding, and now the history is stored in an encrypted file with the dbs extension.
  • First you need to get to this file. To do this, open Windows Explorer by double-clicking on the My Computer icon. You can also launch File Explorer by right-clicking the Start button and choosing Open File Explorer.
  • In the Explorer window, choose Folder Options from the View menu (Windows XP or earlier), or Folder and Search Options from the Organize menu (Vista and 7). On the View tab of the Folder Options dialog box, find the Show Hidden Files and Folders option and select the check box to activate it.
  • Now you can start searching for the encrypted file with the history of the correspondence. It is located at C: UsersUsernameAppDataRoamingMraBase. Copy the file (there may be several) to your desktop or to any other folder on your computer.
  • To open the file, you need to download a special program with which all saved dialogs can be read in a convenient form. As such a program, you can use Mail.ru History Reader, which can be downloaded on the official page of the application at https://forum.antichat.ru/thread114077.html
  • The program does not require installation and immediately after downloading it you can run it on your computer. To add a previously found file with the history of correspondence, click in the "History" menu and select the "Open" command. Specify the path to the file, after which it will open in the program, and you will see all the correspondence. By selecting the desired contact from the list in the menu on the left, the text of the dialogs will be available to you in the main window.
  • When you lose each archive of your correspondence, many messaging programs offer various options, one of which is file backup. The "Mail.ru Spy" program has its own correction system.

    You will need

    • Mail.ru Spy software.

    Instructions

    1. Before anyone else, you need to run a program for the rapid exchange of messages between users of the mail.ru network. To do this, double-click on the icon with the program logo on the desktop. It is also allowed to run it through the "Start" menu (section "All programs").

    2. To view the archive of messages of a specific contact from your list, you need to open this list, right-click on the contact and choose the option of the same name. If it was not possible to view the desired messages, it is recommended to try the method of fixing the archive via e-mail on mail.ru. Due to the fact that this function became available relatively shortly, some of the messages may not be displayed.

    3. Many similar programs save all the metamorphosis of the message archive on the hard disk. "Mail.ru Spy" also has this function, which saves data in hidden files. In order to view these files, you need to activate the option to display hidden and system files. To do this, open any window "Windows Explorer", click the top menu "Tools" and select the line "Folder Options". In the window that opens, click on the "View" tab and check the box "Show hidden folders and files".

    4. Now navigate to the folder that contains the hidden archived files of your contacts list messages. Open the document using any text editor, say, "Notepad" or "Wordpad". By default, these files are located in the account folder or in the Application Data directory in the same user folder.

    5. To save files of the archive of correspondence in a different directory, you need to click the top menu "File" and prefer the item "Save as" (in an open text editor). In the window for saving the file, specify its name and future location. After that, click on the "Save" button or press the Enter key.

    Conversations using instant messages are gaining cycles today: it is fast, comfortable and absolutely free. The head of communication is probably the icq service. A mail-spy is also consistently following him in the rating, but only those who have mail on Mail.ru can use it.

    Instructions

    2. In the interlocutor's dialog box, review the current messages or click the "archive" button at the top right. This will open every archive of your correspondence. The archive can also be opened by right-clicking on the contact and choosing the "message archive" item.

    3. In order to receive notifications about those who have come messages x, click the "menu" button in the same contact list window.

    4. Select the item "account settings", then the "notifications" tab and check the box in "notify about new messages NS". Then inbox notifications messages x will be displayed in the lower right corner of the agent icon.

    Archiving programs support the function of protecting the archive with a password, and often when downloading archives from the Internet, you cannot open them without knowing the password. Or you install it yourself password and forget it. What to do in such cases?

    You will need

    • - a computer;
    • - Advanced Archive Password Recovery program.

    Instructions

    1. Download from here http://www.elcomsoft.ru/archpr.html Advanced Archive Password Recovery, which allows you to remove password protection from archives of different formats. To fix long passwords, you need to register the program. Launch the program, select from the "Attack type" list the method of correcting the password to the archive.

    2. Choose an especially valid method - iterate over all characters (uppercase and lowercase letters, numbers, symbols, and spaces). If a word was used when setting the password, select a dictionary search in order to speed up the search for the password to the archive. If you remember how many characters were in the password, choose brute force.

    3. In the "Set of symbols" field, select the necessary symbols for selection, for example, numbers and Latin letters. It is allowed to specify numbers or symbols from which the search will start. When choosing a mask attack, enter the password length and the characters that you know in the "Mask" field. And replace unfamiliar characters with a question mark. Let's say you remember that password consists of 5 characters, the first letters of it are La, and then a were. Your mask will look like this: La ???.

    4. Specify the desired password length in the "Length" tab, select the maximum and minimum length in order to stretch password from the archive. In the unregistered version, the maximum password length is four characters. Select the type of correction "By dictionary", go to the "Dictionary" tab, specify additional options and select the dictionary to search. In order to include Russian characters in the search, go to the "Kit" tab, check the "User kit" box, enter all the characters that you need to use to correct the password. Fill in this field with as many characters as possible.

    5. Select the archive to which you want to pick up password after selecting the desired settings. To do this, click on the "Open" button, select a folder on the disk, click on the archive. The archive will appear in the program window, click the "Start" button in order to start guessing the password for the archive. The selection speed and the number of used combinations, as well as the progress of the hacking will be displayed in the "Status Window". Upon the conclusion of the selection, it will show the desired password .

    Related Videos

    Correction of correspondence in most instant messengers occurs according to one scenario - viewing logs in the user's folders. However, mail.ru came up with the latest convenient method of storing correspondence.

    Instructions

    1. Use the view of the message history in the mail agent using the context menu of the contact you need. Select the "Message Archive" item. If all data has been deleted from history, you can restore it using your mailbox. Please note that this function appeared quite shortly in the list of service services, so the complete history of the correspondence, starting from the very beginning of the conversation with the contact, may not be available.

    2. Open your mailbox with which you log into the mail agent. In the list of received correspondence, find letters in the subject line of which the mark “mail agent” is indicated. Please note that in some versions of the program, the function of sending messages to the mailbox must be enabled. This is done in the program settings on the notifications tab about incoming messages.

    3. Look at the records on your computer, many messaging customers store information with the message history on their hard drive, the mail agent is no exception. To view, activate the mode of displaying hidden files and folders on your computer (Control Panel-Folder Options-View-Show hidden folders and files). Go to the program logs storage folder and open them using notepad.

    4. Next time, make a backup copy of such data in a separate text file. Occasionally, this document is deleted when clearing the message history, although for some versions it remains in its original form. The directory where such files are located is Application Data in the operating system user folder on the local disk. When you open it, perhaps, you will also need to open MRA and Roaming, but everything may depend on user settings and the version of the program. The visibility of folders must certainly be configured, otherwise the directory and contents will be unreachable for viewing.

    Helpful advice
    Set a password for your profile in messengers in order to prohibit viewing the message history.

    Mail.ru Agent- a comfortable tool for exchanging text messages, making audio and video calls, exchanging files, etc. In order to use it, you need to have a mailbox on mail.ru. But what if your mailbox is hacked? Or have you forgotten your personal access password? How to recover Agent ?

    Instructions

    1. Go to the Mail.ru website. To do this, launch your Internet browser and enter www.mail.ru in the address bar field without quotes. The main page of the site will open in front of you.

    2. On the left side of the page that opens, there is a "Mail" block. Here you usually enter your data for authorization: login and password. Opposite the password column, find the “Forgot?” Link, click on it. You will be taken to the password correction page.

    3. If you remember your username, but do not remember the password, enter your username on the first page and click the "Next" button. On the next page, the system will try to recover the password for your mailbox, asking you a secret question, the one that you indicated during the mail registration process. Answer it yes and you will receive the newest access password.

    4. If, for some reason, it is unrealistic to recover the password with the help of a secret question in the mailbox, use another option - fill out the support contact form. To do this, click on the corresponding link at the bottom of the password correction page.

    5. This form must be filled in as much as possible. Enter as much information as possible about yourself, this will allow you to regain access to your account as soon as possible. The meaning of this form lies in the following: if the data you entered coincide with those that you indicated when registering the mailbox, then an email will be sent to the address indicated at the end of the form with a link to correct the password. The link works for 3 days. Attention, do not repeat the request before the expiration of this period. When you repeat the requests, the system will return the newest password in the result for each of them, and you simply will not be able to figure out which of the received passwords is correct.

    6. When access to the mailbox is restored, start Mail.ru Agent and in the authorization window enter the login and the newest password for access to the mailbox.

    If you accidentally deleted your chat history or lost access to the software, then restore archive messages allowed by several methods. They depend on your chat program and the security settings you have installed.

    Instructions

    1. Locate the backup file archive a messages on your computer. This document, as usual, is hidden, so first open any window and click on the "Service" or "Organize" menu. Later on, select "Properties and Folder Options". Click on the "View" tab and check the box next to the line "Show hidden folders and files." Click the "Apply" and "OK" button.

    2. Open any window and paste the link C: / _ user folder_ / AppData / Roaming into the address bar. Hit Enter. This folder contains by default archive Most of the programs installed on your computer. If you specified a different storage location in the settings, then go to it.

    3. Find the folder with the required application and go to the section dedicated to your profile. Depending on the program archive messages can be presented individually for the entire contact or broken down by dates. In any case, right-click on the required file and click on "Open with support". Select Notepad or a text editor to view the text.

    4. Run the "Mail.ru Spy" application if it needs to be restored archive messages... Right-click on the contact you want to view the correspondence with and select the appropriate item. If this procedure failed, then you can restore archive by e-mail request. This function is available not so long ago, therefore, old messages cannot be restored.

    5. Install the icq2htm application on your computer, which allows ICQ users to recover any deleted messages. There is also a similar program for Skype called SkypeLogView. Both applications are very comfortable to use and understandable even for those who are crappy with computers.

    Related Videos

    The interface of any mailbox (including the Mail.Ru service) is approximately identical and contains folders: "Inbox", "Outbox", "Drafts", "Spam", "Trash". Where to find deleted messages ?

    Instructions

    1. Go to your Mail.Ru mailbox and open the "Trash" folder. If you independently deleted messages and now want to restore them, they must be located in this directory. If they are not there, remember if you have emptied the Trash after deleting messages. In the process of cleaning the basket, all letters are deleted from the Mail.Ru mail server without the possibility of correction.

    2. By default, the "Trash" is also emptied when you leave the mailbox, and all messages in it are destroyed. If you want to change this option, go to the "Settings" page. Select the section "Mailbox interface", uncheck the opposite of the item "Empty Trash on exit".

    3. If you were waiting for a letter from someone, but it did not come to you, open the "Spam" folder, see if it accidentally got there. Occasionally, the program redirects correspondence suspicious to its gaze to this folder.

    4. If you have lost all letters on Mail.Ru, remember if you or someone from the users who have access to your mailbox did not configure mail programs. Quite often there is a situation when, when setting up similar software, the user forgets to tick the "Save letters on the server" option. As a result, all letters in the mailbox are transferred to the computer. In order to check this, in the mailbox settings, check the box opposite the option "Show information about the last login." If, on the contrary, the inscription "Log in by POP3" will be indicated by the IP-address - your mailbox is working through the mail program.

    5. To store letters, make a special folder in which you will transfer the correspondence that you want to save. It can be created in the Mail.Ru mail program by going to the "Settings" section and from there by clicking on the "Folders" link.

    The main vocation of email is exchange messages... If you find that the main letters from the mailbox are lost for some reason, you should not get upset right away. It is allowed to try to restore deleted correspondence.

    Instructions

    1. In the case of independent deletion of letters from e-mail, they do not disappear, but are mechanically placed in a special folder called "Trash", which is located on the left side of the menu. To correct any letter, go to the "Trash", select the required letter or several letters with a tick next to the sender's address and click the "Move" button located at the top of the "Trash" above the list of letters to be deleted. A dialog box will open in front of you, in it specify the folder for correcting the marked letters. After that, to confirm your actions, click OK.

    2. In addition, after every exit from the mailbox, all letters moved to the "Trash" are deleted mechanically without the likelihood of correction. To prevent this from happening, change the settings in such a way that letters from the "Trash" are deleted only manually. To do this, go to the "Settings" item, then to the "Mailbox interface" section and uncheck the box next to the "Empty Trash on exit" field.

    3. Unfortunately, letters deleted from the "Trash" cannot be corrected. Consequently, try asking your interlocutor to send you the message a second time.

    4. If the sender does not have such a probability, write a request explaining your task to the technical support service. In a few days, the post office will give you the result. However, it is virtually unthinkable to restore correspondence with this method, because several thousand letters pass through the e-mail source every day.

    5. In order to avoid an unpleasant situation, make a special folder and put all the main correspondence for you in it. To do this, in the "Settings" section, click on the "Create a new folder" item and come up with a name for it, and optionally a password.

    Related Videos

    Today, e-mail plays a significant role in human life. The loss of the code (password) for accessing their mail for many can be a huge disaster, the data stored on the mailbox can be of great value. As a consequence, improving access to mail is a priority for many people.

    Instructions

    1. We will begin to restore access to e-mail with the standard method, the one that is the simplest and most intelligible. To begin with, let's pay attention to the fact that it is allowed to restore access to mail with the help of going to the "Remind password" link, the one located at the bottom left, click on it and go to the access correction page. After going to the page for correcting access to e-mail, the system will send the "correction password" to the phone number that was linked to the mailbox. But first you need to verify that you are a real user, not a robot. To do this, enter the presented code in the picture in the field and click "Receive code by SMS". Next, the “Enter the code” window will open and in the required field enter the “Confirmation code”, the one that came to the phone number via SMS. After that, we create the newest password, confirm it and click "Log in".

    2. In order to recover mail with the support of the second method, you will need to remember some details from the life of email. It so happens that access to the correction of the mail is blocked by the lost phone number, the one that was associated with the mailbox. Consequently, you will have to use a different correction system. First you need to go back to the very beginning. We follow the link "Remind password" and see in the lower right corner, underlined by a dotted line "I do not have access to the specified phone number", click and follow the link. Now you need to fill in all the fields that are available on this page and click send. Later, what are we waiting for the result from the support service.

    3. In the event that all the methods presented are not suitable, it remains only to use another e-mail and directly write a letter to the support service of the mail.ru company, with a request to restore access to a certain e-mail and explain that all the presented methods of fixing access to the mailbox are not suitable ...

    You hardly use Mail.Ru Agent, but this is a wildly popular service that is gaining momentum every day. According to official figures, the monthly audience of this messenger at the end of last year was an insane figure of 21.4 million people. It's easy to explain - the product is really successful. But today I want to talk about how the file with the user's message history was parsed.

    WARNING

    Do not forget about Article 138 - "Violation of the secrecy of correspondence, telephone conversations, postal, telegraphic or other messages" of the Criminal Code of the Russian Federation, as well as the presence in it of Chapter 28 - "Crimes in the field of computer information" (Articles 272, 273, 274).

    Hack history

    The experiment began for me back in 2008, when a friend asked me to check the correspondence of his girlfriend in Mail.ru Agent. Then the history file was a simple textbook with the name email history.txt and had a primitive structure compared to mra.dbs (the file that currently stores the history of correspondence and contact data). In a couple of hours, a simple but effective RTF converter was written, which did all the dirty work of pulling correspondence from the Agent. The friend was delighted. Further, in the course of studying programming in compiled languages, as a practice I wrote the Mail.ru History Reader program, the description of which got on the pages] [in August 2009. Having received a large number of positive reviews, I published the structure of the format of the then history file (see links in the side offset) and the source code of the reader. However, Mail.ru Agent continued to evolve, and a new advanced mra.dbs file took over. After this event, I received tons of messages from various people asking me to take care of it. In the company with SOLON7, we were picking this file in the HEX editor, trying to find structures, references to offsets and all kinds of changes after the launch of the Mail.ru Agent. By the end of 2010, after a long search, the format finally conquered.

    Rich Text Format (RTF)

    RTF, used in mra.dbs, is a format for storing markup documents, proposed back in 1982 by bearded programmers from Microsoft and Adobe. To parse it, you don't have to reinvent the wheel, you just need to send the EM_STREAMIN message with the SF_RTF flag for writing and EM_STREAMOUT with the SF_TEXT flag for reading:

    EDITSTREAM es = (0); es.pfnCallback = EditStreamCallback; es.dwCookie = (DWORD_PTR) SendMessage (hRich, EM_STREAMIN, SF_RTF, (LPARAM) & es);

    This simple trick is used in my reading room.

    How do I get the mra.dbs file?

    You, of course, ask yourself a question: where, in fact, is this notorious mra.dbs stored, and how to get it? The mra.dbs file is stored in the "% APPDATA% \ Mra \ Base \ mra.dbs" folder (for example, "C: \ Documents and Settings \ user \ Application Data \ Mra \ Base \ mra.dbs"), and get it when the The agent is not so difficult, it is enough just to use the ExpandEnvironmentStrings and CopyFile functions. However, when the Agent is enabled, the mra.dbs file is busy and the system will simply not allow using it. To solve this problem, you can, for example, temporarily disable the Agent (for this action you will need debugger privileges, which can only be obtained with Administrator rights) or find the open file handle in the system and then duplicate it into the address space of your process. You can also read a file directly from disk (though you need to know what a cluster is and how to work directly with a file system driver) or write your own file driver (this is almost impossible). Everything would be fine, but in practice, all of the above methods have their drawbacks. When enumerating handles using ZwQuerySystemInformation and copying them to your process using DuplicateHandle, you can face two problems. The first is that when ZwQueryInformationFile is called, the thread may hang, waiting for a response from the blocking named pipe. The second - after copying, both handles (ours and the process that opened the file) will point to one FileObject, and therefore the current I / O mode. The position in the file and other information related to the file will be shared between the two processes, so even reading the file will cause the reading position to change and disrupt the normal operation of the program that opened the file. Of course, you can suspend all threads of the file process for a while, and after copying, restore read positions and start the owner process again, but this is time-consuming and expensive. It would seem that direct reading from disk may be the ideal method, but there are also disadvantages here. In this way, you can only read files that are opened with FILE_READ_ATTRIBUTES access (except for swap files), the file must be uncompressed, not encrypted (otherwise we will read nonsense) and have its own cluster (small files in NTFS can be entirely located in MFT). It should also be taken into account that during reading the file can be changed (and we will get unclear what as a result). Therefore, we will analyze the simplest method with temporarily disabling the Agent process.

    So, in order to kill the Mail.ru Agent process, you first need to find out its identifier (ProcessID). This can be done in different ways: through the ToolHelp API, through the Native API (using the ZwQuerySystemInformation function), by traversing the list of open handles, or by the list of windows opened by the process (GetWindowThreadProcessId). The easiest option is to use the ToolHelp API and search by the name of the exe file. To do this, just call the CreateToolhelp32Snapshot> Process32First> Process32Next functions, and then in the body of the loop check the value of the szExeFile field of the PROCESSENTRY32 structure with magent.exe. The ProcessID we need is in the same structure, the th32ProcessID field:

    HProcessSnap = CreateToolhelp32Snapshot (TH32CS_SNAPPROCESS, 0); if (INVALID_HANDLE_VALUE! = hProcessSnap) (pe32.dwSize = sizeof (PROCESSENTRY32); if (Process32First (hProcessSnap, & pe32)) (do (if (0 == lstrcmp (pe32.szExeFile, _TEXT ("magent.exe"))) (pid = pe32.th32ProcessID; break;)) while (Process32Next (hProcessSnap, & pe32));) CloseHandle (hProcessSnap);)

    After we find the PID, we need to get the privileges of the SeDebugPrivilege debugger (OpenProcessToken> LookupPrivilegeValue> AdjustTokenPrivileges) and kill the process (OpenProcess> TerminateProcess), and then try to call CopyFile again. Privileges can also be obtained in a more elegant way - through the Native API:

    Void GetPrivilege (IN ULONG Privilege) (BOOLEAN OldValue; RtlAdjustPrivilege (Privilege, TRUE, FALSE, & OldValue);)

    Everything, mra.dbs is in our hands. Now let's move on to gutting it :).

    Revealing the secrets of mra.dbs

    The mra.dbs file is a memory dump of the Mail.ru Agent, so it is not possible to open it for reading while the program is running (for an ordinary programmer, but we have our own secrets :), the task is also complicated by the fact that all numbers are stored in memory upside down. However, let's dive a little deeper into reverse engineering.

    So, in the depths of mra.dbs there is a hash table that describes offsets by 4-byte identifiers. The identifiers are used to determine the beginning of the recording of various structures and dump segments, among which are the correspondence history records we need (pay attention to the corresponding illustration):

    Typedef struct _ids (unsigned int id1; unsigned int id2; unsigned int count;) _ids;

    INFO

    A hash table is a data structure that implements an associative array interface, it allows you to store key-value pairs. A doubly linked list consists of data items, each of which contains links to both the next and the previous item.

    The beginning of the story is characterized by the mrahistory_ keyword, followed by the e-mail of the owner of the mra.dbs file and the e-mail of the contact with whom the correspondence is being conducted. In the case of history, the identifiers form a doubly linked list: the first leads to the first message sent, and the second to the last received message. The number of messages can be found by examining the four bytes after the identifiers (structure _ids). After going through the offset of the identifier (it can be found out from the hash table), we will get to the message record (again, all attention to the corresponding figure):

    Search hash table struct _message (unsigned int size; unsigned int prev_id; unsigned int next_id; unsigned int xz1; FILETIME time; unsigned int type_mesage; char flag_incoming; char byte; unsigned int count_nick; unsigned int magic_num; // 0x38 unsigned int count_message ; unsigned int xz2; unsigned int size_lps_rtf; unsigned int xz3;);

    Dump lines are saved in Unicode (wchar_t) in various ways:

    • with a terminating null at the end of the line;
    • in the LPS structure (the name of the structure is taken from the description of the MMP protocol format), where the first four bytes indicate the length of the following line;
    • in RTF format.

    Knowing the number of messages, it will not be difficult for us to go through the entire chain. But how do you even know where this hash table is, and how do you find the beginning of the history records? SOLON7 and I spent many sleepless nights searching for answers to these questions.

    Mra.dbs message types

    • 2 - unauthorized users;
    • 4 - authorization requests;
    • 7 - regular messages;
    • 10 - file transfer;
    • 35 - microblog entries;
    • 46 - change of geolocation.

    A bit of magic

    At offset 0x10 from the beginning of the mra.dbs file, as it turned out, the address of the cherished hash table is stored. Traversing the offset of the first index from the hash table, we come across the initial data structure. Perhaps there is generally all the information contained in mra.dbs. Move on. At offset 0x20, this structure stores the number of history records or, more simply, the number of correspondences. Since the dump file is constantly expanding, the ID of the last recorded history is located at offset 0x2C - this is all we need to know in order to start looking for correspondence IDs. In general, the algorithm is as follows:

    • we go through the identifiers of the history records using a loop (starting from the last added record);
    • if the word "mrahistory_" is present in this record from offset 0x190, this means that at offset 0x24 there are message chain identifiers of this correspondence.

    To make it a little clearer, take a look at this code:

    DWORD * offset_table = (DWORD *) (mra_base + * (DWORD *) (mra_base + 0x10)); DWORD end_id_mail = * (DWORD *) (mra_base + 0x20 + offset_table); DWORD count_emails = * (DWORD *) (mra_base + 0x2C + offset_table); ... for (int i = 0; i id2; )

    Code

    Now I will show you only the most basic points. So, the mra.dbs file is a memory dump, so we will not pervert and use functions to work with file offsets, but we will immediately place it in the memory of our program. To do this, we use the resources of the Windows OS and create a Memory Mapped file:

    CreateFile CreateFileMap MapViewOfFile VirtualFree CloseHandle CloseHandle

    Since we do not need to save the changes made back to the file, VirtualFree is used here instead of UnmapViewOfFile. The first thing we will do is find all the contacts from the chat history. We will store the found goodness in the emails structure:

    Typedef struct _emails (wchar_t * email; _ids * id;); ... struct _emails * emails; ... emails = VirtualAlloc (NULL, count_emails * sizeof (struct _emails), ..); ...

    After traversing the identifiers and searching for the "mrahistory_" string, our structure will be filled with identifier addresses. Note that we did not copy even a byte and used only 16 * count_emails bytes (for example, with 1,000 contacts, we use only ~ 15 kilobytes of memory). Now, having in hand the identifiers of the beginning of the correspondence with a specific user, we can read the messages:

    Int id_message = emails [k] .id-> id1; for (int i = 0; i count_messages; i ++) (_message * mes = (_ message *) (mra_base + offset_table); wchar_t * str = (wchar_t *) ((unsigned char *) mes + sizeof (_message)); ... id_message = mes-> prev_id ;)

    The message date is stored in FILETIME format and can be converted to human readable form for convenience using the FileTimeToSystemTime function. The RTF format is perfectly accepted by Rich Edit and any other standard editors such as WordPad. But you don't have to bother with this, since messages are stored unformatted immediately after the nickname, and their size is specified in the message structure. That's all you need to know to get a digestible list of messages from the Agent.

    P.S.

    Unfortunately, the format of the magazine does not allow me to present my hardcore research in full here, so hurry to take a look at the disc. I hope that the example of the reader code (the exe's of which, by the way, with the help of a small optimization, fit only 2 kilobytes without any packers) will help you in writing fast and cool C code, as well as in learning hex editors and other low-level things. By the way, the equally fascinating topic of reading the history of ICQ correspondence, which is also stored in the mra.dbs file, remained unaffected. Thanks to Mail.Ru, firstly, for the development of the Mail.Ru Agent, secondly, for the noticeable development of your favorite ICQ, and thirdly, for the interesting quest that I told you about today.