<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.nina.chat/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Bobsmith2</id>
	<title>NINA Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.nina.chat/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Bobsmith2"/>
	<link rel="alternate" type="text/html" href="https://wiki.nina.chat/wiki/Special:Contributions/Bobsmith2"/>
	<updated>2026-06-26T09:43:47Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.41.1</generator>
	<entry>
		<id>https://wiki.nina.chat/index.php?title=User:Bobsmith2&amp;diff=8798</id>
		<title>User:Bobsmith2</title>
		<link rel="alternate" type="text/html" href="https://wiki.nina.chat/index.php?title=User:Bobsmith2&amp;diff=8798"/>
		<updated>2025-07-07T01:47:14Z</updated>

		<summary type="html">&lt;p&gt;Bobsmith2: Created page with &amp;quot;Test&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Test&lt;/div&gt;</summary>
		<author><name>Bobsmith2</name></author>
	</entry>
	<entry>
		<id>https://wiki.nina.chat/index.php?title=Main_Page&amp;diff=8797</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.nina.chat/index.php?title=Main_Page&amp;diff=8797"/>
		<updated>2025-07-07T01:16:36Z</updated>

		<summary type="html">&lt;p&gt;Bobsmith2: /* NINA &amp;amp; Escargot */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__ &lt;br /&gt;
Welcome to the best place on Earth. You have reached the NINA Wiki for protocols, client information, and APIs that were formerly parts of AOL, ICQ, QuantumLink, CompuServe, and so on. At one time these protocols were used by AOL's AIM and ICQ products, and later discontinued, it now has had a rebirth of sorts here. &lt;br /&gt;
&lt;br /&gt;
We not only will fully document the protocols, but will maintain and update it.&lt;br /&gt;
&lt;br /&gt;
Special thanks also goes to Zip of P3OL for his insight during our investigation the more nuanced and oddball parts of chat rooms in early versions of AOL. While not sister projects, we do have overlapping communities and discussions/testing have benefitted us both.&lt;br /&gt;
&lt;br /&gt;
=== NINA &amp;amp; Escargot ===&lt;br /&gt;
&lt;br /&gt;
NINA's AIM service is currently '''up and running for everyone''' in Beta! ICQ is also now in a '''free open alpha'''. If you want to experience the AIM and ICQ servers and ''all'' its protocols, please consider [https://nina.chat/donate/ donating] as it helps us host this wiki, the servers, etc. Free to use doesn't mean free to run, especially when we aren't selling any of your data.&lt;br /&gt;
&lt;br /&gt;
Escargot is '''up and running for everyone'''!&lt;br /&gt;
&lt;br /&gt;
You can also join our [https://escargot.chat/discord/?src=wiki Discord] to talk about everything, keep up with the news, and have fun. We're nice!&lt;br /&gt;
&lt;br /&gt;
=== Want to Help? ===&lt;br /&gt;
&lt;br /&gt;
If you want to contribute to the NINA Wiki directly, you have to be a member, and so you must request an account by sending an email to [mailto:accounts@wiki.nina.chat accounts@wiki.nina.chat] with desired username and also a few words on what you have to contribute (for spam control). If accepted you will be sent a randomly generated password.&lt;br /&gt;
&lt;br /&gt;
If you want to contribute something anonymously or without registering, send it to [mailto:contribute@wiki.nina.chat contribute@wiki.nina.chat]. If anonymity is desired, state so, and after information is taken from your email it will be deleted and never archived, nor your details saved anywhere or revealed to anyone. &lt;br /&gt;
&lt;br /&gt;
See what kind of things we are looking for in our [[NCD|Not Currently Documented]] section. You should also check the [[Needed]], which is a list of things we are looking for which are not directly related to documentation.&lt;br /&gt;
&lt;br /&gt;
You can also [[Donate|donate]] to help with this AIM/AOL revival, because it is a full time job at this point.&lt;br /&gt;
&lt;br /&gt;
== Currently Being Worked On ==&lt;br /&gt;
* [[Introduction]] to the community, terms, etc&lt;br /&gt;
* [[Protocols/OSCAR|OSCAR Protocol]]&lt;br /&gt;
** [[Protocols/OSCAR/Clients#AIM|AIM Clients]]&lt;br /&gt;
*** [[Clients/AOL_Instant_Messenger/How_to_move|How to move from another AIM service]]&lt;br /&gt;
** [[Clients/AOL_Mobile_Communicator|AOL Mobile Communicator]]&lt;br /&gt;
** [[Clients/Quiet_Internet_Pager|Quiet Internet Pager]]&lt;br /&gt;
* [[Protocols/TOC|TOC Protocol]] - Includes TOC2 and other information&lt;br /&gt;
** [[Clients/AOL_Instant_Messenger#TOC|TOC Clients]]&lt;br /&gt;
* [[Protocols/WebAPI|WebAPI]]&lt;br /&gt;
* [[Protocols/AOL|AOL Protocol]]&lt;br /&gt;
** This is for P3 and FLAP versions.&lt;br /&gt;
* [[Protocols/AOL/Midas|Midas Protocol]]&lt;br /&gt;
** This is for versions such as AOL Desktop Gold.&lt;br /&gt;
* [[Protocols/MSNP|MSNP]]&lt;br /&gt;
** [[Clients/Windows_Live_Messenger|Windows Live Messenger]]&lt;br /&gt;
* [[Protocols/YMSG|YMSG]]&lt;br /&gt;
* Other articles in the works&lt;br /&gt;
** [[Support/Extended_FAQ|Extended FAQ]]&lt;br /&gt;
&lt;br /&gt;
== Portals ==&lt;br /&gt;
* [[Portal:AOL-Files|AOL-Files Portal]]&lt;br /&gt;
** A merger of archived/recovered AOL-Files/FDO-Files content and up to date information.&lt;br /&gt;
* [[Portal:AOL|AOL Portal]]&lt;br /&gt;
** Information regarding AOL as a general service and its history.&lt;br /&gt;
** [[Portal:AOL/Podcasts/AOL_Underground|AOL Underground Podcast]]&lt;/div&gt;</summary>
		<author><name>Bobsmith2</name></author>
	</entry>
	<entry>
		<id>https://wiki.nina.chat/index.php?title=Category:Protocols/YMSG&amp;diff=8723</id>
		<title>Category:Protocols/YMSG</title>
		<link rel="alternate" type="text/html" href="https://wiki.nina.chat/index.php?title=Category:Protocols/YMSG&amp;diff=8723"/>
		<updated>2024-12-07T22:29:28Z</updated>

		<summary type="html">&lt;p&gt;Bobsmith2: Created page with &amp;quot;Everything about Yahoo! Messenger's YMSG protocol.&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Everything about Yahoo! Messenger's YMSG protocol.&lt;/div&gt;</summary>
		<author><name>Bobsmith2</name></author>
	</entry>
	<entry>
		<id>https://wiki.nina.chat/index.php?title=Category:YMSG&amp;diff=8722</id>
		<title>Category:YMSG</title>
		<link rel="alternate" type="text/html" href="https://wiki.nina.chat/index.php?title=Category:YMSG&amp;diff=8722"/>
		<updated>2024-12-07T22:28:44Z</updated>

		<summary type="html">&lt;p&gt;Bobsmith2: Created page with &amp;quot;All about Yahoo! Messenger, including the various clients and services surrounding it.&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;All about Yahoo! Messenger, including the various clients and services surrounding it.&lt;/div&gt;</summary>
		<author><name>Bobsmith2</name></author>
	</entry>
	<entry>
		<id>https://wiki.nina.chat/index.php?title=Protocols/YMSG&amp;diff=8721</id>
		<title>Protocols/YMSG</title>
		<link rel="alternate" type="text/html" href="https://wiki.nina.chat/index.php?title=Protocols/YMSG&amp;diff=8721"/>
		<updated>2024-12-07T22:27:52Z</updated>

		<summary type="html">&lt;p&gt;Bobsmith2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Protocols/YMSG}}&lt;br /&gt;
YMSG was the network protocol used by Yahoo! Messenger for almost everything, including login, messaging and presence. It was a proprietary, homegrown solution created at Yahoo.&lt;br /&gt;
&lt;br /&gt;
If you have anything to contribute, or can see an error to correct in any of the information here, do not hesitate to contribute. Instructions are on the main page of the wiki.&lt;br /&gt;
&lt;br /&gt;
== General structure ==&lt;br /&gt;
&lt;br /&gt;
YMSG packets are binary-based. They consist of a magic string, version code, vendor ID, packet length, service code, status code, session ID, and an optional payload.&lt;br /&gt;
&lt;br /&gt;
The first field in a YMSG packet is the magic string YMSG at offset 0x00, which is 4 bytes in length.&lt;br /&gt;
&lt;br /&gt;
The second field is the version number of the protocol the client wants to use for the current YMSG session packed as a short on offset 0x04, and is 2 bytes long. For server-side packets, this field is usually 0.&lt;br /&gt;
&lt;br /&gt;
The third field, on offset 0x06, is the vendor ID of the client connecting to the YMSG server, which is a 2-byte long short-packed number. Supported values for the vendor ID are 0 (\x00\x00; Windows/NULL) and 100 (\x00\x64; Macintosh). For server-side packets, this value is usually set to 0, but we are not sure of this yet. Prior to YMSG16, it was believed that the vendor ID was part of the version code, effectively making the version a DWORD.&lt;br /&gt;
&lt;br /&gt;
The fourth field is the length of the packet's payload packed as a short, which is located on offset 0x08 and is also 2 bytes long.&lt;br /&gt;
&lt;br /&gt;
The fifth field is the service code the packet requests the server to execute the payload with. It is located on offset 0x0a and is 2 bytes long. There are a variety of services that a YMSG packet can utilize, and it has been observed that Yahoo! Messenger can swap protocol versions, meaning that features can be used on YMSG protocol versions that initially didn't support those features. Whether this mean older clients can potentially receive packets with services not recognized by their understanding of the protocol version they use hasn't been confirmed.&lt;br /&gt;
&lt;br /&gt;
The sixth field is the status code, which is a packed DWORD located at offset 0x0c and is 4 bytes long. This status code doesn't correspond to the logged in user's status, and is moreso used as a subcommand for most packet services. Interestingly enough, most of the status code in YMSG packets corresponds to the status codes used for contact presence. During authentication, this is used to determine if the user wants to log in under invisible mode. There are 19 YMSG statuses (that we've recorded as of now) that may or may not be used for contact statuses:&lt;br /&gt;
&lt;br /&gt;
    AVAILABLE/REQUEST: 0x00000000&lt;br /&gt;
    BRB/RESPONSE: 0x00000001&lt;br /&gt;
    BUSY: 0x00000002&lt;br /&gt;
    NOTATHOME/BADUSERNAME: 0x00000003&lt;br /&gt;
    NOTATDESK: 0x00000004&lt;br /&gt;
    NOTINOFFICE/OFFLINEMSG/MULTIPACKET: 0x00000005&lt;br /&gt;
    ONPHONE: 0x00000006&lt;br /&gt;
    ONVACATION: 0x00000007&lt;br /&gt;
    OUTTOLUNCH: 0x00000008&lt;br /&gt;
    STEPPEDOUT: 0x00000009&lt;br /&gt;
    INVISIBLE: 0x0000000C&lt;br /&gt;
    BAD: 0x0000000D&lt;br /&gt;
    LOCKED: 0x0000000E&lt;br /&gt;
    TYPING: 0x00000016&lt;br /&gt;
    CUSTOM: 0x00000063&lt;br /&gt;
    IDLE: 0x000003E7&lt;br /&gt;
    WEBLOGIN: 0x5A55AA55&lt;br /&gt;
    OFFLINE: 0x5A55AA56&lt;br /&gt;
    LOGINERROR: 0xFFFFFFFF&lt;br /&gt;
&lt;br /&gt;
The seventh field is the session ID, which is also a packed DWORD. It is located at offset 0x10 and is also 4 bytes long. The purpose of this field is to identify sessions and to verify if a user has the greenlight to use the main YMSG services (anything after authentication). It is believed that the official YMSG servers verified the session ID after authentication, but there is no hard evidence of this being the case, considering YMSG by design didn't validate the payloads of most services.&lt;br /&gt;
&lt;br /&gt;
The eighth, optional field is the payload for the service the packet wants to request. The payload is located at offset 0x14 and is variable-length or null. If not null, payloads are formatted in a generic key/value format, with the key usually being numeric. The key and value are separated by the delimiter \xc0\x80. An example of this format is below:&lt;br /&gt;
&lt;br /&gt;
    1[\xc0\x80]yahoo.id[\xc0\x80]&lt;br /&gt;
&lt;br /&gt;
1 is the key and yahoo.id is the value of the key in this example.&lt;br /&gt;
&lt;br /&gt;
There is no limit to the amount of key/value pairs that can make up the payload, but due to the packet length in the packet's header being short-packed, the payload is limited to 65,535 bytes.&lt;br /&gt;
&lt;br /&gt;
== YMSG8 ==&lt;br /&gt;
&lt;br /&gt;
YMSG8 is the first known version of the protcol. Versions of Yahoo! Messenger 5.0 and below use it.&lt;br /&gt;
&lt;br /&gt;
=== Auth ===&lt;br /&gt;
&lt;br /&gt;
1. Client sends GET request to &lt;br /&gt;
&lt;br /&gt;
    http://msg.edit.yahoo.com/config/ncclogin?.src=bl&amp;amp;login=[username]&amp;amp;passwd=[password]&amp;amp;n=1&lt;br /&gt;
&lt;br /&gt;
2. Server responds with cookie Y and body:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    OK&lt;br /&gt;
    BEGIN BUDDYLIST&lt;br /&gt;
    [contact category]:[comma separated list of Yahoo! IDs associated with the contact category]&lt;br /&gt;
    END BUDDYLIST&lt;br /&gt;
    BEGIN IGNORELIST&lt;br /&gt;
    [comma separated list of Yahoo IDs in the user's ignore list]&lt;br /&gt;
    END IGNORELIST&lt;br /&gt;
    BEGIN IDENTITIES&lt;br /&gt;
    [comma-separated list of user's main and alternate usernames go here]&lt;br /&gt;
    END IDENTITIES&lt;br /&gt;
    Mail=1&lt;br /&gt;
    Login=[username]&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
3. Client opens a connection to a YMSG server via port 5050 and sends:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Service: \x00\x01 (LOGON)&lt;br /&gt;
    &lt;br /&gt;
    Status: \x5A\x55\xAA\x55 (WEBLOGON)&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    Payload:&lt;br /&gt;
      &lt;br /&gt;
      '0' -&amp;gt; [YahooId]&lt;br /&gt;
      '6' -&amp;gt; [md5-crypt(3)'d password]&lt;br /&gt;
      '1' -&amp;gt; [YahooId]&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4. If the verification of the password goes well, the server responds with:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Service: \x00\x01 (LOGON)&lt;br /&gt;
    &lt;br /&gt;
    Status: \x00\x00\x00\x00 (0; [AVAILABLE]/REQUEST)&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Payload:&lt;br /&gt;
    &lt;br /&gt;
      '0' -&amp;gt; [YahooId]&lt;br /&gt;
      '1' -&amp;gt; [YahooId]&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
== YMSG9 ==&lt;br /&gt;
&lt;br /&gt;
YMSG9 is the second revision of the protocol, used by Yahoo! Messenger versions 5.0 through 5.4.&lt;br /&gt;
&lt;br /&gt;
=== Auth ===&lt;br /&gt;
&lt;br /&gt;
1. Client opens a connection to a YMSG server via port 5050 and sends:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Service: \x00\x4C (76; HANDSHAKE)&lt;br /&gt;
    &lt;br /&gt;
    Status: \x00\x00\x00\x00 (0; AVAILABLE/[REQUEST])&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
2. Server responds with:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Service: \x00\x4C (76; HANDSHAKE)&lt;br /&gt;
    &lt;br /&gt;
    Status: \x00\x00\x00\x01 (1; BRB/[RESPONSE])&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
3. Client sends:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Service: \x00\x57 (87; AUTH)&lt;br /&gt;
    &lt;br /&gt;
    Status: \x00\x00\x00\x00 (0; AVAILABLE/[REQUEST])&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Payload:&lt;br /&gt;
    &lt;br /&gt;
      '1' -&amp;gt; [YahooId]&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
4. On successful verification of the username, the server responds with the following packet (this is also when the server generates the session ID the client should use for the whole server session):&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Service: \x00\x57 (87; AUTH)&lt;br /&gt;
    &lt;br /&gt;
    Status: \x00\x00\x00\x01 (1; BRB/[RESPONSE])&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Payload:&lt;br /&gt;
    &lt;br /&gt;
      '1' -&amp;gt; [YahooId]&lt;br /&gt;
      '94' -&amp;gt; [24-byte Yahoo64-encoded challenge string] ('AA.BBCCDDEEGGHHIIH_HII--')&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
5. The client then crafts two response strings with the challenge strings (details will be added onto later).&lt;br /&gt;
&lt;br /&gt;
6. After the client is done crafting the two response strings, the client responds with:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Service: \x00\x54 (54; AUTHRESP)&lt;br /&gt;
    &lt;br /&gt;
    Status: [Status the user wants to log in as; usually either AVAILABLE or INVISIBLE]&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Payload:&lt;br /&gt;
    &lt;br /&gt;
      '0' -&amp;gt; [YahooId]&lt;br /&gt;
      '6' -&amp;gt; [Challenge response string 1] ('AA.BBCCDDEEGGHHIIH_HII--')&lt;br /&gt;
      '96' -&amp;gt; [Challenge response string 2] ('AA.BBCCDDEEGGHHIIH_HII--')&lt;br /&gt;
      '2' -&amp;gt; '1'&lt;br /&gt;
      '1' -&amp;gt; [YahooId]&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
7. Server verifies the first and second response strings, and if all is well, responds with this:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Service: \x00\x55 (85; LIST)&lt;br /&gt;
    &lt;br /&gt;
    Status: \x00\x00\x00\x00&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Payload:&lt;br /&gt;
    &lt;br /&gt;
      '87' -&amp;gt; '[contact category]:[comma separated list of Yahoo! IDs associated with the contact category]\x0A'&lt;br /&gt;
      '88' -&amp;gt; [comma separated list of Yahoo IDs in the user's ignore list]&lt;br /&gt;
      '89' -&amp;gt; [comma-separated list of user's main and alternate usernames go here]&lt;br /&gt;
      '59' -&amp;gt; 'Y\x09[data of &amp;quot;Y&amp;quot; cookie]'&lt;br /&gt;
      '59' -&amp;gt; 'T\x09[data of &amp;quot;T&amp;quot; cookie]'&lt;br /&gt;
      '59' -&amp;gt; 'C\x09mg=1'&lt;br /&gt;
      '3' -&amp;gt; [YahooId]&lt;br /&gt;
      '100' -&amp;gt; '0'&lt;br /&gt;
      '101' -&amp;gt; (blank)&lt;br /&gt;
      '102' -&amp;gt; (blank)&lt;br /&gt;
      '93' -&amp;gt; '86400'&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    If the contact, ignore, or identity list were too large for the server's taste, then multiple LIST packets would be sent with status 0x00000005 (NOTINOFFICE) containing chunks of the key-value pair for one type of list each before sending the rest of the LIST packet. &lt;br /&gt;
&lt;br /&gt;
8. The server will also send you a LOGON packet containing structures of your contacts statuses and the number of them contained:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Service: \x00\x01 (LOGON)&lt;br /&gt;
    &lt;br /&gt;
    Status: \x00\x00\x00\x00&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    Payload:&lt;br /&gt;
    &lt;br /&gt;
      '0' -&amp;gt; [YahooId]&lt;br /&gt;
      '1' -&amp;gt; [YahooId]&lt;br /&gt;
      '8' -&amp;gt; # of contact structures&lt;br /&gt;
      --- This collection of key-value pairs are added times the number specified in key 8 ---&lt;br /&gt;
      '7' -&amp;gt; Contact's Yahoo ID&lt;br /&gt;
      '10' -&amp;gt; Contact's YMSG status in integer format (99 (CUSTOM) if using a PSM or 0 (AVAILABLE) if offline)&lt;br /&gt;
      '11' -&amp;gt; Contact's YMSG session ID in uppercase hexadecimal&lt;br /&gt;
      '19' -&amp;gt; Contact's PSM (key-value pair only included if status == 99 (CUSTOM))&lt;br /&gt;
      '47' -&amp;gt; Flag for if contact's PSM is an away message or not (key-value pair only included if status == 99 (CUSTOM))&lt;br /&gt;
      '17' -&amp;gt; Contact is online on Yahoo! Chat (1 for yes, 0 for no; apparently this was only set to 1 if you were on Yahoo Chat's own protocol)&lt;br /&gt;
      '13' -&amp;gt; Contact is online on Yahoo! Messenger service (1 for yes, 0 for no)&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
The responses detailed in 7 and 8 will also be sent if the client queries the LIST service itself.&lt;br /&gt;
&lt;br /&gt;
9. If any, the server will send packets containing the logged on user's OIMs (TODO: packet structure)&lt;br /&gt;
&lt;br /&gt;
=== Presence ===&lt;br /&gt;
&lt;br /&gt;
When a user logs on successfully, their status set in the AUTHRESP packet will automatically be dispatched to their contacts.&lt;br /&gt;
&lt;br /&gt;
When a user wants to change their status to something other than online (this includes going invisible), Yahoo! Messenger will send an ISAWAY packet containing the following info:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Service: \x00\x03 (ISAWAY)&lt;br /&gt;
    &lt;br /&gt;
    Status: 0x00000000 (0; AVAILABLE/[REQUEST])&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Payload:&lt;br /&gt;
  &lt;br /&gt;
      '10' -&amp;gt; Numerical YMSG status (99 for CUSTOM)&lt;br /&gt;
      '19' -&amp;gt; PSM (only included if status == 99)&lt;br /&gt;
      '47' -&amp;gt; Going away? (usually 1)&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
If a user wants to go back as online, the client will send this:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Service: \x00\x04 (ISBACK)&lt;br /&gt;
    &lt;br /&gt;
    Status: 0x00000000 (0; AVAILABLE/[REQUEST])&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Payload:&lt;br /&gt;
  &lt;br /&gt;
      (None)&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
No responses are sent to the user setting their status for either service.&lt;br /&gt;
&lt;br /&gt;
When contact statuses are dispatched to other users, the server sends the same contact structure with the appropriate info with various services depending on the status the remote contact is on:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    Service: Various (LOGON if remote contact status is &amp;quot;offline -&amp;gt; online&amp;quot;; ISAWAY if remote contact status is &amp;quot;any available (no PSM)/idle status -&amp;gt; any available (with PSM)/idle status&amp;quot;; ISBACK if remote contact status is &amp;quot;any available (with PSM)/idle status -&amp;gt; regular available (no PSM) status&amp;quot;)&lt;br /&gt;
    &lt;br /&gt;
    Status 0x00000001 (1; BRB/RESPONSE)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    Payload:&lt;br /&gt;
  &lt;br /&gt;
      '0' -&amp;gt; [Receiver's Yahoo ID] (only included if service != LOGOFF)&lt;br /&gt;
      '7' -&amp;gt; Contact's Yahoo ID&lt;br /&gt;
      '10' -&amp;gt; Contact's YMSG status in integer format (99 (CUSTOM) if using a PSM or 0 (AVAILABLE) if offline)&lt;br /&gt;
      '11' -&amp;gt; Contact's YMSG session ID in uppercase hexadecimal&lt;br /&gt;
      '19' -&amp;gt; Contact's PSM (key-value pair only included if status == 99 (CUSTOM))&lt;br /&gt;
      '47' -&amp;gt; Flag for if contact's PSM is an away message or not (key-value pair only included if status == 99 (CUSTOM))&lt;br /&gt;
      '17' -&amp;gt; Contact is online on Yahoo! Chat (1 for yes, 0 for no; apparently this was only set to 1 if you were on Yahoo Chat's own protocol)&lt;br /&gt;
      '13' -&amp;gt; Contact is online on Yahoo! Messenger service (1 for yes, 0 for no)&lt;br /&gt;
&lt;br /&gt;
== YMSG10 - 14 ==&lt;br /&gt;
We don't currently know what in specific was changed between each of these protocol versions.&lt;br /&gt;
&lt;br /&gt;
YMSG10 is used by Yahoo! Messenger 5.5&lt;br /&gt;
&lt;br /&gt;
YMSG11 is used by Yahoo! Messenger 5.6&lt;br /&gt;
&lt;br /&gt;
YMSG12 is used by Yahoo! Messenger 6.0&lt;br /&gt;
&lt;br /&gt;
We currently do not know what versions used YMSG13 or YMSG14&lt;br /&gt;
&lt;br /&gt;
=== Auth ===&lt;br /&gt;
&lt;br /&gt;
1. (Same as YMSG9 steps 1 to 3; in version 11 the version field is now in the correct (network) endianness).&lt;br /&gt;
2. Server responds with:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Service: \x00\x57(W) (87; AUTH)&lt;br /&gt;
&lt;br /&gt;
    Status: \x00\x00\x00\x01 (1; BRB/[RESPONSE])&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Payload:&lt;br /&gt;
    &lt;br /&gt;
      '1' -&amp;gt; [YahooId]&lt;br /&gt;
      '94' -&amp;gt; [mathematical expression-like challenge string (64 bytes without parentheses)] ('g|i/p^h&amp;amp;z-d+2%v%x&amp;amp;j|e+(m^k-i%h*(s+8%a/u/x*(b-4*i%h^g^j|m^n-r*f+p+j)))')&lt;br /&gt;
      '13' -&amp;gt; '1'&lt;br /&gt;
    &lt;br /&gt;
3. Other, more complicated stuff ensues: https://web.archive.org/web/20031206174432if_/http://venkydude.com:80/articles/yahooencription.htm.&lt;br /&gt;
&lt;br /&gt;
4. After crafting the two response strings, the client sends:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Service \x00\x57(W) (87; AUTH)&lt;br /&gt;
    &lt;br /&gt;
    Status: \x5A\x55\xAA\x55&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Payload:&lt;br /&gt;
    &lt;br /&gt;
      '6' -&amp;gt; [First response string consisting of comma and semicolon separated &amp;quot;X=YZ&amp;quot; values] ('X=7e,H=je,H=j7;m=Cj,H=Cc,E=33;Q=ml;H=37;F=gg;w=F5;')&lt;br /&gt;
      '96' -&amp;gt; [Second response string also consisting of comma and semicolon separated &amp;quot;X=YZ&amp;quot; values] ('N=ah,m=F1,m=3A,Q=A2;T=Al,Z=Ep,h=he,S=0o;r=1B,C=h2;')&lt;br /&gt;
      '0' -&amp;gt; [YahooId]&lt;br /&gt;
      '2' -&amp;gt; '1'&lt;br /&gt;
      '1' -&amp;gt; [YahooId]&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
5. The rest is same as YMSG9's post-auth (to our understanding)&lt;br /&gt;
&lt;br /&gt;
    a. After the initial LOGON packet and before the OIM packets, the server will also send ping configuration in the form of a &amp;quot;tick&amp;quot; and &amp;quot;tock&amp;quot; interval that the official client uses to send pings:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Service: \x00\x12 (PINGCONFIGURATION)&lt;br /&gt;
    &lt;br /&gt;
    Status: \x00\x00\x00\x00&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    Payload:&lt;br /&gt;
    &lt;br /&gt;
    '143' -&amp;gt; Tick interval (usually 60)&lt;br /&gt;
    '144' -&amp;gt; Tock interval (usually 13)&lt;br /&gt;
&lt;br /&gt;
== YMSG15 - 16 ==&lt;br /&gt;
We aren't certain what additions were specifically made in YMSG15 and YMSG16, however we do know that YMSG15 was used by Yahoo! Messenger for Vista, and we're under the assumption that that YMSG16 was used by Yahoo! Messenger 9.0&lt;br /&gt;
&lt;br /&gt;
=== Auth ===&lt;br /&gt;
1. (YMSG16 only)&lt;br /&gt;
&lt;br /&gt;
    a. Client gets vcs1.msg.yahoo.com/capacity, which responds with&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    COLO_CAPACITY=1&lt;br /&gt;
    CS_IP_ADDRESS=[IP address to YMSG server]&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    b. If COLO_CAPACITY is != 0, Y!M will try connecting to the specified IP.&lt;br /&gt;
&lt;br /&gt;
2. (Same as YMSG10-14 steps 1 to 3.)&lt;br /&gt;
&lt;br /&gt;
3. Server responds with:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Service: \x00\x57(W) (87; AUTH)&lt;br /&gt;
    &lt;br /&gt;
    Status: \x00\x00\x00\x00 (0; AVAILABLE)&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Payload:&lt;br /&gt;
      '1' -&amp;gt; [YahooId]&lt;br /&gt;
      '13' -&amp;gt; '2'&lt;br /&gt;
      '94' -&amp;gt; [mathematical expression-like challenge string (64 bytes without parentheses)] ('g|i/p^h&amp;amp;z-d+2%v%x&amp;amp;j|e+(m^k-i%h*(s+8%a/u/x*(b-4*i%h^g^j|m^n-r*f+p+j)))')&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
4. Now the client just sends that stuff over to an HTTPS auth server to do the heavy lifting at https://login.yahoo.com/config/pwtoken_get?src=ymsgr&amp;amp;ts=&amp;amp;login=[username]&amp;amp;passwd=[password]&amp;amp;chal=[challenge string]. If the password and Yahoo! ID are correct, the following response is returned:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    0&lt;br /&gt;
    ymsgr=[token]&lt;br /&gt;
    partnerid=[partnerid]&lt;br /&gt;
    &lt;br /&gt;
5. Client now grabs the token and GET requests https://login.yahoo.com/pwtoken_login?src=ymsgr&amp;amp;ts=&amp;amp;token=[token], which sets the Y, T, and B cookies, and replies with:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    0&lt;br /&gt;
    crumb=[crumb]&lt;br /&gt;
    Y=[Y cookie]&lt;br /&gt;
    T=[T cookie]&lt;br /&gt;
    cookievalidfor=86400 [a day in seconds]&lt;br /&gt;
    SSL=[SSL cookie]&lt;br /&gt;
    &lt;br /&gt;
if the token is correct.&lt;br /&gt;
&lt;br /&gt;
6. The client retrieves the Y, T, and B cookies, along with the crumb, and then does the following: concatenates the crumb and challenge string sent; MD5 hashes the concatenation; and finally Yahoo64 encodes the hash. Let's call the resulting data &amp;quot;response&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
7. The client finally responds with this humongous packet:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Service: \x00\x54(T) (84; AUTHRESP)&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Payload:&lt;br /&gt;
      &lt;br /&gt;
      '1' -&amp;gt; [YahooId]&lt;br /&gt;
      '0' -&amp;gt; [YahooId]&lt;br /&gt;
      '277' -&amp;gt; [Contents of the &amp;quot;Y&amp;quot; cookie]&lt;br /&gt;
      '278' -&amp;gt; [Contents of the &amp;quot;T&amp;quot; cookie]&lt;br /&gt;
      '307' -&amp;gt; [The &amp;quot;response&amp;quot; variable the client had crafted]&lt;br /&gt;
      '244' -&amp;gt; [The client's build ID]&lt;br /&gt;
      '2' -&amp;gt; [YahooId]&lt;br /&gt;
      '2' -&amp;gt; '1'&lt;br /&gt;
      '59' -&amp;gt; [Contents of the &amp;quot;B&amp;quot; cookie]&lt;br /&gt;
      '98' -&amp;gt; [Locale]&lt;br /&gt;
      '135' -&amp;gt; [Client version]&lt;br /&gt;
&lt;br /&gt;
[[Category:Protocols/YMSG]]&lt;br /&gt;
[[Category:YMSG]]&lt;/div&gt;</summary>
		<author><name>Bobsmith2</name></author>
	</entry>
	<entry>
		<id>https://wiki.nina.chat/index.php?title=Support/Extended_FAQ&amp;diff=8720</id>
		<title>Support/Extended FAQ</title>
		<link rel="alternate" type="text/html" href="https://wiki.nina.chat/index.php?title=Support/Extended_FAQ&amp;diff=8720"/>
		<updated>2024-12-04T18:57:17Z</updated>

		<summary type="html">&lt;p&gt;Bobsmith2: /* How many UINs or screennames can I register? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is for extended frequently asked questions beyond the [https://nina.chat/support/faq/ main website FAQ] to answer really specific questions that only come up once in a blue moon.&lt;br /&gt;
&lt;br /&gt;
=== Supporter Status ===&lt;br /&gt;
&lt;br /&gt;
==== How much do I pay for ICQ/AOL/WebEscargot access? ====&lt;br /&gt;
Check out the Rewards section [https://nina.chat/donate/ here] to see each tier, the donation amount required, and the benefits offered.&lt;br /&gt;
&lt;br /&gt;
==== What are PowerTools? ====&lt;br /&gt;
PowerTools is a set of premium features available exclusively to supporters. Think of it as our version of Discord Nitro or X Premium. Currently, it provides access to the Last Call chat room, but in the near future, it will unlock additional features and capabilities within AIM, ICQ, and more.&lt;br /&gt;
&lt;br /&gt;
==== How many UINs or screennames can I register? ====&lt;br /&gt;
Gamma gets you one UIN and one screenname (so one of each). If you join at the alpha tier (for AOL access as well) you can register 5 screennames.&lt;br /&gt;
&lt;br /&gt;
==== Can I donate on someone else's behalf? Can I donate for a friend? ====&lt;br /&gt;
&lt;br /&gt;
Yes, this is allowed, however that donation will never be applied to your account(s), no matter what happens between you and your friend. Our database will simply mark it as a donation from them.&lt;br /&gt;
&lt;br /&gt;
==== Can I transfer my supporter status to someone else? ====&lt;br /&gt;
No. This isn't, however, because of money. Instead it has to do with a few issues which are best demonstrated by a &amp;quot;hypothetical&amp;quot; situation:&lt;br /&gt;
&lt;br /&gt;
: Tina is an alpha tier supporter, but isn't interested in using the service anymore. So she wants her supporter status moved to Pat. That's easy enough, so it's done. One year later Tina returns and says &amp;quot;I was an alpha supporter, can I have that status back?&amp;quot; She genuinely doesn't remember giving the status to anyone else and because the original conversation about the issue is now gone, it can't be proven.&lt;br /&gt;
&lt;br /&gt;
As you can see it creates a few issues, the least of which it requires us to do additional tracking of where it was moved to. Tina technically did nothing wrong, she really doesn't remember giving it up, so she feels angry that we are now telling her she no longer had that status. It's just easier for us not to allow this. &lt;br /&gt;
&lt;br /&gt;
You can, however, still [[Support/Extended_FAQ#Can_I_donate_on_someone_else.27s_behalf.3F_Can_I_donate_for_a_friend.3F|donate on someone else's behalf]] and the finer details make it clear why that's still allowed.&lt;br /&gt;
&lt;br /&gt;
=== Escargot ===&lt;br /&gt;
&lt;br /&gt;
==== Is Escargot down right now? ====&lt;br /&gt;
No. If you didn't see an announcement then it's not down, it's an issue you have. Please see other support areas for further help.&lt;/div&gt;</summary>
		<author><name>Bobsmith2</name></author>
	</entry>
	<entry>
		<id>https://wiki.nina.chat/index.php?title=Template:Protocols/YMSG&amp;diff=8719</id>
		<title>Template:Protocols/YMSG</title>
		<link rel="alternate" type="text/html" href="https://wiki.nina.chat/index.php?title=Template:Protocols/YMSG&amp;diff=8719"/>
		<updated>2024-12-03T06:53:52Z</updated>

		<summary type="html">&lt;p&gt;Bobsmith2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;infobox&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;float: right; margin: 0 0 0.5em 0.5em; text-align:left; border: 1px solid #A5A29A; width:210px;&amp;quot;&lt;br /&gt;
| style=&amp;quot;font-size: 95%; text-align:center; color:#000000; background-color:#7A56AF&amp;quot; | [[Protocols/YMSG|&amp;lt;font size=4 color=#000000&amp;gt;'''YMSG Protocol'''&amp;lt;/font&amp;gt;]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Protocols/YMSG|Introduction]] &amp;amp;bull; [[Protocols/YMSG/Packet_Structure|Packet Structure]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Bobsmith2</name></author>
	</entry>
	<entry>
		<id>https://wiki.nina.chat/index.php?title=Template:Protocols/YMSG&amp;diff=8718</id>
		<title>Template:Protocols/YMSG</title>
		<link rel="alternate" type="text/html" href="https://wiki.nina.chat/index.php?title=Template:Protocols/YMSG&amp;diff=8718"/>
		<updated>2024-12-03T06:53:39Z</updated>

		<summary type="html">&lt;p&gt;Bobsmith2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;infobox&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;float: right; margin: 0 0 0.5em 0.5em; text-align:left; border: 1px solid #A5A29A; width:210px;&amp;quot;&lt;br /&gt;
| style=&amp;quot;font-size: 95%; text-align:center; color:#000000; background-color:#7A56AF&amp;quot; | [[Protocols/YMSG|&amp;lt;font size=4 color=#000000&amp;gt;'''YMSG Protocol'''&amp;lt;/font&amp;gt;]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Protocols/YMSG|Introduction]] &amp;amp;bull; [[Protocols/YMSG/Packet_Structure|Packet Structure]] &amp;amp;bull;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Bobsmith2</name></author>
	</entry>
	<entry>
		<id>https://wiki.nina.chat/index.php?title=Protocols/YMSG&amp;diff=8717</id>
		<title>Protocols/YMSG</title>
		<link rel="alternate" type="text/html" href="https://wiki.nina.chat/index.php?title=Protocols/YMSG&amp;diff=8717"/>
		<updated>2024-12-03T05:46:38Z</updated>

		<summary type="html">&lt;p&gt;Bobsmith2: /* YMSG15 - 16 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Protocols/YMSG}}&lt;br /&gt;
YMSG was the network protocol used by Yahoo! Messenger for almost everything, including login, messaging and presence. It was a proprietary, homegrown solution created at Yahoo.&lt;br /&gt;
&lt;br /&gt;
If you have anything to contribute, or can see an error to correct in any of the information here, do not hesitate to contribute. Instructions are on the main page of the wiki.&lt;br /&gt;
&lt;br /&gt;
== General structure ==&lt;br /&gt;
&lt;br /&gt;
YMSG packets are binary-based. They consist of a magic string, version code, vendor ID, packet length, service code, status code, session ID, and an optional payload.&lt;br /&gt;
&lt;br /&gt;
The first field in a YMSG packet is the magic string YMSG at offset 0x00, which is 4 bytes in length.&lt;br /&gt;
&lt;br /&gt;
The second field is the version number of the protocol the client wants to use for the current YMSG session packed as a short on offset 0x04, and is 2 bytes long. For server-side packets, this field is usually 0.&lt;br /&gt;
&lt;br /&gt;
The third field, on offset 0x06, is the vendor ID of the client connecting to the YMSG server, which is a 2-byte long short-packed number. Supported values for the vendor ID are 0 (\x00\x00; Windows/NULL) and 100 (\x00\x64; Macintosh). For server-side packets, this value is usually set to 0, but we are not sure of this yet. Prior to YMSG16, it was believed that the vendor ID was part of the version code, effectively making the version a DWORD.&lt;br /&gt;
&lt;br /&gt;
The fourth field is the length of the packet's payload packed as a short, which is located on offset 0x08 and is also 2 bytes long.&lt;br /&gt;
&lt;br /&gt;
The fifth field is the service code the packet requests the server to execute the payload with. It is located on offset 0x0a and is 2 bytes long. There are a variety of services that a YMSG packet can utilize, and it has been observed that Yahoo! Messenger can swap protocol versions, meaning that features can be used on YMSG protocol versions that initially didn't support those features. Whether this mean older clients can potentially receive packets with services not recognized by their understanding of the protocol version they use hasn't been confirmed.&lt;br /&gt;
&lt;br /&gt;
The sixth field is the status code, which is a packed DWORD located at offset 0x0c and is 4 bytes long. This status code doesn't correspond to the logged in user's status, and is moreso used as a subcommand for most packet services. Interestingly enough, most of the status code in YMSG packets corresponds to the status codes used for contact presence. During authentication, this is used to determine if the user wants to log in under invisible mode. There are 19 YMSG statuses (that we've recorded as of now) that may or may not be used for contact statuses:&lt;br /&gt;
&lt;br /&gt;
    AVAILABLE/REQUEST: 0x00000000&lt;br /&gt;
    BRB/RESPONSE: 0x00000001&lt;br /&gt;
    BUSY: 0x00000002&lt;br /&gt;
    NOTATHOME/BADUSERNAME: 0x00000003&lt;br /&gt;
    NOTATDESK: 0x00000004&lt;br /&gt;
    NOTINOFFICE/OFFLINEMSG/MULTIPACKET: 0x00000005&lt;br /&gt;
    ONPHONE: 0x00000006&lt;br /&gt;
    ONVACATION: 0x00000007&lt;br /&gt;
    OUTTOLUNCH: 0x00000008&lt;br /&gt;
    STEPPEDOUT: 0x00000009&lt;br /&gt;
    INVISIBLE: 0x0000000C&lt;br /&gt;
    BAD: 0x0000000D&lt;br /&gt;
    LOCKED: 0x0000000E&lt;br /&gt;
    TYPING: 0x00000016&lt;br /&gt;
    CUSTOM: 0x00000063&lt;br /&gt;
    IDLE: 0x000003E7&lt;br /&gt;
    WEBLOGIN: 0x5A55AA55&lt;br /&gt;
    OFFLINE: 0x5A55AA56&lt;br /&gt;
    LOGINERROR: 0xFFFFFFFF&lt;br /&gt;
&lt;br /&gt;
The seventh field is the session ID, which is also a packed DWORD. It is located at offset 0x10 and is also 4 bytes long. The purpose of this field is to identify sessions and to verify if a user has the greenlight to use the main YMSG services (anything after authentication). It is believed that the official YMSG servers verified the session ID after authentication, but there is no hard evidence of this being the case, considering YMSG by design didn't validate the payloads of most services.&lt;br /&gt;
&lt;br /&gt;
The eighth, optional field is the payload for the service the packet wants to request. The payload is located at offset 0x14 and is variable-length or null. If not null, payloads are formatted in a generic key/value format, with the key usually being numeric. The key and value are separated by the delimiter \xc0\x80. An example of this format is below:&lt;br /&gt;
&lt;br /&gt;
    1[\xc0\x80]yahoo.id[\xc0\x80]&lt;br /&gt;
&lt;br /&gt;
1 is the key and yahoo.id is the value of the key in this example.&lt;br /&gt;
&lt;br /&gt;
There is no limit to the amount of key/value pairs that can make up the payload, but due to the packet length in the packet's header being short-packed, the payload is limited to 65,535 bytes.&lt;br /&gt;
&lt;br /&gt;
== YMSG8 ==&lt;br /&gt;
&lt;br /&gt;
YMSG8 is the first known version of the protcol. Versions of Yahoo! Messenger 5.0 and below use it.&lt;br /&gt;
&lt;br /&gt;
=== Auth ===&lt;br /&gt;
&lt;br /&gt;
1. Client sends GET request to &lt;br /&gt;
&lt;br /&gt;
    http://msg.edit.yahoo.com/config/ncclogin?.src=bl&amp;amp;login=[username]&amp;amp;passwd=[password]&amp;amp;n=1&lt;br /&gt;
&lt;br /&gt;
2. Server responds with cookie Y and body:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    OK&lt;br /&gt;
    BEGIN BUDDYLIST&lt;br /&gt;
    [contact category]:[comma separated list of Yahoo! IDs associated with the contact category]&lt;br /&gt;
    END BUDDYLIST&lt;br /&gt;
    BEGIN IGNORELIST&lt;br /&gt;
    [comma separated list of Yahoo IDs in the user's ignore list]&lt;br /&gt;
    END IGNORELIST&lt;br /&gt;
    BEGIN IDENTITIES&lt;br /&gt;
    [comma-separated list of user's main and alternate usernames go here]&lt;br /&gt;
    END IDENTITIES&lt;br /&gt;
    Mail=1&lt;br /&gt;
    Login=[username]&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
3. Client opens a connection to a YMSG server via port 5050 and sends:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Service: \x00\x01 (LOGON)&lt;br /&gt;
    &lt;br /&gt;
    Status: \x5A\x55\xAA\x55 (WEBLOGON)&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    Payload:&lt;br /&gt;
      &lt;br /&gt;
      '0' -&amp;gt; [YahooId]&lt;br /&gt;
      '6' -&amp;gt; [md5-crypt(3)'d password]&lt;br /&gt;
      '1' -&amp;gt; [YahooId]&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4. If the verification of the password goes well, the server responds with:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Service: \x00\x01 (LOGON)&lt;br /&gt;
    &lt;br /&gt;
    Status: \x00\x00\x00\x00 (0; [AVAILABLE]/REQUEST)&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Payload:&lt;br /&gt;
    &lt;br /&gt;
      '0' -&amp;gt; [YahooId]&lt;br /&gt;
      '1' -&amp;gt; [YahooId]&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
== YMSG9 ==&lt;br /&gt;
&lt;br /&gt;
YMSG9 is the second revision of the protocol, used by Yahoo! Messenger versions 5.0 through 5.4.&lt;br /&gt;
&lt;br /&gt;
=== Auth ===&lt;br /&gt;
&lt;br /&gt;
1. Client opens a connection to a YMSG server via port 5050 and sends:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Service: \x00\x4C (76; HANDSHAKE)&lt;br /&gt;
    &lt;br /&gt;
    Status: \x00\x00\x00\x00 (0; AVAILABLE/[REQUEST])&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
2. Server responds with:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Service: \x00\x4C (76; HANDSHAKE)&lt;br /&gt;
    &lt;br /&gt;
    Status: \x00\x00\x00\x01 (1; BRB/[RESPONSE])&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
3. Client sends:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Service: \x00\x57 (87; AUTH)&lt;br /&gt;
    &lt;br /&gt;
    Status: \x00\x00\x00\x00 (0; AVAILABLE/[REQUEST])&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Payload:&lt;br /&gt;
    &lt;br /&gt;
      '1' -&amp;gt; [YahooId]&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
4. On successful verification of the username, the server responds with the following packet (this is also when the server generates the session ID the client should use for the whole server session):&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Service: \x00\x57 (87; AUTH)&lt;br /&gt;
    &lt;br /&gt;
    Status: \x00\x00\x00\x01 (1; BRB/[RESPONSE])&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Payload:&lt;br /&gt;
    &lt;br /&gt;
      '1' -&amp;gt; [YahooId]&lt;br /&gt;
      '94' -&amp;gt; [24-byte Yahoo64-encoded challenge string] ('AA.BBCCDDEEGGHHIIH_HII--')&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
5. The client then crafts two response strings with the challenge strings (details will be added onto later).&lt;br /&gt;
&lt;br /&gt;
6. After the client is done crafting the two response strings, the client responds with:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Service: \x00\x54 (54; AUTHRESP)&lt;br /&gt;
    &lt;br /&gt;
    Status: [Status the user wants to log in as; usually either AVAILABLE or INVISIBLE]&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Payload:&lt;br /&gt;
    &lt;br /&gt;
      '0' -&amp;gt; [YahooId]&lt;br /&gt;
      '6' -&amp;gt; [Challenge response string 1] ('AA.BBCCDDEEGGHHIIH_HII--')&lt;br /&gt;
      '96' -&amp;gt; [Challenge response string 2] ('AA.BBCCDDEEGGHHIIH_HII--')&lt;br /&gt;
      '2' -&amp;gt; '1'&lt;br /&gt;
      '1' -&amp;gt; [YahooId]&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
7. Server verifies the first and second response strings, and if all is well, responds with this:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Service: \x00\x55 (85; LIST)&lt;br /&gt;
    &lt;br /&gt;
    Status: \x00\x00\x00\x00&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Payload:&lt;br /&gt;
    &lt;br /&gt;
      '87' -&amp;gt; '[contact category]:[comma separated list of Yahoo! IDs associated with the contact category]\x0A'&lt;br /&gt;
      '88' -&amp;gt; [comma separated list of Yahoo IDs in the user's ignore list]&lt;br /&gt;
      '89' -&amp;gt; [comma-separated list of user's main and alternate usernames go here]&lt;br /&gt;
      '59' -&amp;gt; 'Y\x09[data of &amp;quot;Y&amp;quot; cookie]'&lt;br /&gt;
      '59' -&amp;gt; 'T\x09[data of &amp;quot;T&amp;quot; cookie]'&lt;br /&gt;
      '59' -&amp;gt; 'C\x09mg=1'&lt;br /&gt;
      '3' -&amp;gt; [YahooId]&lt;br /&gt;
      '100' -&amp;gt; '0'&lt;br /&gt;
      '101' -&amp;gt; (blank)&lt;br /&gt;
      '102' -&amp;gt; (blank)&lt;br /&gt;
      '93' -&amp;gt; '86400'&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    If the contact, ignore, or identity list were too large for the server's taste, then multiple LIST packets would be sent with status 0x00000005 (NOTINOFFICE) containing chunks of the key-value pair for one type of list each before sending the rest of the LIST packet. &lt;br /&gt;
&lt;br /&gt;
8. The server will also send you a LOGON packet containing structures of your contacts statuses and the number of them contained:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Service: \x00\x01 (LOGON)&lt;br /&gt;
    &lt;br /&gt;
    Status: \x00\x00\x00\x00&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    Payload:&lt;br /&gt;
    &lt;br /&gt;
      '0' -&amp;gt; [YahooId]&lt;br /&gt;
      '1' -&amp;gt; [YahooId]&lt;br /&gt;
      '8' -&amp;gt; # of contact structures&lt;br /&gt;
      --- This collection of key-value pairs are added times the number specified in key 8 ---&lt;br /&gt;
      '7' -&amp;gt; Contact's Yahoo ID&lt;br /&gt;
      '10' -&amp;gt; Contact's YMSG status in integer format (99 (CUSTOM) if using a PSM or 0 (AVAILABLE) if offline)&lt;br /&gt;
      '11' -&amp;gt; Contact's YMSG session ID in uppercase hexadecimal&lt;br /&gt;
      '19' -&amp;gt; Contact's PSM (key-value pair only included if status == 99 (CUSTOM))&lt;br /&gt;
      '47' -&amp;gt; Flag for if contact's PSM is an away message or not (key-value pair only included if status == 99 (CUSTOM))&lt;br /&gt;
      '17' -&amp;gt; Contact is online on Yahoo! Chat (1 for yes, 0 for no; apparently this was only set to 1 if you were on Yahoo Chat's own protocol)&lt;br /&gt;
      '13' -&amp;gt; Contact is online on Yahoo! Messenger service (1 for yes, 0 for no)&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
The responses detailed in 7 and 8 will also be sent if the client queries the LIST service itself.&lt;br /&gt;
&lt;br /&gt;
9. If any, the server will send packets containing the logged on user's OIMs (TODO: packet structure)&lt;br /&gt;
&lt;br /&gt;
=== Presence ===&lt;br /&gt;
&lt;br /&gt;
When a user logs on successfully, their status set in the AUTHRESP packet will automatically be dispatched to their contacts.&lt;br /&gt;
&lt;br /&gt;
When a user wants to change their status to something other than online (this includes going invisible), Yahoo! Messenger will send an ISAWAY packet containing the following info:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Service: \x00\x03 (ISAWAY)&lt;br /&gt;
    &lt;br /&gt;
    Status: 0x00000000 (0; AVAILABLE/[REQUEST])&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Payload:&lt;br /&gt;
  &lt;br /&gt;
      '10' -&amp;gt; Numerical YMSG status (99 for CUSTOM)&lt;br /&gt;
      '19' -&amp;gt; PSM (only included if status == 99)&lt;br /&gt;
      '47' -&amp;gt; Going away? (usually 1)&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
If a user wants to go back as online, the client will send this:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Service: \x00\x04 (ISBACK)&lt;br /&gt;
    &lt;br /&gt;
    Status: 0x00000000 (0; AVAILABLE/[REQUEST])&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Payload:&lt;br /&gt;
  &lt;br /&gt;
      (None)&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
No responses are sent to the user setting their status for either service.&lt;br /&gt;
&lt;br /&gt;
When contact statuses are dispatched to other users, the server sends the same contact structure with the appropriate info with various services depending on the status the remote contact is on:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    Service: Various (LOGON if remote contact status is &amp;quot;offline -&amp;gt; online&amp;quot;; ISAWAY if remote contact status is &amp;quot;any available (no PSM)/idle status -&amp;gt; any available (with PSM)/idle status&amp;quot;; ISBACK if remote contact status is &amp;quot;any available (with PSM)/idle status -&amp;gt; regular available (no PSM) status&amp;quot;)&lt;br /&gt;
    &lt;br /&gt;
    Status 0x00000001 (1; BRB/RESPONSE)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    Payload:&lt;br /&gt;
  &lt;br /&gt;
      '0' -&amp;gt; [Receiver's Yahoo ID] (only included if service != LOGOFF)&lt;br /&gt;
      '7' -&amp;gt; Contact's Yahoo ID&lt;br /&gt;
      '10' -&amp;gt; Contact's YMSG status in integer format (99 (CUSTOM) if using a PSM or 0 (AVAILABLE) if offline)&lt;br /&gt;
      '11' -&amp;gt; Contact's YMSG session ID in uppercase hexadecimal&lt;br /&gt;
      '19' -&amp;gt; Contact's PSM (key-value pair only included if status == 99 (CUSTOM))&lt;br /&gt;
      '47' -&amp;gt; Flag for if contact's PSM is an away message or not (key-value pair only included if status == 99 (CUSTOM))&lt;br /&gt;
      '17' -&amp;gt; Contact is online on Yahoo! Chat (1 for yes, 0 for no; apparently this was only set to 1 if you were on Yahoo Chat's own protocol)&lt;br /&gt;
      '13' -&amp;gt; Contact is online on Yahoo! Messenger service (1 for yes, 0 for no)&lt;br /&gt;
&lt;br /&gt;
== YMSG10 - 14 ==&lt;br /&gt;
We don't currently know what in specific was changed between each of these protocol versions.&lt;br /&gt;
&lt;br /&gt;
YMSG10 is used by Yahoo! Messenger 5.5&lt;br /&gt;
&lt;br /&gt;
YMSG11 is used by Yahoo! Messenger 5.6&lt;br /&gt;
&lt;br /&gt;
YMSG12 is used by Yahoo! Messenger 6.0&lt;br /&gt;
&lt;br /&gt;
We currently do not know what versions used YMSG13 or YMSG14&lt;br /&gt;
&lt;br /&gt;
=== Auth ===&lt;br /&gt;
&lt;br /&gt;
1. (Same as YMSG9 steps 1 to 3; in version 11 the version field is now in the correct (network) endianness).&lt;br /&gt;
2. Server responds with:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Service: \x00\x57(W) (87; AUTH)&lt;br /&gt;
&lt;br /&gt;
    Status: \x00\x00\x00\x01 (1; BRB/[RESPONSE])&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Payload:&lt;br /&gt;
    &lt;br /&gt;
      '1' -&amp;gt; [YahooId]&lt;br /&gt;
      '94' -&amp;gt; [mathematical expression-like challenge string (64 bytes without parentheses)] ('g|i/p^h&amp;amp;z-d+2%v%x&amp;amp;j|e+(m^k-i%h*(s+8%a/u/x*(b-4*i%h^g^j|m^n-r*f+p+j)))')&lt;br /&gt;
      '13' -&amp;gt; '1'&lt;br /&gt;
    &lt;br /&gt;
3. Other, more complicated stuff ensues: https://web.archive.org/web/20031206174432if_/http://venkydude.com:80/articles/yahooencription.htm.&lt;br /&gt;
&lt;br /&gt;
4. After crafting the two response strings, the client sends:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Service \x00\x57(W) (87; AUTH)&lt;br /&gt;
    &lt;br /&gt;
    Status: \x5A\x55\xAA\x55&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Payload:&lt;br /&gt;
    &lt;br /&gt;
      '6' -&amp;gt; [First response string consisting of comma and semicolon separated &amp;quot;X=YZ&amp;quot; values] ('X=7e,H=je,H=j7;m=Cj,H=Cc,E=33;Q=ml;H=37;F=gg;w=F5;')&lt;br /&gt;
      '96' -&amp;gt; [Second response string also consisting of comma and semicolon separated &amp;quot;X=YZ&amp;quot; values] ('N=ah,m=F1,m=3A,Q=A2;T=Al,Z=Ep,h=he,S=0o;r=1B,C=h2;')&lt;br /&gt;
      '0' -&amp;gt; [YahooId]&lt;br /&gt;
      '2' -&amp;gt; '1'&lt;br /&gt;
      '1' -&amp;gt; [YahooId]&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
5. The rest is same as YMSG9's post-auth (to our understanding)&lt;br /&gt;
&lt;br /&gt;
    a. After the initial LOGON packet and before the OIM packets, the server will also send ping configuration in the form of a &amp;quot;tick&amp;quot; and &amp;quot;tock&amp;quot; interval that the official client uses to send pings:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Service: \x00\x12 (PINGCONFIGURATION)&lt;br /&gt;
    &lt;br /&gt;
    Status: \x00\x00\x00\x00&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    Payload:&lt;br /&gt;
    &lt;br /&gt;
    '143' -&amp;gt; Tick interval (usually 60)&lt;br /&gt;
    '144' -&amp;gt; Tock interval (usually 13)&lt;br /&gt;
&lt;br /&gt;
== YMSG15 - 16 ==&lt;br /&gt;
We aren't certain what additions were specifically made in YMSG15 and YMSG16, however we do know that YMSG15 was used by Yahoo! Messenger for Vista, and we're under the assumption that that YMSG16 was used by Yahoo! Messenger 9.0&lt;br /&gt;
&lt;br /&gt;
=== Auth ===&lt;br /&gt;
1. (YMSG16 only)&lt;br /&gt;
&lt;br /&gt;
    a. Client gets vcs1.msg.yahoo.com/capacity, which responds with&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    COLO_CAPACITY=1&lt;br /&gt;
    CS_IP_ADDRESS=[IP address to YMSG server]&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    b. If COLO_CAPACITY is != 0, Y!M will try connecting to the specified IP.&lt;br /&gt;
&lt;br /&gt;
2. (Same as YMSG10-14 steps 1 to 3.)&lt;br /&gt;
&lt;br /&gt;
3. Server responds with:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Service: \x00\x57(W) (87; AUTH)&lt;br /&gt;
    &lt;br /&gt;
    Status: \x00\x00\x00\x00 (0; AVAILABLE)&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Payload:&lt;br /&gt;
      '1' -&amp;gt; [YahooId]&lt;br /&gt;
      '13' -&amp;gt; '2'&lt;br /&gt;
      '94' -&amp;gt; [mathematical expression-like challenge string (64 bytes without parentheses)] ('g|i/p^h&amp;amp;z-d+2%v%x&amp;amp;j|e+(m^k-i%h*(s+8%a/u/x*(b-4*i%h^g^j|m^n-r*f+p+j)))')&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
4. Now the client just sends that stuff over to an HTTPS auth server to do the heavy lifting at https://login.yahoo.com/config/pwtoken_get?src=ymsgr&amp;amp;ts=&amp;amp;login=[username]&amp;amp;passwd=[password]&amp;amp;chal=[challenge string]. If the password and Yahoo! ID are correct, the following response is returned:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    0&lt;br /&gt;
    ymsgr=[token]&lt;br /&gt;
    partnerid=[partnerid]&lt;br /&gt;
    &lt;br /&gt;
5. Client now grabs the token and GET requests https://login.yahoo.com/pwtoken_login?src=ymsgr&amp;amp;ts=&amp;amp;token=[token], which sets the Y, T, and B cookies, and replies with:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    0&lt;br /&gt;
    crumb=[crumb]&lt;br /&gt;
    Y=[Y cookie]&lt;br /&gt;
    T=[T cookie]&lt;br /&gt;
    cookievalidfor=86400 [a day in seconds]&lt;br /&gt;
    SSL=[SSL cookie]&lt;br /&gt;
    &lt;br /&gt;
if the token is correct.&lt;br /&gt;
&lt;br /&gt;
6. The client retrieves the Y, T, and B cookies, along with the crumb, and then does the following: concatenates the crumb and challenge string sent; MD5 hashes the concatenation; and finally Yahoo64 encodes the hash. Let's call the resulting data &amp;quot;response&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
7. The client finally responds with this humongous packet:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Service: \x00\x54(T) (84; AUTHRESP)&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Payload:&lt;br /&gt;
      &lt;br /&gt;
      '1' -&amp;gt; [YahooId]&lt;br /&gt;
      '0' -&amp;gt; [YahooId]&lt;br /&gt;
      '277' -&amp;gt; [Contents of the &amp;quot;Y&amp;quot; cookie]&lt;br /&gt;
      '278' -&amp;gt; [Contents of the &amp;quot;T&amp;quot; cookie]&lt;br /&gt;
      '307' -&amp;gt; [The &amp;quot;response&amp;quot; variable the client had crafted]&lt;br /&gt;
      '244' -&amp;gt; [The client's build ID]&lt;br /&gt;
      '2' -&amp;gt; [YahooId]&lt;br /&gt;
      '2' -&amp;gt; '1'&lt;br /&gt;
      '59' -&amp;gt; [Contents of the &amp;quot;B&amp;quot; cookie]&lt;br /&gt;
      '98' -&amp;gt; [Locale]&lt;br /&gt;
      '135' -&amp;gt; [Client version]&lt;/div&gt;</summary>
		<author><name>Bobsmith2</name></author>
	</entry>
	<entry>
		<id>https://wiki.nina.chat/index.php?title=Template:Protocols/YMSG&amp;diff=8716</id>
		<title>Template:Protocols/YMSG</title>
		<link rel="alternate" type="text/html" href="https://wiki.nina.chat/index.php?title=Template:Protocols/YMSG&amp;diff=8716"/>
		<updated>2024-12-03T05:37:44Z</updated>

		<summary type="html">&lt;p&gt;Bobsmith2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;infobox&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;float: right; margin: 0 0 0.5em 0.5em; text-align:left; border: 1px solid #A5A29A; width:210px;&amp;quot;&lt;br /&gt;
| style=&amp;quot;font-size: 95%; text-align:center; color:#000000; background-color:#7A56AF&amp;quot; | [[Protocols/OSCAR|&amp;lt;font size=4 color=#000000&amp;gt;'''YMSG Protocol'''&amp;lt;/font&amp;gt;]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Protocols/YMSG|Introduction]] &amp;amp;bull; [[Protocols/YMSG/Packet_Structure|Packet Structure]] &amp;amp;bull;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Bobsmith2</name></author>
	</entry>
	<entry>
		<id>https://wiki.nina.chat/index.php?title=Protocols/YMSG&amp;diff=8715</id>
		<title>Protocols/YMSG</title>
		<link rel="alternate" type="text/html" href="https://wiki.nina.chat/index.php?title=Protocols/YMSG&amp;diff=8715"/>
		<updated>2024-12-03T05:01:31Z</updated>

		<summary type="html">&lt;p&gt;Bobsmith2: /* YMSG15-16 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Protocols/YMSG}}&lt;br /&gt;
YMSG was the network protocol used by Yahoo! Messenger for almost everything, including login, messaging and presence. It was a proprietary, homegrown solution created at Yahoo.&lt;br /&gt;
&lt;br /&gt;
If you have anything to contribute, or can see an error to correct in any of the information here, do not hesitate to contribute. Instructions are on the main page of the wiki.&lt;br /&gt;
&lt;br /&gt;
== General structure ==&lt;br /&gt;
&lt;br /&gt;
YMSG packets are binary-based. They consist of a magic string, version code, vendor ID, packet length, service code, status code, session ID, and an optional payload.&lt;br /&gt;
&lt;br /&gt;
The first field in a YMSG packet is the magic string YMSG at offset 0x00, which is 4 bytes in length.&lt;br /&gt;
&lt;br /&gt;
The second field is the version number of the protocol the client wants to use for the current YMSG session packed as a short on offset 0x04, and is 2 bytes long. For server-side packets, this field is usually 0.&lt;br /&gt;
&lt;br /&gt;
The third field, on offset 0x06, is the vendor ID of the client connecting to the YMSG server, which is a 2-byte long short-packed number. Supported values for the vendor ID are 0 (\x00\x00; Windows/NULL) and 100 (\x00\x64; Macintosh). For server-side packets, this value is usually set to 0, but we are not sure of this yet. Prior to YMSG16, it was believed that the vendor ID was part of the version code, effectively making the version a DWORD.&lt;br /&gt;
&lt;br /&gt;
The fourth field is the length of the packet's payload packed as a short, which is located on offset 0x08 and is also 2 bytes long.&lt;br /&gt;
&lt;br /&gt;
The fifth field is the service code the packet requests the server to execute the payload with. It is located on offset 0x0a and is 2 bytes long. There are a variety of services that a YMSG packet can utilize, and it has been observed that Yahoo! Messenger can swap protocol versions, meaning that features can be used on YMSG protocol versions that initially didn't support those features. Whether this mean older clients can potentially receive packets with services not recognized by their understanding of the protocol version they use hasn't been confirmed.&lt;br /&gt;
&lt;br /&gt;
The sixth field is the status code, which is a packed DWORD located at offset 0x0c and is 4 bytes long. This status code doesn't correspond to the logged in user's status, and is moreso used as a subcommand for most packet services. Interestingly enough, most of the status code in YMSG packets corresponds to the status codes used for contact presence. During authentication, this is used to determine if the user wants to log in under invisible mode. There are 19 YMSG statuses (that we've recorded as of now) that may or may not be used for contact statuses:&lt;br /&gt;
&lt;br /&gt;
    AVAILABLE/REQUEST: 0x00000000&lt;br /&gt;
    BRB/RESPONSE: 0x00000001&lt;br /&gt;
    BUSY: 0x00000002&lt;br /&gt;
    NOTATHOME/BADUSERNAME: 0x00000003&lt;br /&gt;
    NOTATDESK: 0x00000004&lt;br /&gt;
    NOTINOFFICE/OFFLINEMSG/MULTIPACKET: 0x00000005&lt;br /&gt;
    ONPHONE: 0x00000006&lt;br /&gt;
    ONVACATION: 0x00000007&lt;br /&gt;
    OUTTOLUNCH: 0x00000008&lt;br /&gt;
    STEPPEDOUT: 0x00000009&lt;br /&gt;
    INVISIBLE: 0x0000000C&lt;br /&gt;
    BAD: 0x0000000D&lt;br /&gt;
    LOCKED: 0x0000000E&lt;br /&gt;
    TYPING: 0x00000016&lt;br /&gt;
    CUSTOM: 0x00000063&lt;br /&gt;
    IDLE: 0x000003E7&lt;br /&gt;
    WEBLOGIN: 0x5A55AA55&lt;br /&gt;
    OFFLINE: 0x5A55AA56&lt;br /&gt;
    LOGINERROR: 0xFFFFFFFF&lt;br /&gt;
&lt;br /&gt;
The seventh field is the session ID, which is also a packed DWORD. It is located at offset 0x10 and is also 4 bytes long. The purpose of this field is to identify sessions and to verify if a user has the greenlight to use the main YMSG services (anything after authentication). It is believed that the official YMSG servers verified the session ID after authentication, but there is no hard evidence of this being the case, considering YMSG by design didn't validate the payloads of most services.&lt;br /&gt;
&lt;br /&gt;
The eighth, optional field is the payload for the service the packet wants to request. The payload is located at offset 0x14 and is variable-length or null. If not null, payloads are formatted in a generic key/value format, with the key usually being numeric. The key and value are separated by the delimiter \xc0\x80. An example of this format is below:&lt;br /&gt;
&lt;br /&gt;
    1[\xc0\x80]yahoo.id[\xc0\x80]&lt;br /&gt;
&lt;br /&gt;
1 is the key and yahoo.id is the value of the key in this example.&lt;br /&gt;
&lt;br /&gt;
There is no limit to the amount of key/value pairs that can make up the payload, but due to the packet length in the packet's header being short-packed, the payload is limited to 65,535 bytes.&lt;br /&gt;
&lt;br /&gt;
== YMSG8 ==&lt;br /&gt;
&lt;br /&gt;
YMSG8 is the first known version of the protcol. Versions of Yahoo! Messenger 5.0 and below use it.&lt;br /&gt;
&lt;br /&gt;
=== Auth ===&lt;br /&gt;
&lt;br /&gt;
1. Client sends GET request to &lt;br /&gt;
&lt;br /&gt;
    http://msg.edit.yahoo.com/config/ncclogin?.src=bl&amp;amp;login=[username]&amp;amp;passwd=[password]&amp;amp;n=1&lt;br /&gt;
&lt;br /&gt;
2. Server responds with cookie Y and body:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    OK&lt;br /&gt;
    BEGIN BUDDYLIST&lt;br /&gt;
    [contact category]:[comma separated list of Yahoo! IDs associated with the contact category]&lt;br /&gt;
    END BUDDYLIST&lt;br /&gt;
    BEGIN IGNORELIST&lt;br /&gt;
    [comma separated list of Yahoo IDs in the user's ignore list]&lt;br /&gt;
    END IGNORELIST&lt;br /&gt;
    BEGIN IDENTITIES&lt;br /&gt;
    [comma-separated list of user's main and alternate usernames go here]&lt;br /&gt;
    END IDENTITIES&lt;br /&gt;
    Mail=1&lt;br /&gt;
    Login=[username]&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
3. Client opens a connection to a YMSG server via port 5050 and sends:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Service: \x00\x01 (LOGON)&lt;br /&gt;
    &lt;br /&gt;
    Status: \x5A\x55\xAA\x55 (WEBLOGON)&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    Payload:&lt;br /&gt;
      &lt;br /&gt;
      '0' -&amp;gt; [YahooId]&lt;br /&gt;
      '6' -&amp;gt; [md5-crypt(3)'d password]&lt;br /&gt;
      '1' -&amp;gt; [YahooId]&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4. If the verification of the password goes well, the server responds with:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Service: \x00\x01 (LOGON)&lt;br /&gt;
    &lt;br /&gt;
    Status: \x00\x00\x00\x00 (0; [AVAILABLE]/REQUEST)&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Payload:&lt;br /&gt;
    &lt;br /&gt;
      '0' -&amp;gt; [YahooId]&lt;br /&gt;
      '1' -&amp;gt; [YahooId]&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
== YMSG9 ==&lt;br /&gt;
&lt;br /&gt;
YMSG9 is the second revision of the protocol, used by Yahoo! Messenger versions 5.0 through 5.4.&lt;br /&gt;
&lt;br /&gt;
=== Auth ===&lt;br /&gt;
&lt;br /&gt;
1. Client opens a connection to a YMSG server via port 5050 and sends:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Service: \x00\x4C (76; HANDSHAKE)&lt;br /&gt;
    &lt;br /&gt;
    Status: \x00\x00\x00\x00 (0; AVAILABLE/[REQUEST])&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
2. Server responds with:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Service: \x00\x4C (76; HANDSHAKE)&lt;br /&gt;
    &lt;br /&gt;
    Status: \x00\x00\x00\x01 (1; BRB/[RESPONSE])&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
3. Client sends:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Service: \x00\x57 (87; AUTH)&lt;br /&gt;
    &lt;br /&gt;
    Status: \x00\x00\x00\x00 (0; AVAILABLE/[REQUEST])&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Payload:&lt;br /&gt;
    &lt;br /&gt;
      '1' -&amp;gt; [YahooId]&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
4. On successful verification of the username, the server responds with the following packet (this is also when the server generates the session ID the client should use for the whole server session):&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Service: \x00\x57 (87; AUTH)&lt;br /&gt;
    &lt;br /&gt;
    Status: \x00\x00\x00\x01 (1; BRB/[RESPONSE])&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Payload:&lt;br /&gt;
    &lt;br /&gt;
      '1' -&amp;gt; [YahooId]&lt;br /&gt;
      '94' -&amp;gt; [24-byte Yahoo64-encoded challenge string] ('AA.BBCCDDEEGGHHIIH_HII--')&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
5. The client then crafts two response strings with the challenge strings (details will be added onto later).&lt;br /&gt;
&lt;br /&gt;
6. After the client is done crafting the two response strings, the client responds with:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Service: \x00\x54 (54; AUTHRESP)&lt;br /&gt;
    &lt;br /&gt;
    Status: [Status the user wants to log in as; usually either AVAILABLE or INVISIBLE]&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Payload:&lt;br /&gt;
    &lt;br /&gt;
      '0' -&amp;gt; [YahooId]&lt;br /&gt;
      '6' -&amp;gt; [Challenge response string 1] ('AA.BBCCDDEEGGHHIIH_HII--')&lt;br /&gt;
      '96' -&amp;gt; [Challenge response string 2] ('AA.BBCCDDEEGGHHIIH_HII--')&lt;br /&gt;
      '2' -&amp;gt; '1'&lt;br /&gt;
      '1' -&amp;gt; [YahooId]&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
7. Server verifies the first and second response strings, and if all is well, responds with this:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Service: \x00\x55 (85; LIST)&lt;br /&gt;
    &lt;br /&gt;
    Status: \x00\x00\x00\x00&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Payload:&lt;br /&gt;
    &lt;br /&gt;
      '87' -&amp;gt; '[contact category]:[comma separated list of Yahoo! IDs associated with the contact category]\x0A'&lt;br /&gt;
      '88' -&amp;gt; [comma separated list of Yahoo IDs in the user's ignore list]&lt;br /&gt;
      '89' -&amp;gt; [comma-separated list of user's main and alternate usernames go here]&lt;br /&gt;
      '59' -&amp;gt; 'Y\x09[data of &amp;quot;Y&amp;quot; cookie]'&lt;br /&gt;
      '59' -&amp;gt; 'T\x09[data of &amp;quot;T&amp;quot; cookie]'&lt;br /&gt;
      '59' -&amp;gt; 'C\x09mg=1'&lt;br /&gt;
      '3' -&amp;gt; [YahooId]&lt;br /&gt;
      '100' -&amp;gt; '0'&lt;br /&gt;
      '101' -&amp;gt; (blank)&lt;br /&gt;
      '102' -&amp;gt; (blank)&lt;br /&gt;
      '93' -&amp;gt; '86400'&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    If the contact, ignore, or identity list were too large for the server's taste, then multiple LIST packets would be sent with status 0x00000005 (NOTINOFFICE) containing chunks of the key-value pair for one type of list each before sending the rest of the LIST packet. &lt;br /&gt;
&lt;br /&gt;
8. The server will also send you a LOGON packet containing structures of your contacts statuses and the number of them contained:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Service: \x00\x01 (LOGON)&lt;br /&gt;
    &lt;br /&gt;
    Status: \x00\x00\x00\x00&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    Payload:&lt;br /&gt;
    &lt;br /&gt;
      '0' -&amp;gt; [YahooId]&lt;br /&gt;
      '1' -&amp;gt; [YahooId]&lt;br /&gt;
      '8' -&amp;gt; # of contact structures&lt;br /&gt;
      --- This collection of key-value pairs are added times the number specified in key 8 ---&lt;br /&gt;
      '7' -&amp;gt; Contact's Yahoo ID&lt;br /&gt;
      '10' -&amp;gt; Contact's YMSG status in integer format (99 (CUSTOM) if using a PSM or 0 (AVAILABLE) if offline)&lt;br /&gt;
      '11' -&amp;gt; Contact's YMSG session ID in uppercase hexadecimal&lt;br /&gt;
      '19' -&amp;gt; Contact's PSM (key-value pair only included if status == 99 (CUSTOM))&lt;br /&gt;
      '47' -&amp;gt; Flag for if contact's PSM is an away message or not (key-value pair only included if status == 99 (CUSTOM))&lt;br /&gt;
      '17' -&amp;gt; Contact is online on Yahoo! Chat (1 for yes, 0 for no; apparently this was only set to 1 if you were on Yahoo Chat's own protocol)&lt;br /&gt;
      '13' -&amp;gt; Contact is online on Yahoo! Messenger service (1 for yes, 0 for no)&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
The responses detailed in 7 and 8 will also be sent if the client queries the LIST service itself.&lt;br /&gt;
&lt;br /&gt;
9. If any, the server will send packets containing the logged on user's OIMs (TODO: packet structure)&lt;br /&gt;
&lt;br /&gt;
=== Presence ===&lt;br /&gt;
&lt;br /&gt;
When a user logs on successfully, their status set in the AUTHRESP packet will automatically be dispatched to their contacts.&lt;br /&gt;
&lt;br /&gt;
When a user wants to change their status to something other than online (this includes going invisible), Yahoo! Messenger will send an ISAWAY packet containing the following info:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Service: \x00\x03 (ISAWAY)&lt;br /&gt;
    &lt;br /&gt;
    Status: 0x00000000 (0; AVAILABLE/[REQUEST])&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Payload:&lt;br /&gt;
  &lt;br /&gt;
      '10' -&amp;gt; Numerical YMSG status (99 for CUSTOM)&lt;br /&gt;
      '19' -&amp;gt; PSM (only included if status == 99)&lt;br /&gt;
      '47' -&amp;gt; Going away? (usually 1)&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
If a user wants to go back as online, the client will send this:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Service: \x00\x04 (ISBACK)&lt;br /&gt;
    &lt;br /&gt;
    Status: 0x00000000 (0; AVAILABLE/[REQUEST])&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Payload:&lt;br /&gt;
  &lt;br /&gt;
      (None)&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
No responses are sent to the user setting their status for either service.&lt;br /&gt;
&lt;br /&gt;
When contact statuses are dispatched to other users, the server sends the same contact structure with the appropriate info with various services depending on the status the remote contact is on:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    Service: Various (LOGON if remote contact status is &amp;quot;offline -&amp;gt; online&amp;quot;; ISAWAY if remote contact status is &amp;quot;any available (no PSM)/idle status -&amp;gt; any available (with PSM)/idle status&amp;quot;; ISBACK if remote contact status is &amp;quot;any available (with PSM)/idle status -&amp;gt; regular available (no PSM) status&amp;quot;)&lt;br /&gt;
    &lt;br /&gt;
    Status 0x00000001 (1; BRB/RESPONSE)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    Payload:&lt;br /&gt;
  &lt;br /&gt;
      '0' -&amp;gt; [Receiver's Yahoo ID] (only included if service != LOGOFF)&lt;br /&gt;
      '7' -&amp;gt; Contact's Yahoo ID&lt;br /&gt;
      '10' -&amp;gt; Contact's YMSG status in integer format (99 (CUSTOM) if using a PSM or 0 (AVAILABLE) if offline)&lt;br /&gt;
      '11' -&amp;gt; Contact's YMSG session ID in uppercase hexadecimal&lt;br /&gt;
      '19' -&amp;gt; Contact's PSM (key-value pair only included if status == 99 (CUSTOM))&lt;br /&gt;
      '47' -&amp;gt; Flag for if contact's PSM is an away message or not (key-value pair only included if status == 99 (CUSTOM))&lt;br /&gt;
      '17' -&amp;gt; Contact is online on Yahoo! Chat (1 for yes, 0 for no; apparently this was only set to 1 if you were on Yahoo Chat's own protocol)&lt;br /&gt;
      '13' -&amp;gt; Contact is online on Yahoo! Messenger service (1 for yes, 0 for no)&lt;br /&gt;
&lt;br /&gt;
== YMSG10 - 14 ==&lt;br /&gt;
We don't currently know what in specific was changed between each of these protocol versions.&lt;br /&gt;
&lt;br /&gt;
YMSG10 is used by Yahoo! Messenger 5.5&lt;br /&gt;
&lt;br /&gt;
YMSG11 is used by Yahoo! Messenger 5.6&lt;br /&gt;
&lt;br /&gt;
YMSG12 is used by Yahoo! Messenger 6.0&lt;br /&gt;
&lt;br /&gt;
We currently do not know what versions used YMSG13 or YMSG14&lt;br /&gt;
&lt;br /&gt;
=== Auth ===&lt;br /&gt;
&lt;br /&gt;
1. (Same as YMSG9 steps 1 to 3; in version 11 the version field is now in the correct (network) endianness).&lt;br /&gt;
2. Server responds with:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Service: \x00\x57(W) (87; AUTH)&lt;br /&gt;
&lt;br /&gt;
    Status: \x00\x00\x00\x01 (1; BRB/[RESPONSE])&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Payload:&lt;br /&gt;
    &lt;br /&gt;
      '1' -&amp;gt; [YahooId]&lt;br /&gt;
      '94' -&amp;gt; [mathematical expression-like challenge string (64 bytes without parentheses)] ('g|i/p^h&amp;amp;z-d+2%v%x&amp;amp;j|e+(m^k-i%h*(s+8%a/u/x*(b-4*i%h^g^j|m^n-r*f+p+j)))')&lt;br /&gt;
      '13' -&amp;gt; '1'&lt;br /&gt;
    &lt;br /&gt;
3. Other, more complicated stuff ensues: https://web.archive.org/web/20031206174432if_/http://venkydude.com:80/articles/yahooencription.htm.&lt;br /&gt;
&lt;br /&gt;
4. After crafting the two response strings, the client sends:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Service \x00\x57(W) (87; AUTH)&lt;br /&gt;
    &lt;br /&gt;
    Status: \x5A\x55\xAA\x55&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Payload:&lt;br /&gt;
    &lt;br /&gt;
      '6' -&amp;gt; [First response string consisting of comma and semicolon separated &amp;quot;X=YZ&amp;quot; values] ('X=7e,H=je,H=j7;m=Cj,H=Cc,E=33;Q=ml;H=37;F=gg;w=F5;')&lt;br /&gt;
      '96' -&amp;gt; [Second response string also consisting of comma and semicolon separated &amp;quot;X=YZ&amp;quot; values] ('N=ah,m=F1,m=3A,Q=A2;T=Al,Z=Ep,h=he,S=0o;r=1B,C=h2;')&lt;br /&gt;
      '0' -&amp;gt; [YahooId]&lt;br /&gt;
      '2' -&amp;gt; '1'&lt;br /&gt;
      '1' -&amp;gt; [YahooId]&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
5. The rest is same as YMSG9's post-auth (to our understanding)&lt;br /&gt;
&lt;br /&gt;
    a. After the initial LOGON packet and before the OIM packets, the server will also send ping configuration in the form of a &amp;quot;tick&amp;quot; and &amp;quot;tock&amp;quot; interval that the official client uses to send pings:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Service: \x00\x12 (PINGCONFIGURATION)&lt;br /&gt;
    &lt;br /&gt;
    Status: \x00\x00\x00\x00&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    Payload:&lt;br /&gt;
    &lt;br /&gt;
    '143' -&amp;gt; Tick interval (usually 60)&lt;br /&gt;
    '144' -&amp;gt; Tock interval (usually 13)&lt;br /&gt;
&lt;br /&gt;
== YMSG15 - 16 ==&lt;br /&gt;
As before, we are not certain what clients specifically used YMSG15 and YMSG16&lt;br /&gt;
&lt;br /&gt;
We're under the assumption YMSG15 was used by Yahoo! Messenger 8.0, and that YMSG16 was used by Yahoo! Messenger 9.0&lt;br /&gt;
&lt;br /&gt;
1. (YMSG16 only)&lt;br /&gt;
&lt;br /&gt;
    a. Client gets vcs1.msg.yahoo.com/capacity, which responds with&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    COLO_CAPACITY=1&lt;br /&gt;
    CS_IP_ADDRESS=[IP address to YMSG server]&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    b. If COLO_CAPACITY is != 0, Y!M will try connecting to the specified IP.&lt;br /&gt;
&lt;br /&gt;
2. (Same as YMSG10-14 steps 1 to 3.)&lt;br /&gt;
&lt;br /&gt;
3. Server responds with:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Service: \x00\x57(W) (87; AUTH)&lt;br /&gt;
    &lt;br /&gt;
    Status: \x00\x00\x00\x00 (0; AVAILABLE)&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Payload:&lt;br /&gt;
      '1' -&amp;gt; [YahooId]&lt;br /&gt;
      '13' -&amp;gt; '2'&lt;br /&gt;
      '94' -&amp;gt; [mathematical expression-like challenge string (64 bytes without parentheses)] ('g|i/p^h&amp;amp;z-d+2%v%x&amp;amp;j|e+(m^k-i%h*(s+8%a/u/x*(b-4*i%h^g^j|m^n-r*f+p+j)))')&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
4. Now the client just sends that stuff over to an HTTPS auth server to do the heavy lifting at https://login.yahoo.com/config/pwtoken_get?src=ymsgr&amp;amp;ts=&amp;amp;login=[username]&amp;amp;passwd=[password]&amp;amp;chal=[challenge string]. If the password and Yahoo! ID are correct, the following response is returned:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    0&lt;br /&gt;
    ymsgr=[token]&lt;br /&gt;
    partnerid=[partnerid]&lt;br /&gt;
    &lt;br /&gt;
5. Client now grabs the token and GET requests https://login.yahoo.com/pwtoken_login?src=ymsgr&amp;amp;ts=&amp;amp;token=[token], which sets the Y, T, and B cookies, and replies with:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    0&lt;br /&gt;
    crumb=[crumb]&lt;br /&gt;
    Y=[Y cookie]&lt;br /&gt;
    T=[T cookie]&lt;br /&gt;
    cookievalidfor=86400 [a day in seconds]&lt;br /&gt;
    SSL=[SSL cookie]&lt;br /&gt;
    &lt;br /&gt;
if the token is correct.&lt;br /&gt;
&lt;br /&gt;
6. The client retrieves the Y, T, and B cookies, along with the crumb, and then does the following: concatenates the crumb and challenge string sent; MD5 hashes the concatenation; and finally Yahoo64 encodes the hash. Let's call the resulting data &amp;quot;response&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
7. The client finally responds with this humongous packet:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Service: \x00\x54(T) (84; AUTHRESP)&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Payload:&lt;br /&gt;
      &lt;br /&gt;
      '1' -&amp;gt; [YahooId]&lt;br /&gt;
      '0' -&amp;gt; [YahooId]&lt;br /&gt;
      '277' -&amp;gt; [Contents of the &amp;quot;Y&amp;quot; cookie]&lt;br /&gt;
      '278' -&amp;gt; [Contents of the &amp;quot;T&amp;quot; cookie]&lt;br /&gt;
      '307' -&amp;gt; [The &amp;quot;response&amp;quot; variable the client had crafted]&lt;br /&gt;
      '244' -&amp;gt; [The client's build ID]&lt;br /&gt;
      '2' -&amp;gt; [YahooId]&lt;br /&gt;
      '2' -&amp;gt; '1'&lt;br /&gt;
      '59' -&amp;gt; [Contents of the &amp;quot;B&amp;quot; cookie]&lt;br /&gt;
      '98' -&amp;gt; [Locale]&lt;br /&gt;
      '135' -&amp;gt; [Client version]&lt;/div&gt;</summary>
		<author><name>Bobsmith2</name></author>
	</entry>
	<entry>
		<id>https://wiki.nina.chat/index.php?title=Protocols/YMSG&amp;diff=8714</id>
		<title>Protocols/YMSG</title>
		<link rel="alternate" type="text/html" href="https://wiki.nina.chat/index.php?title=Protocols/YMSG&amp;diff=8714"/>
		<updated>2024-12-03T05:01:12Z</updated>

		<summary type="html">&lt;p&gt;Bobsmith2: /* YMSG10 - 14(?) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Protocols/YMSG}}&lt;br /&gt;
YMSG was the network protocol used by Yahoo! Messenger for almost everything, including login, messaging and presence. It was a proprietary, homegrown solution created at Yahoo.&lt;br /&gt;
&lt;br /&gt;
If you have anything to contribute, or can see an error to correct in any of the information here, do not hesitate to contribute. Instructions are on the main page of the wiki.&lt;br /&gt;
&lt;br /&gt;
== General structure ==&lt;br /&gt;
&lt;br /&gt;
YMSG packets are binary-based. They consist of a magic string, version code, vendor ID, packet length, service code, status code, session ID, and an optional payload.&lt;br /&gt;
&lt;br /&gt;
The first field in a YMSG packet is the magic string YMSG at offset 0x00, which is 4 bytes in length.&lt;br /&gt;
&lt;br /&gt;
The second field is the version number of the protocol the client wants to use for the current YMSG session packed as a short on offset 0x04, and is 2 bytes long. For server-side packets, this field is usually 0.&lt;br /&gt;
&lt;br /&gt;
The third field, on offset 0x06, is the vendor ID of the client connecting to the YMSG server, which is a 2-byte long short-packed number. Supported values for the vendor ID are 0 (\x00\x00; Windows/NULL) and 100 (\x00\x64; Macintosh). For server-side packets, this value is usually set to 0, but we are not sure of this yet. Prior to YMSG16, it was believed that the vendor ID was part of the version code, effectively making the version a DWORD.&lt;br /&gt;
&lt;br /&gt;
The fourth field is the length of the packet's payload packed as a short, which is located on offset 0x08 and is also 2 bytes long.&lt;br /&gt;
&lt;br /&gt;
The fifth field is the service code the packet requests the server to execute the payload with. It is located on offset 0x0a and is 2 bytes long. There are a variety of services that a YMSG packet can utilize, and it has been observed that Yahoo! Messenger can swap protocol versions, meaning that features can be used on YMSG protocol versions that initially didn't support those features. Whether this mean older clients can potentially receive packets with services not recognized by their understanding of the protocol version they use hasn't been confirmed.&lt;br /&gt;
&lt;br /&gt;
The sixth field is the status code, which is a packed DWORD located at offset 0x0c and is 4 bytes long. This status code doesn't correspond to the logged in user's status, and is moreso used as a subcommand for most packet services. Interestingly enough, most of the status code in YMSG packets corresponds to the status codes used for contact presence. During authentication, this is used to determine if the user wants to log in under invisible mode. There are 19 YMSG statuses (that we've recorded as of now) that may or may not be used for contact statuses:&lt;br /&gt;
&lt;br /&gt;
    AVAILABLE/REQUEST: 0x00000000&lt;br /&gt;
    BRB/RESPONSE: 0x00000001&lt;br /&gt;
    BUSY: 0x00000002&lt;br /&gt;
    NOTATHOME/BADUSERNAME: 0x00000003&lt;br /&gt;
    NOTATDESK: 0x00000004&lt;br /&gt;
    NOTINOFFICE/OFFLINEMSG/MULTIPACKET: 0x00000005&lt;br /&gt;
    ONPHONE: 0x00000006&lt;br /&gt;
    ONVACATION: 0x00000007&lt;br /&gt;
    OUTTOLUNCH: 0x00000008&lt;br /&gt;
    STEPPEDOUT: 0x00000009&lt;br /&gt;
    INVISIBLE: 0x0000000C&lt;br /&gt;
    BAD: 0x0000000D&lt;br /&gt;
    LOCKED: 0x0000000E&lt;br /&gt;
    TYPING: 0x00000016&lt;br /&gt;
    CUSTOM: 0x00000063&lt;br /&gt;
    IDLE: 0x000003E7&lt;br /&gt;
    WEBLOGIN: 0x5A55AA55&lt;br /&gt;
    OFFLINE: 0x5A55AA56&lt;br /&gt;
    LOGINERROR: 0xFFFFFFFF&lt;br /&gt;
&lt;br /&gt;
The seventh field is the session ID, which is also a packed DWORD. It is located at offset 0x10 and is also 4 bytes long. The purpose of this field is to identify sessions and to verify if a user has the greenlight to use the main YMSG services (anything after authentication). It is believed that the official YMSG servers verified the session ID after authentication, but there is no hard evidence of this being the case, considering YMSG by design didn't validate the payloads of most services.&lt;br /&gt;
&lt;br /&gt;
The eighth, optional field is the payload for the service the packet wants to request. The payload is located at offset 0x14 and is variable-length or null. If not null, payloads are formatted in a generic key/value format, with the key usually being numeric. The key and value are separated by the delimiter \xc0\x80. An example of this format is below:&lt;br /&gt;
&lt;br /&gt;
    1[\xc0\x80]yahoo.id[\xc0\x80]&lt;br /&gt;
&lt;br /&gt;
1 is the key and yahoo.id is the value of the key in this example.&lt;br /&gt;
&lt;br /&gt;
There is no limit to the amount of key/value pairs that can make up the payload, but due to the packet length in the packet's header being short-packed, the payload is limited to 65,535 bytes.&lt;br /&gt;
&lt;br /&gt;
== YMSG8 ==&lt;br /&gt;
&lt;br /&gt;
YMSG8 is the first known version of the protcol. Versions of Yahoo! Messenger 5.0 and below use it.&lt;br /&gt;
&lt;br /&gt;
=== Auth ===&lt;br /&gt;
&lt;br /&gt;
1. Client sends GET request to &lt;br /&gt;
&lt;br /&gt;
    http://msg.edit.yahoo.com/config/ncclogin?.src=bl&amp;amp;login=[username]&amp;amp;passwd=[password]&amp;amp;n=1&lt;br /&gt;
&lt;br /&gt;
2. Server responds with cookie Y and body:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    OK&lt;br /&gt;
    BEGIN BUDDYLIST&lt;br /&gt;
    [contact category]:[comma separated list of Yahoo! IDs associated with the contact category]&lt;br /&gt;
    END BUDDYLIST&lt;br /&gt;
    BEGIN IGNORELIST&lt;br /&gt;
    [comma separated list of Yahoo IDs in the user's ignore list]&lt;br /&gt;
    END IGNORELIST&lt;br /&gt;
    BEGIN IDENTITIES&lt;br /&gt;
    [comma-separated list of user's main and alternate usernames go here]&lt;br /&gt;
    END IDENTITIES&lt;br /&gt;
    Mail=1&lt;br /&gt;
    Login=[username]&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
3. Client opens a connection to a YMSG server via port 5050 and sends:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Service: \x00\x01 (LOGON)&lt;br /&gt;
    &lt;br /&gt;
    Status: \x5A\x55\xAA\x55 (WEBLOGON)&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    Payload:&lt;br /&gt;
      &lt;br /&gt;
      '0' -&amp;gt; [YahooId]&lt;br /&gt;
      '6' -&amp;gt; [md5-crypt(3)'d password]&lt;br /&gt;
      '1' -&amp;gt; [YahooId]&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4. If the verification of the password goes well, the server responds with:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Service: \x00\x01 (LOGON)&lt;br /&gt;
    &lt;br /&gt;
    Status: \x00\x00\x00\x00 (0; [AVAILABLE]/REQUEST)&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Payload:&lt;br /&gt;
    &lt;br /&gt;
      '0' -&amp;gt; [YahooId]&lt;br /&gt;
      '1' -&amp;gt; [YahooId]&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
== YMSG9 ==&lt;br /&gt;
&lt;br /&gt;
YMSG9 is the second revision of the protocol, used by Yahoo! Messenger versions 5.0 through 5.4.&lt;br /&gt;
&lt;br /&gt;
=== Auth ===&lt;br /&gt;
&lt;br /&gt;
1. Client opens a connection to a YMSG server via port 5050 and sends:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Service: \x00\x4C (76; HANDSHAKE)&lt;br /&gt;
    &lt;br /&gt;
    Status: \x00\x00\x00\x00 (0; AVAILABLE/[REQUEST])&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
2. Server responds with:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Service: \x00\x4C (76; HANDSHAKE)&lt;br /&gt;
    &lt;br /&gt;
    Status: \x00\x00\x00\x01 (1; BRB/[RESPONSE])&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
3. Client sends:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Service: \x00\x57 (87; AUTH)&lt;br /&gt;
    &lt;br /&gt;
    Status: \x00\x00\x00\x00 (0; AVAILABLE/[REQUEST])&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Payload:&lt;br /&gt;
    &lt;br /&gt;
      '1' -&amp;gt; [YahooId]&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
4. On successful verification of the username, the server responds with the following packet (this is also when the server generates the session ID the client should use for the whole server session):&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Service: \x00\x57 (87; AUTH)&lt;br /&gt;
    &lt;br /&gt;
    Status: \x00\x00\x00\x01 (1; BRB/[RESPONSE])&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Payload:&lt;br /&gt;
    &lt;br /&gt;
      '1' -&amp;gt; [YahooId]&lt;br /&gt;
      '94' -&amp;gt; [24-byte Yahoo64-encoded challenge string] ('AA.BBCCDDEEGGHHIIH_HII--')&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
5. The client then crafts two response strings with the challenge strings (details will be added onto later).&lt;br /&gt;
&lt;br /&gt;
6. After the client is done crafting the two response strings, the client responds with:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Service: \x00\x54 (54; AUTHRESP)&lt;br /&gt;
    &lt;br /&gt;
    Status: [Status the user wants to log in as; usually either AVAILABLE or INVISIBLE]&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Payload:&lt;br /&gt;
    &lt;br /&gt;
      '0' -&amp;gt; [YahooId]&lt;br /&gt;
      '6' -&amp;gt; [Challenge response string 1] ('AA.BBCCDDEEGGHHIIH_HII--')&lt;br /&gt;
      '96' -&amp;gt; [Challenge response string 2] ('AA.BBCCDDEEGGHHIIH_HII--')&lt;br /&gt;
      '2' -&amp;gt; '1'&lt;br /&gt;
      '1' -&amp;gt; [YahooId]&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
7. Server verifies the first and second response strings, and if all is well, responds with this:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Service: \x00\x55 (85; LIST)&lt;br /&gt;
    &lt;br /&gt;
    Status: \x00\x00\x00\x00&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Payload:&lt;br /&gt;
    &lt;br /&gt;
      '87' -&amp;gt; '[contact category]:[comma separated list of Yahoo! IDs associated with the contact category]\x0A'&lt;br /&gt;
      '88' -&amp;gt; [comma separated list of Yahoo IDs in the user's ignore list]&lt;br /&gt;
      '89' -&amp;gt; [comma-separated list of user's main and alternate usernames go here]&lt;br /&gt;
      '59' -&amp;gt; 'Y\x09[data of &amp;quot;Y&amp;quot; cookie]'&lt;br /&gt;
      '59' -&amp;gt; 'T\x09[data of &amp;quot;T&amp;quot; cookie]'&lt;br /&gt;
      '59' -&amp;gt; 'C\x09mg=1'&lt;br /&gt;
      '3' -&amp;gt; [YahooId]&lt;br /&gt;
      '100' -&amp;gt; '0'&lt;br /&gt;
      '101' -&amp;gt; (blank)&lt;br /&gt;
      '102' -&amp;gt; (blank)&lt;br /&gt;
      '93' -&amp;gt; '86400'&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    If the contact, ignore, or identity list were too large for the server's taste, then multiple LIST packets would be sent with status 0x00000005 (NOTINOFFICE) containing chunks of the key-value pair for one type of list each before sending the rest of the LIST packet. &lt;br /&gt;
&lt;br /&gt;
8. The server will also send you a LOGON packet containing structures of your contacts statuses and the number of them contained:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Service: \x00\x01 (LOGON)&lt;br /&gt;
    &lt;br /&gt;
    Status: \x00\x00\x00\x00&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    Payload:&lt;br /&gt;
    &lt;br /&gt;
      '0' -&amp;gt; [YahooId]&lt;br /&gt;
      '1' -&amp;gt; [YahooId]&lt;br /&gt;
      '8' -&amp;gt; # of contact structures&lt;br /&gt;
      --- This collection of key-value pairs are added times the number specified in key 8 ---&lt;br /&gt;
      '7' -&amp;gt; Contact's Yahoo ID&lt;br /&gt;
      '10' -&amp;gt; Contact's YMSG status in integer format (99 (CUSTOM) if using a PSM or 0 (AVAILABLE) if offline)&lt;br /&gt;
      '11' -&amp;gt; Contact's YMSG session ID in uppercase hexadecimal&lt;br /&gt;
      '19' -&amp;gt; Contact's PSM (key-value pair only included if status == 99 (CUSTOM))&lt;br /&gt;
      '47' -&amp;gt; Flag for if contact's PSM is an away message or not (key-value pair only included if status == 99 (CUSTOM))&lt;br /&gt;
      '17' -&amp;gt; Contact is online on Yahoo! Chat (1 for yes, 0 for no; apparently this was only set to 1 if you were on Yahoo Chat's own protocol)&lt;br /&gt;
      '13' -&amp;gt; Contact is online on Yahoo! Messenger service (1 for yes, 0 for no)&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
The responses detailed in 7 and 8 will also be sent if the client queries the LIST service itself.&lt;br /&gt;
&lt;br /&gt;
9. If any, the server will send packets containing the logged on user's OIMs (TODO: packet structure)&lt;br /&gt;
&lt;br /&gt;
=== Presence ===&lt;br /&gt;
&lt;br /&gt;
When a user logs on successfully, their status set in the AUTHRESP packet will automatically be dispatched to their contacts.&lt;br /&gt;
&lt;br /&gt;
When a user wants to change their status to something other than online (this includes going invisible), Yahoo! Messenger will send an ISAWAY packet containing the following info:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Service: \x00\x03 (ISAWAY)&lt;br /&gt;
    &lt;br /&gt;
    Status: 0x00000000 (0; AVAILABLE/[REQUEST])&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Payload:&lt;br /&gt;
  &lt;br /&gt;
      '10' -&amp;gt; Numerical YMSG status (99 for CUSTOM)&lt;br /&gt;
      '19' -&amp;gt; PSM (only included if status == 99)&lt;br /&gt;
      '47' -&amp;gt; Going away? (usually 1)&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
If a user wants to go back as online, the client will send this:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Service: \x00\x04 (ISBACK)&lt;br /&gt;
    &lt;br /&gt;
    Status: 0x00000000 (0; AVAILABLE/[REQUEST])&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Payload:&lt;br /&gt;
  &lt;br /&gt;
      (None)&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
No responses are sent to the user setting their status for either service.&lt;br /&gt;
&lt;br /&gt;
When contact statuses are dispatched to other users, the server sends the same contact structure with the appropriate info with various services depending on the status the remote contact is on:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    Service: Various (LOGON if remote contact status is &amp;quot;offline -&amp;gt; online&amp;quot;; ISAWAY if remote contact status is &amp;quot;any available (no PSM)/idle status -&amp;gt; any available (with PSM)/idle status&amp;quot;; ISBACK if remote contact status is &amp;quot;any available (with PSM)/idle status -&amp;gt; regular available (no PSM) status&amp;quot;)&lt;br /&gt;
    &lt;br /&gt;
    Status 0x00000001 (1; BRB/RESPONSE)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    Payload:&lt;br /&gt;
  &lt;br /&gt;
      '0' -&amp;gt; [Receiver's Yahoo ID] (only included if service != LOGOFF)&lt;br /&gt;
      '7' -&amp;gt; Contact's Yahoo ID&lt;br /&gt;
      '10' -&amp;gt; Contact's YMSG status in integer format (99 (CUSTOM) if using a PSM or 0 (AVAILABLE) if offline)&lt;br /&gt;
      '11' -&amp;gt; Contact's YMSG session ID in uppercase hexadecimal&lt;br /&gt;
      '19' -&amp;gt; Contact's PSM (key-value pair only included if status == 99 (CUSTOM))&lt;br /&gt;
      '47' -&amp;gt; Flag for if contact's PSM is an away message or not (key-value pair only included if status == 99 (CUSTOM))&lt;br /&gt;
      '17' -&amp;gt; Contact is online on Yahoo! Chat (1 for yes, 0 for no; apparently this was only set to 1 if you were on Yahoo Chat's own protocol)&lt;br /&gt;
      '13' -&amp;gt; Contact is online on Yahoo! Messenger service (1 for yes, 0 for no)&lt;br /&gt;
&lt;br /&gt;
== YMSG10 - 14 ==&lt;br /&gt;
We don't currently know what in specific was changed between each of these protocol versions.&lt;br /&gt;
&lt;br /&gt;
YMSG10 is used by Yahoo! Messenger 5.5&lt;br /&gt;
&lt;br /&gt;
YMSG11 is used by Yahoo! Messenger 5.6&lt;br /&gt;
&lt;br /&gt;
YMSG12 is used by Yahoo! Messenger 6.0&lt;br /&gt;
&lt;br /&gt;
We currently do not know what versions used YMSG13 or YMSG14&lt;br /&gt;
&lt;br /&gt;
=== Auth ===&lt;br /&gt;
&lt;br /&gt;
1. (Same as YMSG9 steps 1 to 3; in version 11 the version field is now in the correct (network) endianness).&lt;br /&gt;
2. Server responds with:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Service: \x00\x57(W) (87; AUTH)&lt;br /&gt;
&lt;br /&gt;
    Status: \x00\x00\x00\x01 (1; BRB/[RESPONSE])&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Payload:&lt;br /&gt;
    &lt;br /&gt;
      '1' -&amp;gt; [YahooId]&lt;br /&gt;
      '94' -&amp;gt; [mathematical expression-like challenge string (64 bytes without parentheses)] ('g|i/p^h&amp;amp;z-d+2%v%x&amp;amp;j|e+(m^k-i%h*(s+8%a/u/x*(b-4*i%h^g^j|m^n-r*f+p+j)))')&lt;br /&gt;
      '13' -&amp;gt; '1'&lt;br /&gt;
    &lt;br /&gt;
3. Other, more complicated stuff ensues: https://web.archive.org/web/20031206174432if_/http://venkydude.com:80/articles/yahooencription.htm.&lt;br /&gt;
&lt;br /&gt;
4. After crafting the two response strings, the client sends:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Service \x00\x57(W) (87; AUTH)&lt;br /&gt;
    &lt;br /&gt;
    Status: \x5A\x55\xAA\x55&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Payload:&lt;br /&gt;
    &lt;br /&gt;
      '6' -&amp;gt; [First response string consisting of comma and semicolon separated &amp;quot;X=YZ&amp;quot; values] ('X=7e,H=je,H=j7;m=Cj,H=Cc,E=33;Q=ml;H=37;F=gg;w=F5;')&lt;br /&gt;
      '96' -&amp;gt; [Second response string also consisting of comma and semicolon separated &amp;quot;X=YZ&amp;quot; values] ('N=ah,m=F1,m=3A,Q=A2;T=Al,Z=Ep,h=he,S=0o;r=1B,C=h2;')&lt;br /&gt;
      '0' -&amp;gt; [YahooId]&lt;br /&gt;
      '2' -&amp;gt; '1'&lt;br /&gt;
      '1' -&amp;gt; [YahooId]&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
5. The rest is same as YMSG9's post-auth (to our understanding)&lt;br /&gt;
&lt;br /&gt;
    a. After the initial LOGON packet and before the OIM packets, the server will also send ping configuration in the form of a &amp;quot;tick&amp;quot; and &amp;quot;tock&amp;quot; interval that the official client uses to send pings:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Service: \x00\x12 (PINGCONFIGURATION)&lt;br /&gt;
    &lt;br /&gt;
    Status: \x00\x00\x00\x00&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    Payload:&lt;br /&gt;
    &lt;br /&gt;
    '143' -&amp;gt; Tick interval (usually 60)&lt;br /&gt;
    '144' -&amp;gt; Tock interval (usually 13)&lt;br /&gt;
&lt;br /&gt;
== YMSG15-16 ==&lt;br /&gt;
As before, we are not certain what clients specifically used YMSG15 and YMSG16&lt;br /&gt;
&lt;br /&gt;
We're under the assumption YMSG15 was used by Yahoo! Messenger 8.0, and that YMSG16 was used by Yahoo! Messenger 9.0&lt;br /&gt;
&lt;br /&gt;
1. (YMSG16 only)&lt;br /&gt;
&lt;br /&gt;
    a. Client gets vcs1.msg.yahoo.com/capacity, which responds with&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    COLO_CAPACITY=1&lt;br /&gt;
    CS_IP_ADDRESS=[IP address to YMSG server]&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    b. If COLO_CAPACITY is != 0, Y!M will try connecting to the specified IP.&lt;br /&gt;
&lt;br /&gt;
2. (Same as YMSG10-14 steps 1 to 3.)&lt;br /&gt;
&lt;br /&gt;
3. Server responds with:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Service: \x00\x57(W) (87; AUTH)&lt;br /&gt;
    &lt;br /&gt;
    Status: \x00\x00\x00\x00 (0; AVAILABLE)&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Payload:&lt;br /&gt;
      '1' -&amp;gt; [YahooId]&lt;br /&gt;
      '13' -&amp;gt; '2'&lt;br /&gt;
      '94' -&amp;gt; [mathematical expression-like challenge string (64 bytes without parentheses)] ('g|i/p^h&amp;amp;z-d+2%v%x&amp;amp;j|e+(m^k-i%h*(s+8%a/u/x*(b-4*i%h^g^j|m^n-r*f+p+j)))')&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
4. Now the client just sends that stuff over to an HTTPS auth server to do the heavy lifting at https://login.yahoo.com/config/pwtoken_get?src=ymsgr&amp;amp;ts=&amp;amp;login=[username]&amp;amp;passwd=[password]&amp;amp;chal=[challenge string]. If the password and Yahoo! ID are correct, the following response is returned:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    0&lt;br /&gt;
    ymsgr=[token]&lt;br /&gt;
    partnerid=[partnerid]&lt;br /&gt;
    &lt;br /&gt;
5. Client now grabs the token and GET requests https://login.yahoo.com/pwtoken_login?src=ymsgr&amp;amp;ts=&amp;amp;token=[token], which sets the Y, T, and B cookies, and replies with:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    0&lt;br /&gt;
    crumb=[crumb]&lt;br /&gt;
    Y=[Y cookie]&lt;br /&gt;
    T=[T cookie]&lt;br /&gt;
    cookievalidfor=86400 [a day in seconds]&lt;br /&gt;
    SSL=[SSL cookie]&lt;br /&gt;
    &lt;br /&gt;
if the token is correct.&lt;br /&gt;
&lt;br /&gt;
6. The client retrieves the Y, T, and B cookies, along with the crumb, and then does the following: concatenates the crumb and challenge string sent; MD5 hashes the concatenation; and finally Yahoo64 encodes the hash. Let's call the resulting data &amp;quot;response&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
7. The client finally responds with this humongous packet:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Service: \x00\x54(T) (84; AUTHRESP)&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Payload:&lt;br /&gt;
      &lt;br /&gt;
      '1' -&amp;gt; [YahooId]&lt;br /&gt;
      '0' -&amp;gt; [YahooId]&lt;br /&gt;
      '277' -&amp;gt; [Contents of the &amp;quot;Y&amp;quot; cookie]&lt;br /&gt;
      '278' -&amp;gt; [Contents of the &amp;quot;T&amp;quot; cookie]&lt;br /&gt;
      '307' -&amp;gt; [The &amp;quot;response&amp;quot; variable the client had crafted]&lt;br /&gt;
      '244' -&amp;gt; [The client's build ID]&lt;br /&gt;
      '2' -&amp;gt; [YahooId]&lt;br /&gt;
      '2' -&amp;gt; '1'&lt;br /&gt;
      '59' -&amp;gt; [Contents of the &amp;quot;B&amp;quot; cookie]&lt;br /&gt;
      '98' -&amp;gt; [Locale]&lt;br /&gt;
      '135' -&amp;gt; [Client version]&lt;/div&gt;</summary>
		<author><name>Bobsmith2</name></author>
	</entry>
	<entry>
		<id>https://wiki.nina.chat/index.php?title=Protocols/YMSG&amp;diff=8713</id>
		<title>Protocols/YMSG</title>
		<link rel="alternate" type="text/html" href="https://wiki.nina.chat/index.php?title=Protocols/YMSG&amp;diff=8713"/>
		<updated>2024-12-03T05:00:45Z</updated>

		<summary type="html">&lt;p&gt;Bobsmith2: /* Presence */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Protocols/YMSG}}&lt;br /&gt;
YMSG was the network protocol used by Yahoo! Messenger for almost everything, including login, messaging and presence. It was a proprietary, homegrown solution created at Yahoo.&lt;br /&gt;
&lt;br /&gt;
If you have anything to contribute, or can see an error to correct in any of the information here, do not hesitate to contribute. Instructions are on the main page of the wiki.&lt;br /&gt;
&lt;br /&gt;
== General structure ==&lt;br /&gt;
&lt;br /&gt;
YMSG packets are binary-based. They consist of a magic string, version code, vendor ID, packet length, service code, status code, session ID, and an optional payload.&lt;br /&gt;
&lt;br /&gt;
The first field in a YMSG packet is the magic string YMSG at offset 0x00, which is 4 bytes in length.&lt;br /&gt;
&lt;br /&gt;
The second field is the version number of the protocol the client wants to use for the current YMSG session packed as a short on offset 0x04, and is 2 bytes long. For server-side packets, this field is usually 0.&lt;br /&gt;
&lt;br /&gt;
The third field, on offset 0x06, is the vendor ID of the client connecting to the YMSG server, which is a 2-byte long short-packed number. Supported values for the vendor ID are 0 (\x00\x00; Windows/NULL) and 100 (\x00\x64; Macintosh). For server-side packets, this value is usually set to 0, but we are not sure of this yet. Prior to YMSG16, it was believed that the vendor ID was part of the version code, effectively making the version a DWORD.&lt;br /&gt;
&lt;br /&gt;
The fourth field is the length of the packet's payload packed as a short, which is located on offset 0x08 and is also 2 bytes long.&lt;br /&gt;
&lt;br /&gt;
The fifth field is the service code the packet requests the server to execute the payload with. It is located on offset 0x0a and is 2 bytes long. There are a variety of services that a YMSG packet can utilize, and it has been observed that Yahoo! Messenger can swap protocol versions, meaning that features can be used on YMSG protocol versions that initially didn't support those features. Whether this mean older clients can potentially receive packets with services not recognized by their understanding of the protocol version they use hasn't been confirmed.&lt;br /&gt;
&lt;br /&gt;
The sixth field is the status code, which is a packed DWORD located at offset 0x0c and is 4 bytes long. This status code doesn't correspond to the logged in user's status, and is moreso used as a subcommand for most packet services. Interestingly enough, most of the status code in YMSG packets corresponds to the status codes used for contact presence. During authentication, this is used to determine if the user wants to log in under invisible mode. There are 19 YMSG statuses (that we've recorded as of now) that may or may not be used for contact statuses:&lt;br /&gt;
&lt;br /&gt;
    AVAILABLE/REQUEST: 0x00000000&lt;br /&gt;
    BRB/RESPONSE: 0x00000001&lt;br /&gt;
    BUSY: 0x00000002&lt;br /&gt;
    NOTATHOME/BADUSERNAME: 0x00000003&lt;br /&gt;
    NOTATDESK: 0x00000004&lt;br /&gt;
    NOTINOFFICE/OFFLINEMSG/MULTIPACKET: 0x00000005&lt;br /&gt;
    ONPHONE: 0x00000006&lt;br /&gt;
    ONVACATION: 0x00000007&lt;br /&gt;
    OUTTOLUNCH: 0x00000008&lt;br /&gt;
    STEPPEDOUT: 0x00000009&lt;br /&gt;
    INVISIBLE: 0x0000000C&lt;br /&gt;
    BAD: 0x0000000D&lt;br /&gt;
    LOCKED: 0x0000000E&lt;br /&gt;
    TYPING: 0x00000016&lt;br /&gt;
    CUSTOM: 0x00000063&lt;br /&gt;
    IDLE: 0x000003E7&lt;br /&gt;
    WEBLOGIN: 0x5A55AA55&lt;br /&gt;
    OFFLINE: 0x5A55AA56&lt;br /&gt;
    LOGINERROR: 0xFFFFFFFF&lt;br /&gt;
&lt;br /&gt;
The seventh field is the session ID, which is also a packed DWORD. It is located at offset 0x10 and is also 4 bytes long. The purpose of this field is to identify sessions and to verify if a user has the greenlight to use the main YMSG services (anything after authentication). It is believed that the official YMSG servers verified the session ID after authentication, but there is no hard evidence of this being the case, considering YMSG by design didn't validate the payloads of most services.&lt;br /&gt;
&lt;br /&gt;
The eighth, optional field is the payload for the service the packet wants to request. The payload is located at offset 0x14 and is variable-length or null. If not null, payloads are formatted in a generic key/value format, with the key usually being numeric. The key and value are separated by the delimiter \xc0\x80. An example of this format is below:&lt;br /&gt;
&lt;br /&gt;
    1[\xc0\x80]yahoo.id[\xc0\x80]&lt;br /&gt;
&lt;br /&gt;
1 is the key and yahoo.id is the value of the key in this example.&lt;br /&gt;
&lt;br /&gt;
There is no limit to the amount of key/value pairs that can make up the payload, but due to the packet length in the packet's header being short-packed, the payload is limited to 65,535 bytes.&lt;br /&gt;
&lt;br /&gt;
== YMSG8 ==&lt;br /&gt;
&lt;br /&gt;
YMSG8 is the first known version of the protcol. Versions of Yahoo! Messenger 5.0 and below use it.&lt;br /&gt;
&lt;br /&gt;
=== Auth ===&lt;br /&gt;
&lt;br /&gt;
1. Client sends GET request to &lt;br /&gt;
&lt;br /&gt;
    http://msg.edit.yahoo.com/config/ncclogin?.src=bl&amp;amp;login=[username]&amp;amp;passwd=[password]&amp;amp;n=1&lt;br /&gt;
&lt;br /&gt;
2. Server responds with cookie Y and body:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    OK&lt;br /&gt;
    BEGIN BUDDYLIST&lt;br /&gt;
    [contact category]:[comma separated list of Yahoo! IDs associated with the contact category]&lt;br /&gt;
    END BUDDYLIST&lt;br /&gt;
    BEGIN IGNORELIST&lt;br /&gt;
    [comma separated list of Yahoo IDs in the user's ignore list]&lt;br /&gt;
    END IGNORELIST&lt;br /&gt;
    BEGIN IDENTITIES&lt;br /&gt;
    [comma-separated list of user's main and alternate usernames go here]&lt;br /&gt;
    END IDENTITIES&lt;br /&gt;
    Mail=1&lt;br /&gt;
    Login=[username]&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
3. Client opens a connection to a YMSG server via port 5050 and sends:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Service: \x00\x01 (LOGON)&lt;br /&gt;
    &lt;br /&gt;
    Status: \x5A\x55\xAA\x55 (WEBLOGON)&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    Payload:&lt;br /&gt;
      &lt;br /&gt;
      '0' -&amp;gt; [YahooId]&lt;br /&gt;
      '6' -&amp;gt; [md5-crypt(3)'d password]&lt;br /&gt;
      '1' -&amp;gt; [YahooId]&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4. If the verification of the password goes well, the server responds with:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Service: \x00\x01 (LOGON)&lt;br /&gt;
    &lt;br /&gt;
    Status: \x00\x00\x00\x00 (0; [AVAILABLE]/REQUEST)&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Payload:&lt;br /&gt;
    &lt;br /&gt;
      '0' -&amp;gt; [YahooId]&lt;br /&gt;
      '1' -&amp;gt; [YahooId]&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
== YMSG9 ==&lt;br /&gt;
&lt;br /&gt;
YMSG9 is the second revision of the protocol, used by Yahoo! Messenger versions 5.0 through 5.4.&lt;br /&gt;
&lt;br /&gt;
=== Auth ===&lt;br /&gt;
&lt;br /&gt;
1. Client opens a connection to a YMSG server via port 5050 and sends:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Service: \x00\x4C (76; HANDSHAKE)&lt;br /&gt;
    &lt;br /&gt;
    Status: \x00\x00\x00\x00 (0; AVAILABLE/[REQUEST])&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
2. Server responds with:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Service: \x00\x4C (76; HANDSHAKE)&lt;br /&gt;
    &lt;br /&gt;
    Status: \x00\x00\x00\x01 (1; BRB/[RESPONSE])&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
3. Client sends:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Service: \x00\x57 (87; AUTH)&lt;br /&gt;
    &lt;br /&gt;
    Status: \x00\x00\x00\x00 (0; AVAILABLE/[REQUEST])&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Payload:&lt;br /&gt;
    &lt;br /&gt;
      '1' -&amp;gt; [YahooId]&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
4. On successful verification of the username, the server responds with the following packet (this is also when the server generates the session ID the client should use for the whole server session):&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Service: \x00\x57 (87; AUTH)&lt;br /&gt;
    &lt;br /&gt;
    Status: \x00\x00\x00\x01 (1; BRB/[RESPONSE])&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Payload:&lt;br /&gt;
    &lt;br /&gt;
      '1' -&amp;gt; [YahooId]&lt;br /&gt;
      '94' -&amp;gt; [24-byte Yahoo64-encoded challenge string] ('AA.BBCCDDEEGGHHIIH_HII--')&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
5. The client then crafts two response strings with the challenge strings (details will be added onto later).&lt;br /&gt;
&lt;br /&gt;
6. After the client is done crafting the two response strings, the client responds with:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Service: \x00\x54 (54; AUTHRESP)&lt;br /&gt;
    &lt;br /&gt;
    Status: [Status the user wants to log in as; usually either AVAILABLE or INVISIBLE]&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Payload:&lt;br /&gt;
    &lt;br /&gt;
      '0' -&amp;gt; [YahooId]&lt;br /&gt;
      '6' -&amp;gt; [Challenge response string 1] ('AA.BBCCDDEEGGHHIIH_HII--')&lt;br /&gt;
      '96' -&amp;gt; [Challenge response string 2] ('AA.BBCCDDEEGGHHIIH_HII--')&lt;br /&gt;
      '2' -&amp;gt; '1'&lt;br /&gt;
      '1' -&amp;gt; [YahooId]&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
7. Server verifies the first and second response strings, and if all is well, responds with this:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Service: \x00\x55 (85; LIST)&lt;br /&gt;
    &lt;br /&gt;
    Status: \x00\x00\x00\x00&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Payload:&lt;br /&gt;
    &lt;br /&gt;
      '87' -&amp;gt; '[contact category]:[comma separated list of Yahoo! IDs associated with the contact category]\x0A'&lt;br /&gt;
      '88' -&amp;gt; [comma separated list of Yahoo IDs in the user's ignore list]&lt;br /&gt;
      '89' -&amp;gt; [comma-separated list of user's main and alternate usernames go here]&lt;br /&gt;
      '59' -&amp;gt; 'Y\x09[data of &amp;quot;Y&amp;quot; cookie]'&lt;br /&gt;
      '59' -&amp;gt; 'T\x09[data of &amp;quot;T&amp;quot; cookie]'&lt;br /&gt;
      '59' -&amp;gt; 'C\x09mg=1'&lt;br /&gt;
      '3' -&amp;gt; [YahooId]&lt;br /&gt;
      '100' -&amp;gt; '0'&lt;br /&gt;
      '101' -&amp;gt; (blank)&lt;br /&gt;
      '102' -&amp;gt; (blank)&lt;br /&gt;
      '93' -&amp;gt; '86400'&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    If the contact, ignore, or identity list were too large for the server's taste, then multiple LIST packets would be sent with status 0x00000005 (NOTINOFFICE) containing chunks of the key-value pair for one type of list each before sending the rest of the LIST packet. &lt;br /&gt;
&lt;br /&gt;
8. The server will also send you a LOGON packet containing structures of your contacts statuses and the number of them contained:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Service: \x00\x01 (LOGON)&lt;br /&gt;
    &lt;br /&gt;
    Status: \x00\x00\x00\x00&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    Payload:&lt;br /&gt;
    &lt;br /&gt;
      '0' -&amp;gt; [YahooId]&lt;br /&gt;
      '1' -&amp;gt; [YahooId]&lt;br /&gt;
      '8' -&amp;gt; # of contact structures&lt;br /&gt;
      --- This collection of key-value pairs are added times the number specified in key 8 ---&lt;br /&gt;
      '7' -&amp;gt; Contact's Yahoo ID&lt;br /&gt;
      '10' -&amp;gt; Contact's YMSG status in integer format (99 (CUSTOM) if using a PSM or 0 (AVAILABLE) if offline)&lt;br /&gt;
      '11' -&amp;gt; Contact's YMSG session ID in uppercase hexadecimal&lt;br /&gt;
      '19' -&amp;gt; Contact's PSM (key-value pair only included if status == 99 (CUSTOM))&lt;br /&gt;
      '47' -&amp;gt; Flag for if contact's PSM is an away message or not (key-value pair only included if status == 99 (CUSTOM))&lt;br /&gt;
      '17' -&amp;gt; Contact is online on Yahoo! Chat (1 for yes, 0 for no; apparently this was only set to 1 if you were on Yahoo Chat's own protocol)&lt;br /&gt;
      '13' -&amp;gt; Contact is online on Yahoo! Messenger service (1 for yes, 0 for no)&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
The responses detailed in 7 and 8 will also be sent if the client queries the LIST service itself.&lt;br /&gt;
&lt;br /&gt;
9. If any, the server will send packets containing the logged on user's OIMs (TODO: packet structure)&lt;br /&gt;
&lt;br /&gt;
=== Presence ===&lt;br /&gt;
&lt;br /&gt;
When a user logs on successfully, their status set in the AUTHRESP packet will automatically be dispatched to their contacts.&lt;br /&gt;
&lt;br /&gt;
When a user wants to change their status to something other than online (this includes going invisible), Yahoo! Messenger will send an ISAWAY packet containing the following info:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Service: \x00\x03 (ISAWAY)&lt;br /&gt;
    &lt;br /&gt;
    Status: 0x00000000 (0; AVAILABLE/[REQUEST])&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Payload:&lt;br /&gt;
  &lt;br /&gt;
      '10' -&amp;gt; Numerical YMSG status (99 for CUSTOM)&lt;br /&gt;
      '19' -&amp;gt; PSM (only included if status == 99)&lt;br /&gt;
      '47' -&amp;gt; Going away? (usually 1)&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
If a user wants to go back as online, the client will send this:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Service: \x00\x04 (ISBACK)&lt;br /&gt;
    &lt;br /&gt;
    Status: 0x00000000 (0; AVAILABLE/[REQUEST])&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Payload:&lt;br /&gt;
  &lt;br /&gt;
      (None)&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
No responses are sent to the user setting their status for either service.&lt;br /&gt;
&lt;br /&gt;
When contact statuses are dispatched to other users, the server sends the same contact structure with the appropriate info with various services depending on the status the remote contact is on:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    Service: Various (LOGON if remote contact status is &amp;quot;offline -&amp;gt; online&amp;quot;; ISAWAY if remote contact status is &amp;quot;any available (no PSM)/idle status -&amp;gt; any available (with PSM)/idle status&amp;quot;; ISBACK if remote contact status is &amp;quot;any available (with PSM)/idle status -&amp;gt; regular available (no PSM) status&amp;quot;)&lt;br /&gt;
    &lt;br /&gt;
    Status 0x00000001 (1; BRB/RESPONSE)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    Payload:&lt;br /&gt;
  &lt;br /&gt;
      '0' -&amp;gt; [Receiver's Yahoo ID] (only included if service != LOGOFF)&lt;br /&gt;
      '7' -&amp;gt; Contact's Yahoo ID&lt;br /&gt;
      '10' -&amp;gt; Contact's YMSG status in integer format (99 (CUSTOM) if using a PSM or 0 (AVAILABLE) if offline)&lt;br /&gt;
      '11' -&amp;gt; Contact's YMSG session ID in uppercase hexadecimal&lt;br /&gt;
      '19' -&amp;gt; Contact's PSM (key-value pair only included if status == 99 (CUSTOM))&lt;br /&gt;
      '47' -&amp;gt; Flag for if contact's PSM is an away message or not (key-value pair only included if status == 99 (CUSTOM))&lt;br /&gt;
      '17' -&amp;gt; Contact is online on Yahoo! Chat (1 for yes, 0 for no; apparently this was only set to 1 if you were on Yahoo Chat's own protocol)&lt;br /&gt;
      '13' -&amp;gt; Contact is online on Yahoo! Messenger service (1 for yes, 0 for no)&lt;br /&gt;
&lt;br /&gt;
== YMSG10 - 14(?) ==&lt;br /&gt;
We don't currently know what in specific was changed between each of these protocol versions.&lt;br /&gt;
&lt;br /&gt;
YMSG10 is used by Yahoo! Messenger 5.5&lt;br /&gt;
&lt;br /&gt;
YMSG11 is used by Yahoo! Messenger 5.6&lt;br /&gt;
&lt;br /&gt;
YMSG12 is used by Yahoo! Messenger 6.0&lt;br /&gt;
&lt;br /&gt;
We currently do not know what versions used YMSG13 or YMSG14&lt;br /&gt;
&lt;br /&gt;
=== Auth ===&lt;br /&gt;
&lt;br /&gt;
1. (Same as YMSG9 steps 1 to 3; in version 11 the version field is now in the correct (network) endianness).&lt;br /&gt;
2. Server responds with:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Service: \x00\x57(W) (87; AUTH)&lt;br /&gt;
&lt;br /&gt;
    Status: \x00\x00\x00\x01 (1; BRB/[RESPONSE])&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Payload:&lt;br /&gt;
    &lt;br /&gt;
      '1' -&amp;gt; [YahooId]&lt;br /&gt;
      '94' -&amp;gt; [mathematical expression-like challenge string (64 bytes without parentheses)] ('g|i/p^h&amp;amp;z-d+2%v%x&amp;amp;j|e+(m^k-i%h*(s+8%a/u/x*(b-4*i%h^g^j|m^n-r*f+p+j)))')&lt;br /&gt;
      '13' -&amp;gt; '1'&lt;br /&gt;
    &lt;br /&gt;
3. Other, more complicated stuff ensues: https://web.archive.org/web/20031206174432if_/http://venkydude.com:80/articles/yahooencription.htm.&lt;br /&gt;
&lt;br /&gt;
4. After crafting the two response strings, the client sends:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Service \x00\x57(W) (87; AUTH)&lt;br /&gt;
    &lt;br /&gt;
    Status: \x5A\x55\xAA\x55&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Payload:&lt;br /&gt;
    &lt;br /&gt;
      '6' -&amp;gt; [First response string consisting of comma and semicolon separated &amp;quot;X=YZ&amp;quot; values] ('X=7e,H=je,H=j7;m=Cj,H=Cc,E=33;Q=ml;H=37;F=gg;w=F5;')&lt;br /&gt;
      '96' -&amp;gt; [Second response string also consisting of comma and semicolon separated &amp;quot;X=YZ&amp;quot; values] ('N=ah,m=F1,m=3A,Q=A2;T=Al,Z=Ep,h=he,S=0o;r=1B,C=h2;')&lt;br /&gt;
      '0' -&amp;gt; [YahooId]&lt;br /&gt;
      '2' -&amp;gt; '1'&lt;br /&gt;
      '1' -&amp;gt; [YahooId]&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
5. The rest is same as YMSG9's post-auth (to our understanding)&lt;br /&gt;
&lt;br /&gt;
    a. After the initial LOGON packet and before the OIM packets, the server will also send ping configuration in the form of a &amp;quot;tick&amp;quot; and &amp;quot;tock&amp;quot; interval that the official client uses to send pings:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Service: \x00\x12 (PINGCONFIGURATION)&lt;br /&gt;
    &lt;br /&gt;
    Status: \x00\x00\x00\x00&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    Payload:&lt;br /&gt;
    &lt;br /&gt;
    '143' -&amp;gt; Tick interval (usually 60)&lt;br /&gt;
    '144' -&amp;gt; Tock interval (usually 13)&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
== YMSG15-16 ==&lt;br /&gt;
As before, we are not certain what clients specifically used YMSG15 and YMSG16&lt;br /&gt;
&lt;br /&gt;
We're under the assumption YMSG15 was used by Yahoo! Messenger 8.0, and that YMSG16 was used by Yahoo! Messenger 9.0&lt;br /&gt;
&lt;br /&gt;
1. (YMSG16 only)&lt;br /&gt;
&lt;br /&gt;
    a. Client gets vcs1.msg.yahoo.com/capacity, which responds with&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    COLO_CAPACITY=1&lt;br /&gt;
    CS_IP_ADDRESS=[IP address to YMSG server]&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    b. If COLO_CAPACITY is != 0, Y!M will try connecting to the specified IP.&lt;br /&gt;
&lt;br /&gt;
2. (Same as YMSG10-14 steps 1 to 3.)&lt;br /&gt;
&lt;br /&gt;
3. Server responds with:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Service: \x00\x57(W) (87; AUTH)&lt;br /&gt;
    &lt;br /&gt;
    Status: \x00\x00\x00\x00 (0; AVAILABLE)&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Payload:&lt;br /&gt;
      '1' -&amp;gt; [YahooId]&lt;br /&gt;
      '13' -&amp;gt; '2'&lt;br /&gt;
      '94' -&amp;gt; [mathematical expression-like challenge string (64 bytes without parentheses)] ('g|i/p^h&amp;amp;z-d+2%v%x&amp;amp;j|e+(m^k-i%h*(s+8%a/u/x*(b-4*i%h^g^j|m^n-r*f+p+j)))')&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
4. Now the client just sends that stuff over to an HTTPS auth server to do the heavy lifting at https://login.yahoo.com/config/pwtoken_get?src=ymsgr&amp;amp;ts=&amp;amp;login=[username]&amp;amp;passwd=[password]&amp;amp;chal=[challenge string]. If the password and Yahoo! ID are correct, the following response is returned:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    0&lt;br /&gt;
    ymsgr=[token]&lt;br /&gt;
    partnerid=[partnerid]&lt;br /&gt;
    &lt;br /&gt;
5. Client now grabs the token and GET requests https://login.yahoo.com/pwtoken_login?src=ymsgr&amp;amp;ts=&amp;amp;token=[token], which sets the Y, T, and B cookies, and replies with:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    0&lt;br /&gt;
    crumb=[crumb]&lt;br /&gt;
    Y=[Y cookie]&lt;br /&gt;
    T=[T cookie]&lt;br /&gt;
    cookievalidfor=86400 [a day in seconds]&lt;br /&gt;
    SSL=[SSL cookie]&lt;br /&gt;
    &lt;br /&gt;
if the token is correct.&lt;br /&gt;
&lt;br /&gt;
6. The client retrieves the Y, T, and B cookies, along with the crumb, and then does the following: concatenates the crumb and challenge string sent; MD5 hashes the concatenation; and finally Yahoo64 encodes the hash. Let's call the resulting data &amp;quot;response&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
7. The client finally responds with this humongous packet:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Service: \x00\x54(T) (84; AUTHRESP)&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Payload:&lt;br /&gt;
      &lt;br /&gt;
      '1' -&amp;gt; [YahooId]&lt;br /&gt;
      '0' -&amp;gt; [YahooId]&lt;br /&gt;
      '277' -&amp;gt; [Contents of the &amp;quot;Y&amp;quot; cookie]&lt;br /&gt;
      '278' -&amp;gt; [Contents of the &amp;quot;T&amp;quot; cookie]&lt;br /&gt;
      '307' -&amp;gt; [The &amp;quot;response&amp;quot; variable the client had crafted]&lt;br /&gt;
      '244' -&amp;gt; [The client's build ID]&lt;br /&gt;
      '2' -&amp;gt; [YahooId]&lt;br /&gt;
      '2' -&amp;gt; '1'&lt;br /&gt;
      '59' -&amp;gt; [Contents of the &amp;quot;B&amp;quot; cookie]&lt;br /&gt;
      '98' -&amp;gt; [Locale]&lt;br /&gt;
      '135' -&amp;gt; [Client version]&lt;/div&gt;</summary>
		<author><name>Bobsmith2</name></author>
	</entry>
	<entry>
		<id>https://wiki.nina.chat/index.php?title=Main_Page&amp;diff=8712</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.nina.chat/index.php?title=Main_Page&amp;diff=8712"/>
		<updated>2024-12-03T04:59:19Z</updated>

		<summary type="html">&lt;p&gt;Bobsmith2: /* Currently Being Worked On */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__ &lt;br /&gt;
Welcome to the best place on Earth. You have reached the NINA Wiki for protocols, client information, and APIs that were formerly parts of AOL, ICQ, QuantumLink, CompuServe, and so on. At one time these protocols were used by AOL's AIM and ICQ products, and later discontinued, it now has had a rebirth of sorts here. &lt;br /&gt;
&lt;br /&gt;
We not only will fully document the protocols, but will maintain and update it.&lt;br /&gt;
&lt;br /&gt;
=== NINA &amp;amp; Escargot ===&lt;br /&gt;
&lt;br /&gt;
NINA's AIM service is currently '''up and running for everyone''' in Beta! ICQ requires a $2+ donation, for now. If you want to experience the AIM and ICQ servers and ''all'' its protocols, please consider [https://nina.chat/donate/ donating] as it helps us host this wiki, the servers, etc. &lt;br /&gt;
&lt;br /&gt;
Escargot is '''up and running for everyone'''!&lt;br /&gt;
&lt;br /&gt;
You can also join our [https://escargot.chat/discord/?src=wiki Discord] to talk about everything, keep up with the news, and have fun. We're nice!&lt;br /&gt;
&lt;br /&gt;
=== Want to Help? ===&lt;br /&gt;
&lt;br /&gt;
If you want to contribute to the NINA Wiki directly, you have to be a member, and so you must request an account by sending an email to [mailto:accounts@wiki.nina.chat accounts@wiki.nina.chat] with desired username and also a few words on what you have to contribute (for spam control). If accepted you will be sent a randomly generated password.&lt;br /&gt;
&lt;br /&gt;
If you want to contribute something anonymously or without registering, send it to [mailto:contribute@wiki.nina.chat contribute@wiki.nina.chat]. If anonymity is desired, state so, and after information is taken from your email it will be deleted and never archived, nor your details saved anywhere or revealed to anyone. &lt;br /&gt;
&lt;br /&gt;
See what kind of things we are looking for in our [[NCD|Not Currently Documented]] section. You should also check the [[Needed]], which is a list of things we are looking for which are not directly related to documentation.&lt;br /&gt;
&lt;br /&gt;
You can also [[Donate|donate]] to help with this AIM/AOL revival, because it is a full time job at this point.&lt;br /&gt;
&lt;br /&gt;
== Currently Being Worked On ==&lt;br /&gt;
* [[Protocols/OSCAR|OSCAR Protocol]]&lt;br /&gt;
** [[Protocols/OSCAR/Clients#AIM|AIM Clients]]&lt;br /&gt;
** [[Clients/AOL_Mobile_Communicator|AOL Mobile Communicator]]&lt;br /&gt;
** [[Clients/Quiet_Internet_Pager|Quiet Internet Pager]]&lt;br /&gt;
* [[Protocols/TOC|TOC Protocol]] - Includes TOC2 and other information&lt;br /&gt;
** [[Clients/AOL_Instant_Messenger#TOC|TOC Clients]]&lt;br /&gt;
* [[Protocols/WebAPI|WebAPI]]&lt;br /&gt;
* [[Protocols/AOL|AOL Protocol]]&lt;br /&gt;
** This is for P3 and FLAP versions.&lt;br /&gt;
* [[Protocols/AOL/Midas|Midas Protocol]]&lt;br /&gt;
** This is for versions such as AOL Desktop Gold.&lt;br /&gt;
* [[Protocols/MSNP|MSNP]]&lt;br /&gt;
** [[Clients/Windows_Live_Messenger|Windows Live Messenger]]&lt;br /&gt;
* [[Protocols/YMSG|YMSG]]&lt;br /&gt;
* Other articles in the works&lt;br /&gt;
** [[Support/Extended_FAQ|Extended FAQ]]&lt;br /&gt;
&lt;br /&gt;
== Portals ==&lt;br /&gt;
* [[Portal:AOL-Files|AOL-Files Portal]]&lt;br /&gt;
** A merger of archived/recovered AOL-Files/FDO-Files content and up to date information.&lt;br /&gt;
* [[Portal:AOL|AOL Portal]]&lt;br /&gt;
** Information regarding AOL as a general service and its history.&lt;br /&gt;
** [[Portal:AOL/Podcasts/AOL_Underground|AOL Underground Podcast]]&lt;/div&gt;</summary>
		<author><name>Bobsmith2</name></author>
	</entry>
	<entry>
		<id>https://wiki.nina.chat/index.php?title=Clients/Yahoo_Messenger&amp;diff=8711</id>
		<title>Clients/Yahoo Messenger</title>
		<link rel="alternate" type="text/html" href="https://wiki.nina.chat/index.php?title=Clients/Yahoo_Messenger&amp;diff=8711"/>
		<updated>2024-12-03T04:54:27Z</updated>

		<summary type="html">&lt;p&gt;Bobsmith2: Created page with &amp;quot;This is a stub page that will be a list of all Yahoo! Messenger clients, akin to the other pages in the client pages.&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a stub page that will be a list of all Yahoo! Messenger clients, akin to the other pages in the client pages.&lt;/div&gt;</summary>
		<author><name>Bobsmith2</name></author>
	</entry>
	<entry>
		<id>https://wiki.nina.chat/index.php?title=Clients&amp;diff=8710</id>
		<title>Clients</title>
		<link rel="alternate" type="text/html" href="https://wiki.nina.chat/index.php?title=Clients&amp;diff=8710"/>
		<updated>2024-12-03T04:53:30Z</updated>

		<summary type="html">&lt;p&gt;Bobsmith2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a stub page which will have more information in the future. In the meantime, see these client pages:&lt;br /&gt;
&lt;br /&gt;
* [[Clients/AOL_Instant_Messenger|AOL Instant Messenger]]&lt;br /&gt;
* [[Clients/Windows_Live_Messenger|Windows Live Messenger]]&lt;br /&gt;
* [[Clients/Quiet_Internet_Pager|Quiet Internet Pager]]&lt;br /&gt;
* [[Clients/Yahoo_Messenger|Yahoo! Messenger]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Stub]]&lt;br /&gt;
[[Category:Work_In_Progress]]&lt;/div&gt;</summary>
		<author><name>Bobsmith2</name></author>
	</entry>
	<entry>
		<id>https://wiki.nina.chat/index.php?title=Protocols/YMSG&amp;diff=8709</id>
		<title>Protocols/YMSG</title>
		<link rel="alternate" type="text/html" href="https://wiki.nina.chat/index.php?title=Protocols/YMSG&amp;diff=8709"/>
		<updated>2024-12-03T04:49:37Z</updated>

		<summary type="html">&lt;p&gt;Bobsmith2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Protocols/YMSG}}&lt;br /&gt;
YMSG was the network protocol used by Yahoo! Messenger for almost everything, including login, messaging and presence. It was a proprietary, homegrown solution created at Yahoo.&lt;br /&gt;
&lt;br /&gt;
If you have anything to contribute, or can see an error to correct in any of the information here, do not hesitate to contribute. Instructions are on the main page of the wiki.&lt;br /&gt;
&lt;br /&gt;
== General structure ==&lt;br /&gt;
&lt;br /&gt;
YMSG packets are binary-based. They consist of a magic string, version code, vendor ID, packet length, service code, status code, session ID, and an optional payload.&lt;br /&gt;
&lt;br /&gt;
The first field in a YMSG packet is the magic string YMSG at offset 0x00, which is 4 bytes in length.&lt;br /&gt;
&lt;br /&gt;
The second field is the version number of the protocol the client wants to use for the current YMSG session packed as a short on offset 0x04, and is 2 bytes long. For server-side packets, this field is usually 0.&lt;br /&gt;
&lt;br /&gt;
The third field, on offset 0x06, is the vendor ID of the client connecting to the YMSG server, which is a 2-byte long short-packed number. Supported values for the vendor ID are 0 (\x00\x00; Windows/NULL) and 100 (\x00\x64; Macintosh). For server-side packets, this value is usually set to 0, but we are not sure of this yet. Prior to YMSG16, it was believed that the vendor ID was part of the version code, effectively making the version a DWORD.&lt;br /&gt;
&lt;br /&gt;
The fourth field is the length of the packet's payload packed as a short, which is located on offset 0x08 and is also 2 bytes long.&lt;br /&gt;
&lt;br /&gt;
The fifth field is the service code the packet requests the server to execute the payload with. It is located on offset 0x0a and is 2 bytes long. There are a variety of services that a YMSG packet can utilize, and it has been observed that Yahoo! Messenger can swap protocol versions, meaning that features can be used on YMSG protocol versions that initially didn't support those features. Whether this mean older clients can potentially receive packets with services not recognized by their understanding of the protocol version they use hasn't been confirmed.&lt;br /&gt;
&lt;br /&gt;
The sixth field is the status code, which is a packed DWORD located at offset 0x0c and is 4 bytes long. This status code doesn't correspond to the logged in user's status, and is moreso used as a subcommand for most packet services. Interestingly enough, most of the status code in YMSG packets corresponds to the status codes used for contact presence. During authentication, this is used to determine if the user wants to log in under invisible mode. There are 19 YMSG statuses (that we've recorded as of now) that may or may not be used for contact statuses:&lt;br /&gt;
&lt;br /&gt;
    AVAILABLE/REQUEST: 0x00000000&lt;br /&gt;
    BRB/RESPONSE: 0x00000001&lt;br /&gt;
    BUSY: 0x00000002&lt;br /&gt;
    NOTATHOME/BADUSERNAME: 0x00000003&lt;br /&gt;
    NOTATDESK: 0x00000004&lt;br /&gt;
    NOTINOFFICE/OFFLINEMSG/MULTIPACKET: 0x00000005&lt;br /&gt;
    ONPHONE: 0x00000006&lt;br /&gt;
    ONVACATION: 0x00000007&lt;br /&gt;
    OUTTOLUNCH: 0x00000008&lt;br /&gt;
    STEPPEDOUT: 0x00000009&lt;br /&gt;
    INVISIBLE: 0x0000000C&lt;br /&gt;
    BAD: 0x0000000D&lt;br /&gt;
    LOCKED: 0x0000000E&lt;br /&gt;
    TYPING: 0x00000016&lt;br /&gt;
    CUSTOM: 0x00000063&lt;br /&gt;
    IDLE: 0x000003E7&lt;br /&gt;
    WEBLOGIN: 0x5A55AA55&lt;br /&gt;
    OFFLINE: 0x5A55AA56&lt;br /&gt;
    LOGINERROR: 0xFFFFFFFF&lt;br /&gt;
&lt;br /&gt;
The seventh field is the session ID, which is also a packed DWORD. It is located at offset 0x10 and is also 4 bytes long. The purpose of this field is to identify sessions and to verify if a user has the greenlight to use the main YMSG services (anything after authentication). It is believed that the official YMSG servers verified the session ID after authentication, but there is no hard evidence of this being the case, considering YMSG by design didn't validate the payloads of most services.&lt;br /&gt;
&lt;br /&gt;
The eighth, optional field is the payload for the service the packet wants to request. The payload is located at offset 0x14 and is variable-length or null. If not null, payloads are formatted in a generic key/value format, with the key usually being numeric. The key and value are separated by the delimiter \xc0\x80. An example of this format is below:&lt;br /&gt;
&lt;br /&gt;
    1[\xc0\x80]yahoo.id[\xc0\x80]&lt;br /&gt;
&lt;br /&gt;
1 is the key and yahoo.id is the value of the key in this example.&lt;br /&gt;
&lt;br /&gt;
There is no limit to the amount of key/value pairs that can make up the payload, but due to the packet length in the packet's header being short-packed, the payload is limited to 65,535 bytes.&lt;br /&gt;
&lt;br /&gt;
== YMSG8 ==&lt;br /&gt;
&lt;br /&gt;
YMSG8 is the first known version of the protcol. Versions of Yahoo! Messenger 5.0 and below use it.&lt;br /&gt;
&lt;br /&gt;
=== Auth ===&lt;br /&gt;
&lt;br /&gt;
1. Client sends GET request to &lt;br /&gt;
&lt;br /&gt;
    http://msg.edit.yahoo.com/config/ncclogin?.src=bl&amp;amp;login=[username]&amp;amp;passwd=[password]&amp;amp;n=1&lt;br /&gt;
&lt;br /&gt;
2. Server responds with cookie Y and body:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    OK&lt;br /&gt;
    BEGIN BUDDYLIST&lt;br /&gt;
    [contact category]:[comma separated list of Yahoo! IDs associated with the contact category]&lt;br /&gt;
    END BUDDYLIST&lt;br /&gt;
    BEGIN IGNORELIST&lt;br /&gt;
    [comma separated list of Yahoo IDs in the user's ignore list]&lt;br /&gt;
    END IGNORELIST&lt;br /&gt;
    BEGIN IDENTITIES&lt;br /&gt;
    [comma-separated list of user's main and alternate usernames go here]&lt;br /&gt;
    END IDENTITIES&lt;br /&gt;
    Mail=1&lt;br /&gt;
    Login=[username]&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
3. Client opens a connection to a YMSG server via port 5050 and sends:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Service: \x00\x01 (LOGON)&lt;br /&gt;
    &lt;br /&gt;
    Status: \x5A\x55\xAA\x55 (WEBLOGON)&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    Payload:&lt;br /&gt;
      &lt;br /&gt;
      '0' -&amp;gt; [YahooId]&lt;br /&gt;
      '6' -&amp;gt; [md5-crypt(3)'d password]&lt;br /&gt;
      '1' -&amp;gt; [YahooId]&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4. If the verification of the password goes well, the server responds with:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Service: \x00\x01 (LOGON)&lt;br /&gt;
    &lt;br /&gt;
    Status: \x00\x00\x00\x00 (0; [AVAILABLE]/REQUEST)&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Payload:&lt;br /&gt;
    &lt;br /&gt;
      '0' -&amp;gt; [YahooId]&lt;br /&gt;
      '1' -&amp;gt; [YahooId]&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
== YMSG9 ==&lt;br /&gt;
&lt;br /&gt;
YMSG9 is the second revision of the protocol, used by Yahoo! Messenger versions 5.0 through 5.4.&lt;br /&gt;
&lt;br /&gt;
=== Auth ===&lt;br /&gt;
&lt;br /&gt;
1. Client opens a connection to a YMSG server via port 5050 and sends:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Service: \x00\x4C (76; HANDSHAKE)&lt;br /&gt;
    &lt;br /&gt;
    Status: \x00\x00\x00\x00 (0; AVAILABLE/[REQUEST])&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
2. Server responds with:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Service: \x00\x4C (76; HANDSHAKE)&lt;br /&gt;
    &lt;br /&gt;
    Status: \x00\x00\x00\x01 (1; BRB/[RESPONSE])&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
3. Client sends:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Service: \x00\x57 (87; AUTH)&lt;br /&gt;
    &lt;br /&gt;
    Status: \x00\x00\x00\x00 (0; AVAILABLE/[REQUEST])&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Payload:&lt;br /&gt;
    &lt;br /&gt;
      '1' -&amp;gt; [YahooId]&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
4. On successful verification of the username, the server responds with the following packet (this is also when the server generates the session ID the client should use for the whole server session):&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Service: \x00\x57 (87; AUTH)&lt;br /&gt;
    &lt;br /&gt;
    Status: \x00\x00\x00\x01 (1; BRB/[RESPONSE])&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Payload:&lt;br /&gt;
    &lt;br /&gt;
      '1' -&amp;gt; [YahooId]&lt;br /&gt;
      '94' -&amp;gt; [24-byte Yahoo64-encoded challenge string] ('AA.BBCCDDEEGGHHIIH_HII--')&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
5. The client then crafts two response strings with the challenge strings (details will be added onto later).&lt;br /&gt;
&lt;br /&gt;
6. After the client is done crafting the two response strings, the client responds with:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Service: \x00\x54 (54; AUTHRESP)&lt;br /&gt;
    &lt;br /&gt;
    Status: [Status the user wants to log in as; usually either AVAILABLE or INVISIBLE]&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Payload:&lt;br /&gt;
    &lt;br /&gt;
      '0' -&amp;gt; [YahooId]&lt;br /&gt;
      '6' -&amp;gt; [Challenge response string 1] ('AA.BBCCDDEEGGHHIIH_HII--')&lt;br /&gt;
      '96' -&amp;gt; [Challenge response string 2] ('AA.BBCCDDEEGGHHIIH_HII--')&lt;br /&gt;
      '2' -&amp;gt; '1'&lt;br /&gt;
      '1' -&amp;gt; [YahooId]&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
7. Server verifies the first and second response strings, and if all is well, responds with this:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Service: \x00\x55 (85; LIST)&lt;br /&gt;
    &lt;br /&gt;
    Status: \x00\x00\x00\x00&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Payload:&lt;br /&gt;
    &lt;br /&gt;
      '87' -&amp;gt; '[contact category]:[comma separated list of Yahoo! IDs associated with the contact category]\x0A'&lt;br /&gt;
      '88' -&amp;gt; [comma separated list of Yahoo IDs in the user's ignore list]&lt;br /&gt;
      '89' -&amp;gt; [comma-separated list of user's main and alternate usernames go here]&lt;br /&gt;
      '59' -&amp;gt; 'Y\x09[data of &amp;quot;Y&amp;quot; cookie]'&lt;br /&gt;
      '59' -&amp;gt; 'T\x09[data of &amp;quot;T&amp;quot; cookie]'&lt;br /&gt;
      '59' -&amp;gt; 'C\x09mg=1'&lt;br /&gt;
      '3' -&amp;gt; [YahooId]&lt;br /&gt;
      '100' -&amp;gt; '0'&lt;br /&gt;
      '101' -&amp;gt; (blank)&lt;br /&gt;
      '102' -&amp;gt; (blank)&lt;br /&gt;
      '93' -&amp;gt; '86400'&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    If the contact, ignore, or identity list were too large for the server's taste, then multiple LIST packets would be sent with status 0x00000005 (NOTINOFFICE) containing chunks of the key-value pair for one type of list each before sending the rest of the LIST packet. &lt;br /&gt;
&lt;br /&gt;
8. The server will also send you a LOGON packet containing structures of your contacts statuses and the number of them contained:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Service: \x00\x01 (LOGON)&lt;br /&gt;
    &lt;br /&gt;
    Status: \x00\x00\x00\x00&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    Payload:&lt;br /&gt;
    &lt;br /&gt;
      '0' -&amp;gt; [YahooId]&lt;br /&gt;
      '1' -&amp;gt; [YahooId]&lt;br /&gt;
      '8' -&amp;gt; # of contact structures&lt;br /&gt;
      --- This collection of key-value pairs are added times the number specified in key 8 ---&lt;br /&gt;
      '7' -&amp;gt; Contact's Yahoo ID&lt;br /&gt;
      '10' -&amp;gt; Contact's YMSG status in integer format (99 (CUSTOM) if using a PSM or 0 (AVAILABLE) if offline)&lt;br /&gt;
      '11' -&amp;gt; Contact's YMSG session ID in uppercase hexadecimal&lt;br /&gt;
      '19' -&amp;gt; Contact's PSM (key-value pair only included if status == 99 (CUSTOM))&lt;br /&gt;
      '47' -&amp;gt; Flag for if contact's PSM is an away message or not (key-value pair only included if status == 99 (CUSTOM))&lt;br /&gt;
      '17' -&amp;gt; Contact is online on Yahoo! Chat (1 for yes, 0 for no; apparently this was only set to 1 if you were on Yahoo Chat's own protocol)&lt;br /&gt;
      '13' -&amp;gt; Contact is online on Yahoo! Messenger service (1 for yes, 0 for no)&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
The responses detailed in 7 and 8 will also be sent if the client queries the LIST service itself.&lt;br /&gt;
&lt;br /&gt;
9. If any, the server will send packets containing the logged on user's OIMs (TODO: packet structure)&lt;br /&gt;
&lt;br /&gt;
=== Presence ===&lt;br /&gt;
&lt;br /&gt;
When a user logs on successfully, their status set in the AUTHRESP packet will automatically be dispatched to their contacts.&lt;br /&gt;
&lt;br /&gt;
When a user wants to change their status to something other than online (this includes going invisible), Yahoo! Messenger will send an ISAWAY packet containing the following info:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Service: \x00\x03 (ISAWAY)&lt;br /&gt;
    &lt;br /&gt;
    Status: 0x00000000 (0; AVAILABLE/[REQUEST])&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Payload:&lt;br /&gt;
  &lt;br /&gt;
      '10' -&amp;gt; Numerical YMSG status (99 for CUSTOM)&lt;br /&gt;
      '19' -&amp;gt; PSM (only included if status == 99)&lt;br /&gt;
      '47' -&amp;gt; Going away? (usually 1)&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
If a user wants to go back as online, the client will send this:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Service: \x00\x04 (ISBACK)&lt;br /&gt;
    &lt;br /&gt;
    Status: 0x00000000 (0; AVAILABLE/[REQUEST])&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Payload:&lt;br /&gt;
  &lt;br /&gt;
      (None)&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
No responses are sent to the user setting their status for either service.&lt;br /&gt;
&lt;br /&gt;
When contact statuses are dispatched to other users, the server sends the same contact structure with the appropriate info with various services depending on the status the remote contact is on:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    Service: Various (LOGON if remote contact status is &amp;quot;offline -&amp;gt; online&amp;quot;; ISAWAY if remote contact status is &amp;quot;any available (no PSM)/idle status -&amp;gt; any available (with PSM)/idle status&amp;quot;; ISBACK if remote contact status is &amp;quot;any available (with PSM)/idle status -&amp;gt; regular available (no PSM) status&amp;quot;)&lt;br /&gt;
    &lt;br /&gt;
    Status 0x00000001 (1; BRB/RESPONSE)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Payload:&lt;br /&gt;
  &lt;br /&gt;
  '0' -&amp;gt; [Receiver's Yahoo ID] (only included if service != LOGOFF)&lt;br /&gt;
  '7' -&amp;gt; Contact's Yahoo ID&lt;br /&gt;
  '10' -&amp;gt; Contact's YMSG status in integer format (99 (CUSTOM) if using a PSM or 0 (AVAILABLE) if offline)&lt;br /&gt;
  '11' -&amp;gt; Contact's YMSG session ID in uppercase hexadecimal&lt;br /&gt;
  '19' -&amp;gt; Contact's PSM (key-value pair only included if status == 99 (CUSTOM))&lt;br /&gt;
  '47' -&amp;gt; Flag for if contact's PSM is an away message or not (key-value pair only included if status == 99 (CUSTOM))&lt;br /&gt;
  '17' -&amp;gt; Contact is online on Yahoo! Chat (1 for yes, 0 for no; apparently this was only set to 1 if you were on Yahoo Chat's own protocol)&lt;br /&gt;
  '13' -&amp;gt; Contact is online on Yahoo! Messenger service (1 for yes, 0 for no)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== YMSG10 - 14(?) ==&lt;br /&gt;
We don't currently know what in specific was changed between each of these protocol versions.&lt;br /&gt;
&lt;br /&gt;
YMSG10 is used by Yahoo! Messenger 5.5&lt;br /&gt;
&lt;br /&gt;
YMSG11 is used by Yahoo! Messenger 5.6&lt;br /&gt;
&lt;br /&gt;
YMSG12 is used by Yahoo! Messenger 6.0&lt;br /&gt;
&lt;br /&gt;
We currently do not know what versions used YMSG13 or YMSG14&lt;br /&gt;
&lt;br /&gt;
=== Auth ===&lt;br /&gt;
&lt;br /&gt;
1. (Same as YMSG9 steps 1 to 3; in version 11 the version field is now in the correct (network) endianness).&lt;br /&gt;
2. Server responds with:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Service: \x00\x57(W) (87; AUTH)&lt;br /&gt;
&lt;br /&gt;
    Status: \x00\x00\x00\x01 (1; BRB/[RESPONSE])&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Payload:&lt;br /&gt;
    &lt;br /&gt;
      '1' -&amp;gt; [YahooId]&lt;br /&gt;
      '94' -&amp;gt; [mathematical expression-like challenge string (64 bytes without parentheses)] ('g|i/p^h&amp;amp;z-d+2%v%x&amp;amp;j|e+(m^k-i%h*(s+8%a/u/x*(b-4*i%h^g^j|m^n-r*f+p+j)))')&lt;br /&gt;
      '13' -&amp;gt; '1'&lt;br /&gt;
    &lt;br /&gt;
3. Other, more complicated stuff ensues: https://web.archive.org/web/20031206174432if_/http://venkydude.com:80/articles/yahooencription.htm.&lt;br /&gt;
&lt;br /&gt;
4. After crafting the two response strings, the client sends:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Service \x00\x57(W) (87; AUTH)&lt;br /&gt;
    &lt;br /&gt;
    Status: \x5A\x55\xAA\x55&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Payload:&lt;br /&gt;
    &lt;br /&gt;
      '6' -&amp;gt; [First response string consisting of comma and semicolon separated &amp;quot;X=YZ&amp;quot; values] ('X=7e,H=je,H=j7;m=Cj,H=Cc,E=33;Q=ml;H=37;F=gg;w=F5;')&lt;br /&gt;
      '96' -&amp;gt; [Second response string also consisting of comma and semicolon separated &amp;quot;X=YZ&amp;quot; values] ('N=ah,m=F1,m=3A,Q=A2;T=Al,Z=Ep,h=he,S=0o;r=1B,C=h2;')&lt;br /&gt;
      '0' -&amp;gt; [YahooId]&lt;br /&gt;
      '2' -&amp;gt; '1'&lt;br /&gt;
      '1' -&amp;gt; [YahooId]&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
5. The rest is same as YMSG9's post-auth (to our understanding)&lt;br /&gt;
&lt;br /&gt;
    a. After the initial LOGON packet and before the OIM packets, the server will also send ping configuration in the form of a &amp;quot;tick&amp;quot; and &amp;quot;tock&amp;quot; interval that the official client uses to send pings:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Service: \x00\x12 (PINGCONFIGURATION)&lt;br /&gt;
    &lt;br /&gt;
    Status: \x00\x00\x00\x00&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    Payload:&lt;br /&gt;
    &lt;br /&gt;
    '143' -&amp;gt; Tick interval (usually 60)&lt;br /&gt;
    '144' -&amp;gt; Tock interval (usually 13)&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
== YMSG15-16 ==&lt;br /&gt;
As before, we are not certain what clients specifically used YMSG15 and YMSG16&lt;br /&gt;
&lt;br /&gt;
We're under the assumption YMSG15 was used by Yahoo! Messenger 8.0, and that YMSG16 was used by Yahoo! Messenger 9.0&lt;br /&gt;
&lt;br /&gt;
1. (YMSG16 only)&lt;br /&gt;
&lt;br /&gt;
    a. Client gets vcs1.msg.yahoo.com/capacity, which responds with&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    COLO_CAPACITY=1&lt;br /&gt;
    CS_IP_ADDRESS=[IP address to YMSG server]&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    b. If COLO_CAPACITY is != 0, Y!M will try connecting to the specified IP.&lt;br /&gt;
&lt;br /&gt;
2. (Same as YMSG10-14 steps 1 to 3.)&lt;br /&gt;
&lt;br /&gt;
3. Server responds with:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Service: \x00\x57(W) (87; AUTH)&lt;br /&gt;
    &lt;br /&gt;
    Status: \x00\x00\x00\x00 (0; AVAILABLE)&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Payload:&lt;br /&gt;
      '1' -&amp;gt; [YahooId]&lt;br /&gt;
      '13' -&amp;gt; '2'&lt;br /&gt;
      '94' -&amp;gt; [mathematical expression-like challenge string (64 bytes without parentheses)] ('g|i/p^h&amp;amp;z-d+2%v%x&amp;amp;j|e+(m^k-i%h*(s+8%a/u/x*(b-4*i%h^g^j|m^n-r*f+p+j)))')&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
4. Now the client just sends that stuff over to an HTTPS auth server to do the heavy lifting at https://login.yahoo.com/config/pwtoken_get?src=ymsgr&amp;amp;ts=&amp;amp;login=[username]&amp;amp;passwd=[password]&amp;amp;chal=[challenge string]. If the password and Yahoo! ID are correct, the following response is returned:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    0&lt;br /&gt;
    ymsgr=[token]&lt;br /&gt;
    partnerid=[partnerid]&lt;br /&gt;
    &lt;br /&gt;
5. Client now grabs the token and GET requests https://login.yahoo.com/pwtoken_login?src=ymsgr&amp;amp;ts=&amp;amp;token=[token], which sets the Y, T, and B cookies, and replies with:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    0&lt;br /&gt;
    crumb=[crumb]&lt;br /&gt;
    Y=[Y cookie]&lt;br /&gt;
    T=[T cookie]&lt;br /&gt;
    cookievalidfor=86400 [a day in seconds]&lt;br /&gt;
    SSL=[SSL cookie]&lt;br /&gt;
    &lt;br /&gt;
if the token is correct.&lt;br /&gt;
&lt;br /&gt;
6. The client retrieves the Y, T, and B cookies, along with the crumb, and then does the following: concatenates the crumb and challenge string sent; MD5 hashes the concatenation; and finally Yahoo64 encodes the hash. Let's call the resulting data &amp;quot;response&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
7. The client finally responds with this humongous packet:&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Service: \x00\x54(T) (84; AUTHRESP)&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Payload:&lt;br /&gt;
      &lt;br /&gt;
      '1' -&amp;gt; [YahooId]&lt;br /&gt;
      '0' -&amp;gt; [YahooId]&lt;br /&gt;
      '277' -&amp;gt; [Contents of the &amp;quot;Y&amp;quot; cookie]&lt;br /&gt;
      '278' -&amp;gt; [Contents of the &amp;quot;T&amp;quot; cookie]&lt;br /&gt;
      '307' -&amp;gt; [The &amp;quot;response&amp;quot; variable the client had crafted]&lt;br /&gt;
      '244' -&amp;gt; [The client's build ID]&lt;br /&gt;
      '2' -&amp;gt; [YahooId]&lt;br /&gt;
      '2' -&amp;gt; '1'&lt;br /&gt;
      '59' -&amp;gt; [Contents of the &amp;quot;B&amp;quot; cookie]&lt;br /&gt;
      '98' -&amp;gt; [Locale]&lt;br /&gt;
      '135' -&amp;gt; [Client version]&lt;/div&gt;</summary>
		<author><name>Bobsmith2</name></author>
	</entry>
	<entry>
		<id>https://wiki.nina.chat/index.php?title=Protocols/YMSG&amp;diff=8708</id>
		<title>Protocols/YMSG</title>
		<link rel="alternate" type="text/html" href="https://wiki.nina.chat/index.php?title=Protocols/YMSG&amp;diff=8708"/>
		<updated>2024-12-03T04:45:09Z</updated>

		<summary type="html">&lt;p&gt;Bobsmith2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Protocols/YMSG}}&lt;br /&gt;
YMSG was the network protocol used by Yahoo! Messenger for almost everything, including login, messaging and presence. It was a proprietary, homegrown solution created at Yahoo.&lt;br /&gt;
&lt;br /&gt;
If you have anything to contribute, or can see an error to correct in any of the information here, do not hesitate to contribute. Instructions are on the main page of the wiki.&lt;br /&gt;
&lt;br /&gt;
== General structure ==&lt;br /&gt;
&lt;br /&gt;
YMSG packets are binary-based. They consist of a magic string, version code, vendor ID, packet length, service code, status code, session ID, and an optional payload.&lt;br /&gt;
&lt;br /&gt;
The first field in a YMSG packet is the magic string `YMSG` at offset 0x00, which is 4 bytes in length.&lt;br /&gt;
&lt;br /&gt;
The second field is the version number of the protocol the client wants to use for the current YMSG session packed as a short on offset 0x04, and is 2 bytes long. For server-side packets, this field is usually 0.&lt;br /&gt;
&lt;br /&gt;
The third field, on offset 0x06, is the vendor ID of the client connecting to the YMSG server, which is a 2-byte long short-packed number. Supported values for the vendor ID are 0 (`\x00\x00`; Windows/NULL) and 100 (`\x00\x64`; Macintosh). For server-side packets, this value is usually set to 0, but we are not sure of this yet. Prior to YMSG16, it was believed that the vendor ID was part of the version code, effectively making the version a DWORD.&lt;br /&gt;
&lt;br /&gt;
The fourth field is the length of the packet's payload packed as a short, which is located on offset 0x08 and is also 2 bytes long.&lt;br /&gt;
&lt;br /&gt;
The fifth field is the service code the packet requests the server to execute the payload with. It is located on offset 0x0a and is 2 bytes long. There are a variety of services that a YMSG packet can utilize, and it has been observed that Yahoo! Messenger can swap protocol versions, meaning that features can be used on YMSG protocol versions that initially didn't support those features. Whether this mean older clients can potentially receive packets with services not recognized by their understanding of the protocol version they use hasn't been confirmed.&lt;br /&gt;
&lt;br /&gt;
The sixth field is the status code, which is a packed DWORD located at offset 0x0c and is 4 bytes long. This status code doesn't correspond to the logged in user's status, and is moreso used as a subcommand for most packet services. Interestingly enough, most of the status code in YMSG packets corresponds to the status codes used for contact presence. During authentication, this is used to determine if the user wants to log in under invisible mode. There are 19 YMSG statuses (that we've recorded as of now) that may or may not be used for contact statuses:&lt;br /&gt;
&lt;br /&gt;
    AVAILABLE/REQUEST: 0x00000000&lt;br /&gt;
    BRB/RESPONSE: 0x00000001&lt;br /&gt;
    BUSY: 0x00000002&lt;br /&gt;
    NOTATHOME/BADUSERNAME: 0x00000003&lt;br /&gt;
    NOTATDESK: 0x00000004&lt;br /&gt;
    NOTINOFFICE/OFFLINEMSG/MULTIPACKET: 0x00000005&lt;br /&gt;
    ONPHONE: 0x00000006&lt;br /&gt;
    ONVACATION: 0x00000007&lt;br /&gt;
    OUTTOLUNCH: 0x00000008&lt;br /&gt;
    STEPPEDOUT: 0x00000009&lt;br /&gt;
    INVISIBLE: 0x0000000C&lt;br /&gt;
    BAD: 0x0000000D&lt;br /&gt;
    LOCKED: 0x0000000E&lt;br /&gt;
    TYPING: 0x00000016&lt;br /&gt;
    CUSTOM: 0x00000063&lt;br /&gt;
    IDLE: 0x000003E7&lt;br /&gt;
    WEBLOGIN: 0x5A55AA55&lt;br /&gt;
    OFFLINE: 0x5A55AA56&lt;br /&gt;
    LOGINERROR: 0xFFFFFFFF&lt;br /&gt;
&lt;br /&gt;
The seventh field is the session ID, which is also a packed DWORD. It is located at offset 0x10 and is also 4 bytes long. The purpose of this field is to identify sessions and to verify if a user has the greenlight to use the main YMSG services (anything after authentication). It is believed that the official YMSG servers verified the session ID after authentication, but there is no hard evidence of this being the case, considering YMSG by design didn't validate the payloads of most services.&lt;br /&gt;
&lt;br /&gt;
The eighth, optional field is the payload for the service the packet wants to request. The payload is located at offset 0x14 and is variable-length or null. If not null, payloads are formatted in a generic key/value format, with the key usually being numeric. The key and value are separated by the delimiter `\xc0\x80`. An example of this format is below:&lt;br /&gt;
&lt;br /&gt;
    1[\xc0\x80]yahoo.id[\xc0\x80]&lt;br /&gt;
&lt;br /&gt;
`1` is the key and `yahoo.id` is the value of the key in this example.&lt;br /&gt;
&lt;br /&gt;
There is no limit to the amount of key/value pairs that can make up the payload, but due to the packet length in the packet's header being short-packed, the payload is limited to 65,535 bytes.&lt;br /&gt;
&lt;br /&gt;
== YMSG8 ==&lt;br /&gt;
&lt;br /&gt;
YMSG8 is the first known version of the protcol. Versions of Yahoo! Messenger 5.0 and below use it.&lt;br /&gt;
&lt;br /&gt;
=== Auth ===&lt;br /&gt;
&lt;br /&gt;
1. Client sends GET request to &lt;br /&gt;
&lt;br /&gt;
    http://msg.edit.yahoo.com/config/ncclogin?.src=bl&amp;amp;login=[username]&amp;amp;passwd=[password]&amp;amp;n=1&lt;br /&gt;
&lt;br /&gt;
2. Server responds with cookie `Y` and body:&lt;br /&gt;
&lt;br /&gt;
    ```&lt;br /&gt;
    OK&lt;br /&gt;
    BEGIN BUDDYLIST&lt;br /&gt;
    [contact category]:[comma separated list of Yahoo! IDs associated with the contact category]&lt;br /&gt;
    END BUDDYLIST&lt;br /&gt;
    BEGIN IGNORELIST&lt;br /&gt;
    [comma separated list of Yahoo IDs in the user's ignore list]&lt;br /&gt;
    END IGNORELIST&lt;br /&gt;
    BEGIN IDENTITIES&lt;br /&gt;
    [comma-separated list of user's main and alternate usernames go here]&lt;br /&gt;
    END IDENTITIES&lt;br /&gt;
    Mail=1&lt;br /&gt;
    Login=[username]&lt;br /&gt;
    ```&lt;br /&gt;
&lt;br /&gt;
3. Client opens a connection to a YMSG server via port 5050 and sends:&lt;br /&gt;
&lt;br /&gt;
    ```&lt;br /&gt;
    Service: \x00\x01 (LOGON)&lt;br /&gt;
&lt;br /&gt;
    Status: \x5A\x55\xAA\x55 (WEBLOGON)&lt;br /&gt;
    ```&lt;br /&gt;
    &lt;br /&gt;
    ```&lt;br /&gt;
    Payload:&lt;br /&gt;
      &lt;br /&gt;
      '0' -&amp;gt; [YahooId]&lt;br /&gt;
      '6' -&amp;gt; [md5-crypt(3)'d password]&lt;br /&gt;
      '1' -&amp;gt; [YahooId]&lt;br /&gt;
    ```&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4. If the verification of the password goes well, the server responds with:&lt;br /&gt;
&lt;br /&gt;
    ```&lt;br /&gt;
    Service: \x00\x01 (LOGON)&lt;br /&gt;
&lt;br /&gt;
    Status: \x00\x00\x00\x00 (0; [AVAILABLE]/REQUEST)&lt;br /&gt;
    ```&lt;br /&gt;
&lt;br /&gt;
    ```&lt;br /&gt;
    Payload:&lt;br /&gt;
    &lt;br /&gt;
      '0' -&amp;gt; [YahooId]&lt;br /&gt;
      '1' -&amp;gt; [YahooId]&lt;br /&gt;
    ```&lt;br /&gt;
&lt;br /&gt;
== YMSG9 ==&lt;br /&gt;
&lt;br /&gt;
YMSG9 is the second revision of the protocol, used by Yahoo! Messenger versions 5.0 through 5.4.&lt;br /&gt;
&lt;br /&gt;
=== Auth ===&lt;br /&gt;
&lt;br /&gt;
1. Client opens a connection to a YMSG server via port 5050 and sends:&lt;br /&gt;
&lt;br /&gt;
    ```&lt;br /&gt;
    Service: \x00\x4C (76; HANDSHAKE)&lt;br /&gt;
    &lt;br /&gt;
    Status: \x00\x00\x00\x00 (0; AVAILABLE/[REQUEST])&lt;br /&gt;
    ```&lt;br /&gt;
&lt;br /&gt;
2. Server responds with:&lt;br /&gt;
&lt;br /&gt;
    ```&lt;br /&gt;
    Service: \x00\x4C (76; HANDSHAKE)&lt;br /&gt;
&lt;br /&gt;
    Status: \x00\x00\x00\x01 (1; BRB/[RESPONSE])&lt;br /&gt;
    ```&lt;br /&gt;
&lt;br /&gt;
3. Client sends:&lt;br /&gt;
&lt;br /&gt;
    ```&lt;br /&gt;
    Service: \x00\x57 (87; AUTH)&lt;br /&gt;
&lt;br /&gt;
    Status: \x00\x00\x00\x00 (0; AVAILABLE/[REQUEST])&lt;br /&gt;
    ```&lt;br /&gt;
&lt;br /&gt;
    ```&lt;br /&gt;
    Payload:&lt;br /&gt;
    &lt;br /&gt;
      '1' -&amp;gt; [YahooId]&lt;br /&gt;
    ```&lt;br /&gt;
&lt;br /&gt;
4. On successful verification of the username, the server responds with the following packet (this is also when the server generates the session ID the client should use for the whole server session):&lt;br /&gt;
&lt;br /&gt;
    ```&lt;br /&gt;
    Service: \x00\x57 (87; AUTH)&lt;br /&gt;
    &lt;br /&gt;
    Status: \x00\x00\x00\x01 (1; BRB/[RESPONSE])&lt;br /&gt;
    ```&lt;br /&gt;
&lt;br /&gt;
    ```&lt;br /&gt;
    Payload:&lt;br /&gt;
    &lt;br /&gt;
      '1' -&amp;gt; [YahooId]&lt;br /&gt;
      '94' -&amp;gt; [24-byte Yahoo64-encoded challenge string] ('AA.BBCCDDEEGGHHIIH_HII--')&lt;br /&gt;
    ```&lt;br /&gt;
&lt;br /&gt;
5. The client then crafts two response strings with the challenge strings (details will be added onto later).&lt;br /&gt;
&lt;br /&gt;
6. After the client is done crafting the two response strings, the client responds with:&lt;br /&gt;
&lt;br /&gt;
    ```&lt;br /&gt;
    Service: \x00\x54 (54; AUTHRESP)&lt;br /&gt;
    &lt;br /&gt;
    Status: [Status the user wants to log in as; usually either AVAILABLE or INVISIBLE]&lt;br /&gt;
    ```&lt;br /&gt;
&lt;br /&gt;
    ```&lt;br /&gt;
    Payload:&lt;br /&gt;
    &lt;br /&gt;
      '0' -&amp;gt; [YahooId]&lt;br /&gt;
      '6' -&amp;gt; [Challenge response string 1] ('AA.BBCCDDEEGGHHIIH_HII--')&lt;br /&gt;
      '96' -&amp;gt; [Challenge response string 2] ('AA.BBCCDDEEGGHHIIH_HII--')&lt;br /&gt;
      '2' -&amp;gt; '1'&lt;br /&gt;
      '1' -&amp;gt; [YahooId]&lt;br /&gt;
    ```&lt;br /&gt;
&lt;br /&gt;
7. Server verifies the first and second response strings, and if all is well, responds with this:&lt;br /&gt;
&lt;br /&gt;
    ```&lt;br /&gt;
    Service: \x00\x55 (85; LIST)&lt;br /&gt;
&lt;br /&gt;
    Status: \x00\x00\x00\x00&lt;br /&gt;
    ```&lt;br /&gt;
&lt;br /&gt;
    ```&lt;br /&gt;
    Payload:&lt;br /&gt;
    &lt;br /&gt;
      '87' -&amp;gt; '[contact category]:[comma separated list of Yahoo! IDs associated with the contact category]\x0A'&lt;br /&gt;
      '88' -&amp;gt; [comma separated list of Yahoo IDs in the user's ignore list]&lt;br /&gt;
      '89' -&amp;gt; [comma-separated list of user's main and alternate usernames go here]&lt;br /&gt;
      '59' -&amp;gt; 'Y\x09[data of &amp;quot;Y&amp;quot; cookie]'&lt;br /&gt;
      '59' -&amp;gt; 'T\x09[data of &amp;quot;T&amp;quot; cookie]'&lt;br /&gt;
      '59' -&amp;gt; 'C\x09mg=1'&lt;br /&gt;
      '3' -&amp;gt; [YahooId]&lt;br /&gt;
      '100' -&amp;gt; '0'&lt;br /&gt;
      '101' -&amp;gt; (blank)&lt;br /&gt;
      '102' -&amp;gt; (blank)&lt;br /&gt;
      '93' -&amp;gt; '86400'&lt;br /&gt;
    ```&lt;br /&gt;
    &lt;br /&gt;
    If the contact, ignore, or identity list were too large for the server's taste, then multiple LIST packets would be sent with status 0x00000005 (NOTINOFFICE) containing chunks of the key-value pair for one type of list each before sending the rest of the LIST packet. &lt;br /&gt;
&lt;br /&gt;
8. The server will also send you a LOGON packet containing structures of your contacts statuses and the number of them contained:&lt;br /&gt;
&lt;br /&gt;
    ```&lt;br /&gt;
    Service: \x00\x01 (LOGON)&lt;br /&gt;
    &lt;br /&gt;
    Status: \x00\x00\x00\x00&lt;br /&gt;
    ```&lt;br /&gt;
    &lt;br /&gt;
    ```&lt;br /&gt;
    Payload:&lt;br /&gt;
    &lt;br /&gt;
      '0' -&amp;gt; [YahooId]&lt;br /&gt;
      '1' -&amp;gt; [YahooId]&lt;br /&gt;
      '8' -&amp;gt; # of contact structures&lt;br /&gt;
      --- This collection of key-value pairs are added times the number specified in key 8 ---&lt;br /&gt;
      '7' -&amp;gt; Contact's Yahoo ID&lt;br /&gt;
      '10' -&amp;gt; Contact's YMSG status in integer format (99 (CUSTOM) if using a PSM or 0 (AVAILABLE) if offline)&lt;br /&gt;
      '11' -&amp;gt; Contact's YMSG session ID in uppercase hexadecimal&lt;br /&gt;
      '19' -&amp;gt; Contact's PSM (key-value pair only included if status == 99 (CUSTOM))&lt;br /&gt;
      '47' -&amp;gt; Flag for if contact's PSM is an away message or not (key-value pair only included if status == 99 (CUSTOM))&lt;br /&gt;
      '17' -&amp;gt; Contact is online on Yahoo! Chat (1 for yes, 0 for no; apparently this was only set to 1 if you were on Yahoo Chat's own protocol)&lt;br /&gt;
      '13' -&amp;gt; Contact is online on Yahoo! Messenger service (1 for yes, 0 for no)&lt;br /&gt;
    ```&lt;br /&gt;
&lt;br /&gt;
The responses detailed in 7 and 8 will also be sent if the client queries the LIST service itself.&lt;br /&gt;
&lt;br /&gt;
9. If any, the server will send packets containing the logged on user's OIMs (TODO: packet structure)&lt;br /&gt;
&lt;br /&gt;
=== Presence ===&lt;br /&gt;
&lt;br /&gt;
When a user logs on successfully, their status set in the AUTHRESP packet will automatically be dispatched to their contacts.&lt;br /&gt;
&lt;br /&gt;
When a user wants to change their status to something other than online (this includes going invisible), Yahoo! Messenger will send an ISAWAY packet containing the following info:&lt;br /&gt;
&lt;br /&gt;
    ```&lt;br /&gt;
    Service: \x00\x03 (ISAWAY)&lt;br /&gt;
&lt;br /&gt;
    Status: 0x00000000 (0; AVAILABLE/[REQUEST])&lt;br /&gt;
    ```&lt;br /&gt;
&lt;br /&gt;
    ```&lt;br /&gt;
    Payload:&lt;br /&gt;
  &lt;br /&gt;
      '10' -&amp;gt; Numerical YMSG status (99 for CUSTOM)&lt;br /&gt;
      '19' -&amp;gt; PSM (only included if status == 99)&lt;br /&gt;
      '47' -&amp;gt; Going away? (usually 1)&lt;br /&gt;
    ```&lt;br /&gt;
&lt;br /&gt;
If a user wants to go back as online, the client will send this:&lt;br /&gt;
&lt;br /&gt;
    ```&lt;br /&gt;
    Service: \x00\x04 (ISBACK)&lt;br /&gt;
&lt;br /&gt;
    Status: 0x00000000 (0; AVAILABLE/[REQUEST])&lt;br /&gt;
    ```&lt;br /&gt;
&lt;br /&gt;
    ```&lt;br /&gt;
    Payload:&lt;br /&gt;
  &lt;br /&gt;
      (None)&lt;br /&gt;
    ```&lt;br /&gt;
&lt;br /&gt;
No responses are sent to the user setting their status for either service.&lt;br /&gt;
&lt;br /&gt;
When contact statuses are dispatched to other users, the server sends the same contact structure with the appropriate info with various services depending on the status the remote contact is on:&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
Service: Various (LOGON if remote contact status is &amp;quot;offline -&amp;gt; online&amp;quot;; ISAWAY if remote contact status is &amp;quot;any available (no PSM)/idle status -&amp;gt; any available (with PSM)/idle status&amp;quot;; ISBACK if remote contact status is &amp;quot;any available (with PSM)/idle status -&amp;gt; regular available (no PSM) status&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Status 0x00000001 (1; BRB/RESPONSE)&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
Payload:&lt;br /&gt;
  &lt;br /&gt;
  '0' -&amp;gt; [Receiver's Yahoo ID] (only included if service != LOGOFF)&lt;br /&gt;
  '7' -&amp;gt; Contact's Yahoo ID&lt;br /&gt;
  '10' -&amp;gt; Contact's YMSG status in integer format (99 (CUSTOM) if using a PSM or 0 (AVAILABLE) if offline)&lt;br /&gt;
  '11' -&amp;gt; Contact's YMSG session ID in uppercase hexadecimal&lt;br /&gt;
  '19' -&amp;gt; Contact's PSM (key-value pair only included if status == 99 (CUSTOM))&lt;br /&gt;
  '47' -&amp;gt; Flag for if contact's PSM is an away message or not (key-value pair only included if status == 99 (CUSTOM))&lt;br /&gt;
  '17' -&amp;gt; Contact is online on Yahoo! Chat (1 for yes, 0 for no; apparently this was only set to 1 if you were on Yahoo Chat's own protocol)&lt;br /&gt;
  '13' -&amp;gt; Contact is online on Yahoo! Messenger service (1 for yes, 0 for no)&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
== YMSG10 - 14(?) ==&lt;br /&gt;
We don't currently know what in specific was changed between each of these protocol versions.&lt;br /&gt;
&lt;br /&gt;
YMSG10 is used by Yahoo! Messenger 5.5&lt;br /&gt;
&lt;br /&gt;
YMSG11 is used by Yahoo! Messenger 5.6&lt;br /&gt;
&lt;br /&gt;
YMSG12 is used by Yahoo! Messenger 6.0&lt;br /&gt;
&lt;br /&gt;
We currently do not know what versions used YMSG13 or YMSG14&lt;br /&gt;
&lt;br /&gt;
=== Auth ===&lt;br /&gt;
&lt;br /&gt;
1. (Same as YMSG9 steps 1 to 3; in version 11 the version field is now in the correct (network) endianness).&lt;br /&gt;
2. Server responds with:&lt;br /&gt;
&lt;br /&gt;
    ```&lt;br /&gt;
    Service: \x00\x57(W) (87; AUTH)&lt;br /&gt;
&lt;br /&gt;
    Status: \x00\x00\x00\x01 (1; BRB/[RESPONSE])&lt;br /&gt;
    ```&lt;br /&gt;
&lt;br /&gt;
    ```&lt;br /&gt;
    Payload:&lt;br /&gt;
    &lt;br /&gt;
      '1' -&amp;gt; [YahooId]&lt;br /&gt;
      '94' -&amp;gt; [mathematical expression-like challenge string (64 bytes without parentheses)] ('g|i/p^h&amp;amp;z-d+2%v%x&amp;amp;j|e+(m^k-i%h*(s+8%a/u/x*(b-4*i%h^g^j|m^n-r*f+p+j)))')&lt;br /&gt;
      '13' -&amp;gt; '1'&lt;br /&gt;
    ```&lt;br /&gt;
3. Other, more complicated stuff ensues: https://web.archive.org/web/20031206174432if_/http://venkydude.com:80/articles/yahooencription.htm.&lt;br /&gt;
&lt;br /&gt;
4. After crafting the two response strings, the client sends:&lt;br /&gt;
&lt;br /&gt;
    ```&lt;br /&gt;
    Service \x00\x57(W) (87; AUTH)&lt;br /&gt;
    &lt;br /&gt;
    Status: \x5A\x55\xAA\x55&lt;br /&gt;
    ```&lt;br /&gt;
&lt;br /&gt;
    ```&lt;br /&gt;
    Payload:&lt;br /&gt;
    &lt;br /&gt;
      '6' -&amp;gt; [First response string consisting of comma and semicolon separated &amp;quot;X=YZ&amp;quot; values] ('X=7e,H=je,H=j7;m=Cj,H=Cc,E=33;Q=ml;H=37;F=gg;w=F5;')&lt;br /&gt;
      '96' -&amp;gt; [Second response string also consisting of comma and semicolon separated &amp;quot;X=YZ&amp;quot; values] ('N=ah,m=F1,m=3A,Q=A2;T=Al,Z=Ep,h=he,S=0o;r=1B,C=h2;')&lt;br /&gt;
      '0' -&amp;gt; [YahooId]&lt;br /&gt;
      '2' -&amp;gt; '1'&lt;br /&gt;
      '1' -&amp;gt; [YahooId]&lt;br /&gt;
    ```&lt;br /&gt;
&lt;br /&gt;
5. The rest is same as YMSG9's post-auth (to our understanding)&lt;br /&gt;
&lt;br /&gt;
    a. After the initial LOGON packet and before the OIM packets, the server will also send ping configuration in the form of a &amp;quot;tick&amp;quot; and &amp;quot;tock&amp;quot; interval that the official client uses to send pings:&lt;br /&gt;
&lt;br /&gt;
    ```&lt;br /&gt;
    Service: \x00\x12 (PINGCONFIGURATION)&lt;br /&gt;
    &lt;br /&gt;
    Status: \x00\x00\x00\x00&lt;br /&gt;
    ```&lt;br /&gt;
    &lt;br /&gt;
    ```&lt;br /&gt;
    Payload:&lt;br /&gt;
    &lt;br /&gt;
    '143' -&amp;gt; Tick interval (usually 60)&lt;br /&gt;
    '144' -&amp;gt; Tock interval (usually 13)&lt;br /&gt;
    ```&lt;br /&gt;
&lt;br /&gt;
== YMSG15-16 ==&lt;br /&gt;
As before, we are not certain what clients specifically used YMSG15 and YMSG16&lt;br /&gt;
&lt;br /&gt;
We're under the assumption YMSG15 was used by Yahoo! Messenger 8.0, and that YMSG16 was used by Yahoo! Messenger 9.0&lt;br /&gt;
&lt;br /&gt;
1. (YMSG16 only)&lt;br /&gt;
&lt;br /&gt;
    a. Client gets `vcs1.msg.yahoo.com/capacity`, which responds with&lt;br /&gt;
&lt;br /&gt;
    ```&lt;br /&gt;
    COLO_CAPACITY=1&lt;br /&gt;
    CS_IP_ADDRESS=[IP address to YMSG server]&lt;br /&gt;
    ```&lt;br /&gt;
&lt;br /&gt;
    b. If `COLO_CAPACITY` is != 0, Y!M will try connecting to the specified IP.&lt;br /&gt;
&lt;br /&gt;
2. (Same as YMSG10-14 steps 1 to 3.)&lt;br /&gt;
&lt;br /&gt;
3. Server responds with:&lt;br /&gt;
&lt;br /&gt;
    ```&lt;br /&gt;
    Service: \x00\x57(W) (87; AUTH)&lt;br /&gt;
    &lt;br /&gt;
    Status: \x00\x00\x00\x00 (0; AVAILABLE)&lt;br /&gt;
    ```&lt;br /&gt;
&lt;br /&gt;
    ```&lt;br /&gt;
    Payload:&lt;br /&gt;
      '1' -&amp;gt; [YahooId]&lt;br /&gt;
      '13' -&amp;gt; '2'&lt;br /&gt;
      '94' -&amp;gt; [mathematical expression-like challenge string (64 bytes without parentheses)] ('g|i/p^h&amp;amp;z-d+2%v%x&amp;amp;j|e+(m^k-i%h*(s+8%a/u/x*(b-4*i%h^g^j|m^n-r*f+p+j)))')&lt;br /&gt;
    ```&lt;br /&gt;
&lt;br /&gt;
4. Now the client just sends that stuff over to an HTTPS auth server to do the heavy lifting at `https://login.yahoo.com/config/pwtoken_get?src=ymsgr&amp;amp;ts=&amp;amp;login=[username]&amp;amp;passwd=[password]&amp;amp;chal=[challenge string]`. If the password and Yahoo! ID are correct, the following response is returned:&lt;br /&gt;
&lt;br /&gt;
    ```&lt;br /&gt;
    0&lt;br /&gt;
    ymsgr=[token]&lt;br /&gt;
    partnerid=[partnerid]&lt;br /&gt;
    ```&lt;br /&gt;
5. Client now grabs the token and GET requests `https://login.yahoo.com/pwtoken_login?src=ymsgr&amp;amp;ts=&amp;amp;token=[token]`, which sets the `Y`, `T`, and `B` cookies, and replies with:&lt;br /&gt;
&lt;br /&gt;
    ```&lt;br /&gt;
    0&lt;br /&gt;
    crumb=[crumb]&lt;br /&gt;
    Y=[Y cookie]&lt;br /&gt;
    T=[T cookie]&lt;br /&gt;
    cookievalidfor=86400 [a day in seconds]&lt;br /&gt;
    SSL=[SSL cookie]&lt;br /&gt;
    ```&lt;br /&gt;
if the token is correct.&lt;br /&gt;
&lt;br /&gt;
6. The client retrieves the `Y`, `T`, and `B` cookies, along with the crumb, and then does the following: concatenates the crumb and challenge string sent; MD5 hashes the concatenation; and finally Yahoo64 encodes the hash. Let's call the resulting data &amp;quot;response&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
7. The client finally responds with this humongous packet:&lt;br /&gt;
&lt;br /&gt;
    ```&lt;br /&gt;
    Service: \x00\x54(T) (84; AUTHRESP)&lt;br /&gt;
    ```&lt;br /&gt;
&lt;br /&gt;
    ```&lt;br /&gt;
    Payload:&lt;br /&gt;
      &lt;br /&gt;
      '1' -&amp;gt; [YahooId]&lt;br /&gt;
      '0' -&amp;gt; [YahooId]&lt;br /&gt;
      '277' -&amp;gt; [Contents of the &amp;quot;Y&amp;quot; cookie]&lt;br /&gt;
      '278' -&amp;gt; [Contents of the &amp;quot;T&amp;quot; cookie]&lt;br /&gt;
      '307' -&amp;gt; [The &amp;quot;response&amp;quot; variable the client had crafted]&lt;br /&gt;
      '244' -&amp;gt; [The client's build ID]&lt;br /&gt;
      '2' -&amp;gt; [YahooId]&lt;br /&gt;
      '2' -&amp;gt; '1'&lt;br /&gt;
      '59' -&amp;gt; [Contents of the &amp;quot;B&amp;quot; cookie]&lt;br /&gt;
      '98' -&amp;gt; [Locale]&lt;br /&gt;
      '135' -&amp;gt; [Client version]&lt;br /&gt;
    ```&lt;/div&gt;</summary>
		<author><name>Bobsmith2</name></author>
	</entry>
	<entry>
		<id>https://wiki.nina.chat/index.php?title=Protocols/YMSG&amp;diff=8707</id>
		<title>Protocols/YMSG</title>
		<link rel="alternate" type="text/html" href="https://wiki.nina.chat/index.php?title=Protocols/YMSG&amp;diff=8707"/>
		<updated>2024-12-03T04:38:40Z</updated>

		<summary type="html">&lt;p&gt;Bobsmith2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Protocols/YMSG}}&lt;br /&gt;
YMSG was the network protocol used by Yahoo! Messenger for almost everything, including login, messaging and presence. It was a proprietary, homegrown solution created at Yahoo.&lt;br /&gt;
&lt;br /&gt;
If you have anything to contribute, or can see an error to correct in any of the information here, do not hesitate to contribute. Instructions are on the main page of the wiki.&lt;br /&gt;
&lt;br /&gt;
== General structure ==&lt;br /&gt;
&lt;br /&gt;
YMSG packets are binary-based. They consist of a magic string, version code, vendor ID, packet length, service code, status code, session ID, and an optional payload.&lt;br /&gt;
&lt;br /&gt;
The first field in a YMSG packet is the magic string `YMSG` at offset 0x00, which is 4 bytes in length.&lt;br /&gt;
&lt;br /&gt;
The second field is the version number of the protocol the client wants to use for the current YMSG session packed as a short on offset 0x04, and is 2 bytes long. For server-side packets, this field is usually 0.&lt;br /&gt;
&lt;br /&gt;
The third field, on offset 0x06, is the vendor ID of the client connecting to the YMSG server, which is a 2-byte long short-packed number. Supported values for the vendor ID are 0 (`\x00\x00`; Windows/NULL) and 100 (`\x00\x64`; Macintosh). For server-side packets, this value is usually set to 0, but we are not sure of this yet. Prior to YMSG16, it was believed that the vendor ID was part of the version code, effectively making the version a DWORD.&lt;br /&gt;
&lt;br /&gt;
The fourth field is the length of the packet's payload packed as a short, which is located on offset 0x08 and is also 2 bytes long.&lt;br /&gt;
&lt;br /&gt;
The fifth field is the service code the packet requests the server to execute the payload with. It is located on offset 0x0a and is 2 bytes long. There are a variety of services that a YMSG packet can utilize, and it has been observed that Yahoo! Messenger can swap protocol versions, meaning that features can be used on YMSG protocol versions that initially didn't support those features. Whether this mean older clients can potentially receive packets with services not recognized by their understanding of the protocol version they use hasn't been confirmed.&lt;br /&gt;
&lt;br /&gt;
The sixth field is the status code, which is a packed DWORD located at offset 0x0c and is 4 bytes long. This status code doesn't correspond to the logged in user's status, and is moreso used as a subcommand for most packet services. Interestingly enough, most of the status code in YMSG packets corresponds to the status codes used for contact presence. During authentication, this is used to determine if the user wants to log in under invisible mode. There are 19 YMSG statuses (that we've recorded as of now) that may or may not be used for contact statuses:&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
AVAILABLE/REQUEST: 0x00000000&lt;br /&gt;
BRB/RESPONSE: 0x00000001&lt;br /&gt;
BUSY: 0x00000002&lt;br /&gt;
NOTATHOME/BADUSERNAME: 0x00000003&lt;br /&gt;
NOTATDESK: 0x00000004&lt;br /&gt;
NOTINOFFICE/OFFLINEMSG/MULTIPACKET: 0x00000005&lt;br /&gt;
ONPHONE: 0x00000006&lt;br /&gt;
ONVACATION: 0x00000007&lt;br /&gt;
OUTTOLUNCH: 0x00000008&lt;br /&gt;
STEPPEDOUT: 0x00000009&lt;br /&gt;
INVISIBLE: 0x0000000C&lt;br /&gt;
BAD: 0x0000000D&lt;br /&gt;
LOCKED: 0x0000000E&lt;br /&gt;
TYPING: 0x00000016&lt;br /&gt;
CUSTOM: 0x00000063&lt;br /&gt;
IDLE: 0x000003E7&lt;br /&gt;
WEBLOGIN: 0x5A55AA55&lt;br /&gt;
OFFLINE: 0x5A55AA56&lt;br /&gt;
LOGINERROR: 0xFFFFFFFF&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
The seventh field is the session ID, which is also a packed DWORD. It is located at offset 0x10 and is also 4 bytes long. The purpose of this field is to identify sessions and to verify if a user has the greenlight to use the main YMSG services (anything after authentication). It is believed that the official YMSG servers verified the session ID after authentication, but there is no hard evidence of this being the case, considering YMSG by design didn't validate the payloads of most services.&lt;br /&gt;
&lt;br /&gt;
The eighth, optional field is the payload for the service the packet wants to request. The payload is located at offset 0x14 and is variable-length or null. If not null, payloads are formatted in a generic key/value format, with the key usually being numeric. The key and value are separated by the delimiter `\xc0\x80`. An example of this format is below:&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
1[\xc0\x80]yahoo.id[\xc0\x80]&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
`1` is the key and `yahoo.id` is the value of the key in this example.&lt;br /&gt;
&lt;br /&gt;
There is no limit to the amount of key/value pairs that can make up the payload, but due to the packet length in the packet's header being short-packed, the payload is limited to 65,535 bytes.&lt;br /&gt;
&lt;br /&gt;
== YMSG8 ==&lt;br /&gt;
&lt;br /&gt;
YMSG8 is the first known version of the protcol. Versions of Yahoo! Messenger 5.0 and below use it.&lt;br /&gt;
&lt;br /&gt;
=== Auth ===&lt;br /&gt;
&lt;br /&gt;
1. Client sends GET request to &lt;br /&gt;
&lt;br /&gt;
http://msg.edit.yahoo.com/config/ncclogin?.src=bl&amp;amp;login=[username]&amp;amp;passwd=[password]&amp;amp;n=1&lt;br /&gt;
&lt;br /&gt;
2. Server responds with cookie `Y` and body:&lt;br /&gt;
&lt;br /&gt;
    ```&lt;br /&gt;
    OK&lt;br /&gt;
    BEGIN BUDDYLIST&lt;br /&gt;
    [contact category]:[comma separated list of Yahoo! IDs associated with the contact category]&lt;br /&gt;
    END BUDDYLIST&lt;br /&gt;
    BEGIN IGNORELIST&lt;br /&gt;
    [comma separated list of Yahoo IDs in the user's ignore list]&lt;br /&gt;
    END IGNORELIST&lt;br /&gt;
    BEGIN IDENTITIES&lt;br /&gt;
    [comma-separated list of user's main and alternate usernames go here]&lt;br /&gt;
    END IDENTITIES&lt;br /&gt;
    Mail=1&lt;br /&gt;
    Login=[username]&lt;br /&gt;
    ```&lt;br /&gt;
&lt;br /&gt;
3. Client opens a connection to a YMSG server via port 5050 and sends:&lt;br /&gt;
&lt;br /&gt;
    ```&lt;br /&gt;
    Service: \x00\x01 (LOGON)&lt;br /&gt;
&lt;br /&gt;
    Status: \x5A\x55\xAA\x55 (WEBLOGON)&lt;br /&gt;
    ```&lt;br /&gt;
    &lt;br /&gt;
    ```&lt;br /&gt;
    Payload:&lt;br /&gt;
      &lt;br /&gt;
      '0' -&amp;gt; [YahooId]&lt;br /&gt;
      '6' -&amp;gt; [md5-crypt(3)'d password]&lt;br /&gt;
      '1' -&amp;gt; [YahooId]&lt;br /&gt;
    ```&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4. If the verification of the password goes well, the server responds with:&lt;br /&gt;
&lt;br /&gt;
    ```&lt;br /&gt;
    Service: \x00\x01 (LOGON)&lt;br /&gt;
&lt;br /&gt;
    Status: \x00\x00\x00\x00 (0; [AVAILABLE]/REQUEST)&lt;br /&gt;
    ```&lt;br /&gt;
&lt;br /&gt;
    ```&lt;br /&gt;
    Payload:&lt;br /&gt;
    &lt;br /&gt;
      '0' -&amp;gt; [YahooId]&lt;br /&gt;
      '1' -&amp;gt; [YahooId]&lt;br /&gt;
    ```&lt;br /&gt;
&lt;br /&gt;
== YMSG9 ==&lt;br /&gt;
&lt;br /&gt;
YMSG9 is the second revision of the protocol, used by Yahoo! Messenger versions 5.0 through 5.4.&lt;br /&gt;
&lt;br /&gt;
=== Auth ===&lt;br /&gt;
&lt;br /&gt;
1. Client opens a connection to a YMSG server via port 5050 and sends:&lt;br /&gt;
&lt;br /&gt;
    ```&lt;br /&gt;
    Service: \x00\x4C (76; HANDSHAKE)&lt;br /&gt;
    &lt;br /&gt;
    Status: \x00\x00\x00\x00 (0; AVAILABLE/[REQUEST])&lt;br /&gt;
    ```&lt;br /&gt;
&lt;br /&gt;
2. Server responds with:&lt;br /&gt;
&lt;br /&gt;
    ```&lt;br /&gt;
    Service: \x00\x4C (76; HANDSHAKE)&lt;br /&gt;
&lt;br /&gt;
    Status: \x00\x00\x00\x01 (1; BRB/[RESPONSE])&lt;br /&gt;
    ```&lt;br /&gt;
&lt;br /&gt;
3. Client sends:&lt;br /&gt;
&lt;br /&gt;
    ```&lt;br /&gt;
    Service: \x00\x57 (87; AUTH)&lt;br /&gt;
&lt;br /&gt;
    Status: \x00\x00\x00\x00 (0; AVAILABLE/[REQUEST])&lt;br /&gt;
    ```&lt;br /&gt;
&lt;br /&gt;
    ```&lt;br /&gt;
    Payload:&lt;br /&gt;
    &lt;br /&gt;
      '1' -&amp;gt; [YahooId]&lt;br /&gt;
    ```&lt;br /&gt;
&lt;br /&gt;
4. On successful verification of the username, the server responds with the following packet (this is also when the server generates the session ID the client should use for the whole server session):&lt;br /&gt;
&lt;br /&gt;
    ```&lt;br /&gt;
    Service: \x00\x57 (87; AUTH)&lt;br /&gt;
    &lt;br /&gt;
    Status: \x00\x00\x00\x01 (1; BRB/[RESPONSE])&lt;br /&gt;
    ```&lt;br /&gt;
&lt;br /&gt;
    ```&lt;br /&gt;
    Payload:&lt;br /&gt;
    &lt;br /&gt;
      '1' -&amp;gt; [YahooId]&lt;br /&gt;
      '94' -&amp;gt; [24-byte Yahoo64-encoded challenge string] ('AA.BBCCDDEEGGHHIIH_HII--')&lt;br /&gt;
    ```&lt;br /&gt;
&lt;br /&gt;
5. The client then crafts two response strings with the challenge strings (details will be added onto later).&lt;br /&gt;
&lt;br /&gt;
6. After the client is done crafting the two response strings, the client responds with:&lt;br /&gt;
&lt;br /&gt;
    ```&lt;br /&gt;
    Service: \x00\x54 (54; AUTHRESP)&lt;br /&gt;
    &lt;br /&gt;
    Status: [Status the user wants to log in as; usually either AVAILABLE or INVISIBLE]&lt;br /&gt;
    ```&lt;br /&gt;
&lt;br /&gt;
    ```&lt;br /&gt;
    Payload:&lt;br /&gt;
    &lt;br /&gt;
      '0' -&amp;gt; [YahooId]&lt;br /&gt;
      '6' -&amp;gt; [Challenge response string 1] ('AA.BBCCDDEEGGHHIIH_HII--')&lt;br /&gt;
      '96' -&amp;gt; [Challenge response string 2] ('AA.BBCCDDEEGGHHIIH_HII--')&lt;br /&gt;
      '2' -&amp;gt; '1'&lt;br /&gt;
      '1' -&amp;gt; [YahooId]&lt;br /&gt;
    ```&lt;br /&gt;
&lt;br /&gt;
7. Server verifies the first and second response strings, and if all is well, responds with this:&lt;br /&gt;
&lt;br /&gt;
    ```&lt;br /&gt;
    Service: \x00\x55 (85; LIST)&lt;br /&gt;
&lt;br /&gt;
    Status: \x00\x00\x00\x00&lt;br /&gt;
    ```&lt;br /&gt;
&lt;br /&gt;
    ```&lt;br /&gt;
    Payload:&lt;br /&gt;
    &lt;br /&gt;
      '87' -&amp;gt; '[contact category]:[comma separated list of Yahoo! IDs associated with the contact category]\x0A'&lt;br /&gt;
      '88' -&amp;gt; [comma separated list of Yahoo IDs in the user's ignore list]&lt;br /&gt;
      '89' -&amp;gt; [comma-separated list of user's main and alternate usernames go here]&lt;br /&gt;
      '59' -&amp;gt; 'Y\x09[data of &amp;quot;Y&amp;quot; cookie]'&lt;br /&gt;
      '59' -&amp;gt; 'T\x09[data of &amp;quot;T&amp;quot; cookie]'&lt;br /&gt;
      '59' -&amp;gt; 'C\x09mg=1'&lt;br /&gt;
      '3' -&amp;gt; [YahooId]&lt;br /&gt;
      '100' -&amp;gt; '0'&lt;br /&gt;
      '101' -&amp;gt; (blank)&lt;br /&gt;
      '102' -&amp;gt; (blank)&lt;br /&gt;
      '93' -&amp;gt; '86400'&lt;br /&gt;
    ```&lt;br /&gt;
    &lt;br /&gt;
    If the contact, ignore, or identity list were too large for the server's taste, then multiple LIST packets would be sent with status 0x00000005 (NOTINOFFICE) containing chunks of the key-value pair for one type of list each before sending the rest of the LIST packet. &lt;br /&gt;
&lt;br /&gt;
8. The server will also send you a LOGON packet containing structures of your contacts statuses and the number of them contained:&lt;br /&gt;
&lt;br /&gt;
    ```&lt;br /&gt;
    Service: \x00\x01 (LOGON)&lt;br /&gt;
    &lt;br /&gt;
    Status: \x00\x00\x00\x00&lt;br /&gt;
    ```&lt;br /&gt;
    &lt;br /&gt;
    ```&lt;br /&gt;
    Payload:&lt;br /&gt;
    &lt;br /&gt;
      '0' -&amp;gt; [YahooId]&lt;br /&gt;
      '1' -&amp;gt; [YahooId]&lt;br /&gt;
      '8' -&amp;gt; # of contact structures&lt;br /&gt;
      --- This collection of key-value pairs are added times the number specified in key 8 ---&lt;br /&gt;
      '7' -&amp;gt; Contact's Yahoo ID&lt;br /&gt;
      '10' -&amp;gt; Contact's YMSG status in integer format (99 (CUSTOM) if using a PSM or 0 (AVAILABLE) if offline)&lt;br /&gt;
      '11' -&amp;gt; Contact's YMSG session ID in uppercase hexadecimal&lt;br /&gt;
      '19' -&amp;gt; Contact's PSM (key-value pair only included if status == 99 (CUSTOM))&lt;br /&gt;
      '47' -&amp;gt; Flag for if contact's PSM is an away message or not (key-value pair only included if status == 99 (CUSTOM))&lt;br /&gt;
      '17' -&amp;gt; Contact is online on Yahoo! Chat (1 for yes, 0 for no; apparently this was only set to 1 if you were on Yahoo Chat's own protocol)&lt;br /&gt;
      '13' -&amp;gt; Contact is online on Yahoo! Messenger service (1 for yes, 0 for no)&lt;br /&gt;
    ```&lt;br /&gt;
&lt;br /&gt;
The responses detailed in 7 and 8 will also be sent if the client queries the LIST service itself.&lt;br /&gt;
&lt;br /&gt;
9. If any, the server will send packets containing the logged on user's OIMs (TODO: packet structure)&lt;br /&gt;
&lt;br /&gt;
=== Presence ===&lt;br /&gt;
&lt;br /&gt;
When a user logs on successfully, their status set in the AUTHRESP packet will automatically be dispatched to their contacts.&lt;br /&gt;
&lt;br /&gt;
When a user wants to change their status to something other than online (this includes going invisible), Yahoo! Messenger will send an ISAWAY packet containing the following info:&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
Service: \x00\x03 (ISAWAY)&lt;br /&gt;
&lt;br /&gt;
Status: 0x00000000 (0; AVAILABLE/[REQUEST])&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
Payload:&lt;br /&gt;
  &lt;br /&gt;
  '10' -&amp;gt; Numerical YMSG status (99 for CUSTOM)&lt;br /&gt;
  '19' -&amp;gt; PSM (only included if status == 99)&lt;br /&gt;
  '47' -&amp;gt; Going away? (usually 1)&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
If a user wants to go back as online, the client will send this:&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
Service: \x00\x04 (ISBACK)&lt;br /&gt;
&lt;br /&gt;
Status: 0x00000000 (0; AVAILABLE/[REQUEST])&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
Payload:&lt;br /&gt;
  &lt;br /&gt;
  (None)&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
No responses are sent to the user setting their status for either service.&lt;br /&gt;
&lt;br /&gt;
When contact statuses are dispatched to other users, the server sends the same contact structure with the appropriate info with various services depending on the status the remote contact is on:&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
Service: Various (LOGON if remote contact status is &amp;quot;offline -&amp;gt; online&amp;quot;; ISAWAY if remote contact status is &amp;quot;any available (no PSM)/idle status -&amp;gt; any available (with PSM)/idle status&amp;quot;; ISBACK if remote contact status is &amp;quot;any available (with PSM)/idle status -&amp;gt; regular available (no PSM) status&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Status 0x00000001 (1; BRB/RESPONSE)&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
Payload:&lt;br /&gt;
  &lt;br /&gt;
  '0' -&amp;gt; [Receiver's Yahoo ID] (only included if service != LOGOFF)&lt;br /&gt;
  '7' -&amp;gt; Contact's Yahoo ID&lt;br /&gt;
  '10' -&amp;gt; Contact's YMSG status in integer format (99 (CUSTOM) if using a PSM or 0 (AVAILABLE) if offline)&lt;br /&gt;
  '11' -&amp;gt; Contact's YMSG session ID in uppercase hexadecimal&lt;br /&gt;
  '19' -&amp;gt; Contact's PSM (key-value pair only included if status == 99 (CUSTOM))&lt;br /&gt;
  '47' -&amp;gt; Flag for if contact's PSM is an away message or not (key-value pair only included if status == 99 (CUSTOM))&lt;br /&gt;
  '17' -&amp;gt; Contact is online on Yahoo! Chat (1 for yes, 0 for no; apparently this was only set to 1 if you were on Yahoo Chat's own protocol)&lt;br /&gt;
  '13' -&amp;gt; Contact is online on Yahoo! Messenger service (1 for yes, 0 for no)&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
== YMSG10 - 14(?) ==&lt;br /&gt;
We don't currently know what in specific was changed between each of these protocol versions.&lt;br /&gt;
&lt;br /&gt;
YMSG10 is used by Yahoo! Messenger 5.5&lt;br /&gt;
&lt;br /&gt;
YMSG11 is used by Yahoo! Messenger 5.6&lt;br /&gt;
&lt;br /&gt;
YMSG12 is used by Yahoo! Messenger 6.0&lt;br /&gt;
&lt;br /&gt;
We currently do not know what versions used YMSG13 or YMSG14&lt;br /&gt;
&lt;br /&gt;
=== Auth ===&lt;br /&gt;
&lt;br /&gt;
1. (Same as YMSG9 steps 1 to 3; in version 11 the version field is now in the correct (network) endianness).&lt;br /&gt;
2. Server responds with:&lt;br /&gt;
&lt;br /&gt;
    ```&lt;br /&gt;
    Service: \x00\x57(W) (87; AUTH)&lt;br /&gt;
&lt;br /&gt;
    Status: \x00\x00\x00\x01 (1; BRB/[RESPONSE])&lt;br /&gt;
    ```&lt;br /&gt;
&lt;br /&gt;
    ```&lt;br /&gt;
    Payload:&lt;br /&gt;
    &lt;br /&gt;
      '1' -&amp;gt; [YahooId]&lt;br /&gt;
      '94' -&amp;gt; [mathematical expression-like challenge string (64 bytes without parentheses)] ('g|i/p^h&amp;amp;z-d+2%v%x&amp;amp;j|e+(m^k-i%h*(s+8%a/u/x*(b-4*i%h^g^j|m^n-r*f+p+j)))')&lt;br /&gt;
      '13' -&amp;gt; '1'&lt;br /&gt;
    ```&lt;br /&gt;
3. Other, more complicated stuff ensues: https://web.archive.org/web/20031206174432if_/http://venkydude.com:80/articles/yahooencription.htm.&lt;br /&gt;
&lt;br /&gt;
4. After crafting the two response strings, the client sends:&lt;br /&gt;
&lt;br /&gt;
    ```&lt;br /&gt;
    Service \x00\x57(W) (87; AUTH)&lt;br /&gt;
    &lt;br /&gt;
    Status: \x5A\x55\xAA\x55&lt;br /&gt;
    ```&lt;br /&gt;
&lt;br /&gt;
    ```&lt;br /&gt;
    Payload:&lt;br /&gt;
    &lt;br /&gt;
      '6' -&amp;gt; [First response string consisting of comma and semicolon separated &amp;quot;X=YZ&amp;quot; values] ('X=7e,H=je,H=j7;m=Cj,H=Cc,E=33;Q=ml;H=37;F=gg;w=F5;')&lt;br /&gt;
      '96' -&amp;gt; [Second response string also consisting of comma and semicolon separated &amp;quot;X=YZ&amp;quot; values] ('N=ah,m=F1,m=3A,Q=A2;T=Al,Z=Ep,h=he,S=0o;r=1B,C=h2;')&lt;br /&gt;
      '0' -&amp;gt; [YahooId]&lt;br /&gt;
      '2' -&amp;gt; '1'&lt;br /&gt;
      '1' -&amp;gt; [YahooId]&lt;br /&gt;
    ```&lt;br /&gt;
&lt;br /&gt;
5. The rest is same as YMSG9's post-auth (to our understanding)&lt;br /&gt;
&lt;br /&gt;
    a. After the initial LOGON packet and before the OIM packets, the server will also send ping configuration in the form of a &amp;quot;tick&amp;quot; and &amp;quot;tock&amp;quot; interval that the official client uses to send pings:&lt;br /&gt;
&lt;br /&gt;
    ```&lt;br /&gt;
    Service: \x00\x12 (PINGCONFIGURATION)&lt;br /&gt;
    &lt;br /&gt;
    Status: \x00\x00\x00\x00&lt;br /&gt;
    ```&lt;br /&gt;
    &lt;br /&gt;
    ```&lt;br /&gt;
    Payload:&lt;br /&gt;
    &lt;br /&gt;
    '143' -&amp;gt; Tick interval (usually 60)&lt;br /&gt;
    '144' -&amp;gt; Tock interval (usually 13)&lt;br /&gt;
    ```&lt;br /&gt;
&lt;br /&gt;
== YMSG15-16 ==&lt;br /&gt;
As before, we are not certain what clients specifically used YMSG15 and YMSG16&lt;br /&gt;
&lt;br /&gt;
We're under the assumption YMSG15 was used by Yahoo! Messenger 8.0, and that YMSG16 was used by Yahoo! Messenger 9.0&lt;br /&gt;
&lt;br /&gt;
1. (YMSG16 only)&lt;br /&gt;
&lt;br /&gt;
    a. Client gets `vcs1.msg.yahoo.com/capacity`, which responds with&lt;br /&gt;
&lt;br /&gt;
    ```&lt;br /&gt;
    COLO_CAPACITY=1&lt;br /&gt;
    CS_IP_ADDRESS=[IP address to YMSG server]&lt;br /&gt;
    ```&lt;br /&gt;
&lt;br /&gt;
    b. If `COLO_CAPACITY` is != 0, Y!M will try connecting to the specified IP.&lt;br /&gt;
&lt;br /&gt;
2. (Same as YMSG10-14 steps 1 to 3.)&lt;br /&gt;
&lt;br /&gt;
3. Server responds with:&lt;br /&gt;
&lt;br /&gt;
    ```&lt;br /&gt;
    Service: \x00\x57(W) (87; AUTH)&lt;br /&gt;
    &lt;br /&gt;
    Status: \x00\x00\x00\x00 (0; AVAILABLE)&lt;br /&gt;
    ```&lt;br /&gt;
&lt;br /&gt;
    ```&lt;br /&gt;
    Payload:&lt;br /&gt;
      '1' -&amp;gt; [YahooId]&lt;br /&gt;
      '13' -&amp;gt; '2'&lt;br /&gt;
      '94' -&amp;gt; [mathematical expression-like challenge string (64 bytes without parentheses)] ('g|i/p^h&amp;amp;z-d+2%v%x&amp;amp;j|e+(m^k-i%h*(s+8%a/u/x*(b-4*i%h^g^j|m^n-r*f+p+j)))')&lt;br /&gt;
    ```&lt;br /&gt;
&lt;br /&gt;
4. Now the client just sends that stuff over to an HTTPS auth server to do the heavy lifting at `https://login.yahoo.com/config/pwtoken_get?src=ymsgr&amp;amp;ts=&amp;amp;login=[username]&amp;amp;passwd=[password]&amp;amp;chal=[challenge string]`. If the password and Yahoo! ID are correct, the following response is returned:&lt;br /&gt;
&lt;br /&gt;
    ```&lt;br /&gt;
    0&lt;br /&gt;
    ymsgr=[token]&lt;br /&gt;
    partnerid=[partnerid]&lt;br /&gt;
    ```&lt;br /&gt;
5. Client now grabs the token and GET requests `https://login.yahoo.com/pwtoken_login?src=ymsgr&amp;amp;ts=&amp;amp;token=[token]`, which sets the `Y`, `T`, and `B` cookies, and replies with:&lt;br /&gt;
&lt;br /&gt;
    ```&lt;br /&gt;
    0&lt;br /&gt;
    crumb=[crumb]&lt;br /&gt;
    Y=[Y cookie]&lt;br /&gt;
    T=[T cookie]&lt;br /&gt;
    cookievalidfor=86400 [a day in seconds]&lt;br /&gt;
    SSL=[SSL cookie]&lt;br /&gt;
    ```&lt;br /&gt;
if the token is correct.&lt;br /&gt;
&lt;br /&gt;
6. The client retrieves the `Y`, `T`, and `B` cookies, along with the crumb, and then does the following: concatenates the crumb and challenge string sent; MD5 hashes the concatenation; and finally Yahoo64 encodes the hash. Let's call the resulting data &amp;quot;response&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
7. The client finally responds with this humongous packet:&lt;br /&gt;
&lt;br /&gt;
    ```&lt;br /&gt;
    Service: \x00\x54(T) (84; AUTHRESP)&lt;br /&gt;
    ```&lt;br /&gt;
&lt;br /&gt;
    ```&lt;br /&gt;
    Payload:&lt;br /&gt;
      &lt;br /&gt;
      '1' -&amp;gt; [YahooId]&lt;br /&gt;
      '0' -&amp;gt; [YahooId]&lt;br /&gt;
      '277' -&amp;gt; [Contents of the &amp;quot;Y&amp;quot; cookie]&lt;br /&gt;
      '278' -&amp;gt; [Contents of the &amp;quot;T&amp;quot; cookie]&lt;br /&gt;
      '307' -&amp;gt; [The &amp;quot;response&amp;quot; variable the client had crafted]&lt;br /&gt;
      '244' -&amp;gt; [The client's build ID]&lt;br /&gt;
      '2' -&amp;gt; [YahooId]&lt;br /&gt;
      '2' -&amp;gt; '1'&lt;br /&gt;
      '59' -&amp;gt; [Contents of the &amp;quot;B&amp;quot; cookie]&lt;br /&gt;
      '98' -&amp;gt; [Locale]&lt;br /&gt;
      '135' -&amp;gt; [Client version]&lt;br /&gt;
    ```&lt;/div&gt;</summary>
		<author><name>Bobsmith2</name></author>
	</entry>
	<entry>
		<id>https://wiki.nina.chat/index.php?title=Template:Protocols/YMSG&amp;diff=8706</id>
		<title>Template:Protocols/YMSG</title>
		<link rel="alternate" type="text/html" href="https://wiki.nina.chat/index.php?title=Template:Protocols/YMSG&amp;diff=8706"/>
		<updated>2024-12-03T04:12:21Z</updated>

		<summary type="html">&lt;p&gt;Bobsmith2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;infobox&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;float: right; margin: 0 0 0.5em 0.5em; text-align:left; border: 1px solid #A5A29A; width:210px;&amp;quot;&lt;br /&gt;
| style=&amp;quot;font-size: 95%; text-align:center; color:#000000; background-color:#7A56AF&amp;quot; | [[Protocols/OSCAR|&amp;lt;font size=4 color=#000000&amp;gt;'''YMSG Protocol'''&amp;lt;/font&amp;gt;]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Protocols/YMSG|Introduction]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Bobsmith2</name></author>
	</entry>
	<entry>
		<id>https://wiki.nina.chat/index.php?title=Template:Protocols/YMSG&amp;diff=8705</id>
		<title>Template:Protocols/YMSG</title>
		<link rel="alternate" type="text/html" href="https://wiki.nina.chat/index.php?title=Template:Protocols/YMSG&amp;diff=8705"/>
		<updated>2024-12-03T04:11:15Z</updated>

		<summary type="html">&lt;p&gt;Bobsmith2: Created page with &amp;quot;{| class=&amp;quot;infobox&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;float: right; margin: 0 0 0.5em 0.5em; text-align:left; border: 1px solid #A5A29A; width:210px;&amp;quot; | style=&amp;quot;font-size: 95%; text-align:center; color:#000000; background-color:#7A56AF&amp;quot; | &amp;lt;font size=4 color=#000000&amp;gt;'''YMSG Protocol'''&amp;lt;/font&amp;gt; |- | Introduction&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;infobox&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;float: right; margin: 0 0 0.5em 0.5em; text-align:left; border: 1px solid #A5A29A; width:210px;&amp;quot;&lt;br /&gt;
| style=&amp;quot;font-size: 95%; text-align:center; color:#000000; background-color:#7A56AF&amp;quot; | [[Protocols/OSCAR|&amp;lt;font size=4 color=#000000&amp;gt;'''YMSG Protocol'''&amp;lt;/font&amp;gt;]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Protocols/YMSG|Introduction]]&lt;/div&gt;</summary>
		<author><name>Bobsmith2</name></author>
	</entry>
	<entry>
		<id>https://wiki.nina.chat/index.php?title=AOL/Services&amp;diff=8704</id>
		<title>AOL/Services</title>
		<link rel="alternate" type="text/html" href="https://wiki.nina.chat/index.php?title=AOL/Services&amp;diff=8704"/>
		<updated>2024-12-03T04:07:22Z</updated>

		<summary type="html">&lt;p&gt;Bobsmith2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This just a list of AOL services for future reference that we may (likely) want to restore or make something similar that we haven't got around to yet. Things which are considered ''certain'' like the AOL online service, AIM, ICQ, and Q-Link are not included.&lt;br /&gt;
&lt;br /&gt;
== Primary (Sooner) ==&lt;br /&gt;
* AOL Hometown - No details yet. Need web site(s) for reference.&lt;br /&gt;
* AOL News - No details yet other than it may be cool to call it Townsend, though that could also be a forum name. Need web site(s) for reference.&lt;br /&gt;
* AIM Expressions - For the &amp;quot;built-in&amp;quot; AIM client within AOL, these may be separate from AIM expressions in format. Need web site(s) for reference.&lt;br /&gt;
&lt;br /&gt;
=== Channels ===&lt;br /&gt;
* Weather - Will require users to enter postal code or initially maybe just use ipGeo. Additionally centralisation of this service could be used to provide the data for weather alerts in AIM and temperature on AOL Welcome.&lt;br /&gt;
&lt;br /&gt;
== Secondary (Later) ==&lt;br /&gt;
* You've Got Pictures - No details yet. Need web site(s) for reference.&lt;br /&gt;
&lt;br /&gt;
== Tertiary (Maybe) == &lt;br /&gt;
* AOL Phone - No details yet, other than primarily referenced in AIM via the subscription TLV, but base service and all that are unknown, though almost certainly outsourced or built upon other technology. Need web site(s) for reference.&lt;br /&gt;
&lt;br /&gt;
== Quartary (Unlikely) ==&lt;br /&gt;
As in probably not, but listed here just for reference, maybe things will change in the future or it might be merged with another service, or provide ideas for new ones.&lt;br /&gt;
* AOL Finance - Only if we can just pipe it in from some place else, probably not S&amp;amp;P ComStock (lol). Need web site(s) for reference.&lt;br /&gt;
&lt;br /&gt;
== Domains ==&lt;br /&gt;
Some interesting domains it may or may not worth be investigating.&lt;br /&gt;
&lt;br /&gt;
* hp-consumer.myaol.jp - When installing AIM 6, Japanese edition, it kept trying to load a window to this URL. Nothing else I saw made me think it was HP-branded, so perhaps HP means something else, or that window was as much work as the client team wanted to put into branding.&lt;br /&gt;
&lt;br /&gt;
[[Category:AOL]]&lt;br /&gt;
[[Category:Work_In_Progress]]&lt;/div&gt;</summary>
		<author><name>Bobsmith2</name></author>
	</entry>
	<entry>
		<id>https://wiki.nina.chat/index.php?title=Protocols/OSCAR&amp;diff=8703</id>
		<title>Protocols/OSCAR</title>
		<link rel="alternate" type="text/html" href="https://wiki.nina.chat/index.php?title=Protocols/OSCAR&amp;diff=8703"/>
		<updated>2024-12-03T04:04:24Z</updated>

		<summary type="html">&lt;p&gt;Bobsmith2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Protocols/OSCAR}}&lt;br /&gt;
OSCAR stands for &amp;quot;Open System for Communication in Realtime&amp;quot;, and while originally and ironically was not open, today it is. At one time used by AOL's AIM and ICQ products, and later discontinued, it now has had a rebirth of sorts here. We not only will fully document the protocol, but will maintain and update it.&lt;br /&gt;
&lt;br /&gt;
If you want to contribute, you can request an account by sending an email to [mailto:accounts@wiki.nina.chat accounts@wiki.nina.chat] with desired username and also a few words on what you have to contribute (for spam control). You should also check the [[Needed]], which is a list of things we are looking for.&lt;br /&gt;
&lt;br /&gt;
If you want to contribute something anonymously or without registering, send it to [mailto:contribute@wiki.nina.chat contribute@wiki.nina.chat]. If anonymity is desired, state so, and your name/email will not be mentioned.&lt;br /&gt;
&lt;br /&gt;
You can also [[Donate|donate]] to help with this AIM/AOL revival, because it is a full time job at this point.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
The OSCAR protocol is a binary protocol and is transmitted in network byte order unless otherwise noted. The application protocol stack consists of TCP for networking, a [[Protocols/OSCAR/FLAP|FLAP]] layer providing framing, and [[Protocols/OSCAR/SNAC|SNACs]] representing the OSCAR protocol messages. SNACs are broken into [[Protocols/OSCAR#Foodgroups|foodgroups]] (get it?) and subgroups which represent commands and services.&lt;br /&gt;
&lt;br /&gt;
Many of the server connections support TLS between the FLAP and TCP layer if single hop encryption is desired. In most cases, the binary data stream is formed by appending the elements in order with no extra padding.&lt;br /&gt;
&lt;br /&gt;
Sometimes within the ICQ community it's called &amp;quot;protocol v7/8/9&amp;quot; but this is inaccurate. Additionally the newer [[Protocols/WIM|web-based API]] has been called ICQ v10 by a few. These version numbers are not accurate and typically come from the rendezvous/direct connection protocol version numbers.&lt;br /&gt;
&lt;br /&gt;
=== Connecting ===&lt;br /&gt;
&lt;br /&gt;
Depending on whether or not SSL/TLS is being used, and version of the protocol, different authentication servers may be used. The authentication server also acts as a load balancer and will return a [[Protocols/OSCAR/Services/BOS|BOSS]] server to connect to when authentication is successful.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Hostname&lt;br /&gt;
! Port&lt;br /&gt;
! Protocol&lt;br /&gt;
! Note&lt;br /&gt;
|-&lt;br /&gt;
| login.oscar.nina.chat&lt;br /&gt;
| 5190&lt;br /&gt;
| OSCAR&lt;br /&gt;
| OSCAR over FLAP&lt;br /&gt;
|-&lt;br /&gt;
| kdc.uas.nina.chat&lt;br /&gt;
| 443&lt;br /&gt;
| OSCAR&lt;br /&gt;
| OSCAR over TLS&lt;br /&gt;
|-&lt;br /&gt;
| api.screenname.nina.chat&lt;br /&gt;
| 443&lt;br /&gt;
| OSCAR or WIM&lt;br /&gt;
| HTTP-based clientLogin&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
There are several servers that make up the AIM backend complex. &lt;br /&gt;
&lt;br /&gt;
api.screenname.aol.com&lt;br /&gt;
-- The api.screenname servers provide all the authentication web services, also knows as AOL Open Auth. The first step to an AIM session is using clientLogin to authenticate the user. &lt;br /&gt;
&lt;br /&gt;
api.oscar.aol.com&lt;br /&gt;
-- The api.oscar servers provide access to all the AIM web services. For OpenAIM it provides a service discovery mechanism for a client to find the correct BOSS server to which it should connect. It also provides a redirect service for the start page and expressions page. &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A single user can use multiple clients at the same time on the same or different devices. When building a client, or library, care should be taken to deal with a single user being online multiple times. In general, all IMs and Buddy notifications will be sent to all instances, although there are some IM routing rules that come into effect when users are away or idle.&lt;br /&gt;
&lt;br /&gt;
==== Clients ====&lt;br /&gt;
&lt;br /&gt;
You can find a full list of available OSCAR clients [[Protocols/OSCAR/Clients|here]].&lt;br /&gt;
&lt;br /&gt;
== Foodgroups ==&lt;br /&gt;
&lt;br /&gt;
=== OSERVICE (0x0001) ===&lt;br /&gt;
{{Protocols/OSCAR/Foodgroups/OSERVICE/Description}}&lt;br /&gt;
&amp;lt;br&amp;gt;[[Protocols/OSCAR/SNAC_01|Read More]]&lt;br /&gt;
{{Protocols/OSCAR/Foodgroups/OSERVICE/SNACs}}&lt;br /&gt;
&lt;br /&gt;
=== LOCATE (0x0002) ===&lt;br /&gt;
{{Protocols/OSCAR/Foodgroups/LOCATE/Description}}&lt;br /&gt;
&amp;lt;br&amp;gt;[[Protocols/OSCAR/SNAC_02|Read More]]&lt;br /&gt;
{{Protocols/OSCAR/Foodgroups/LOCATE/SNACs}}&lt;br /&gt;
&lt;br /&gt;
=== BUDDY (0x0003) ===&lt;br /&gt;
{{Protocols/OSCAR/Foodgroups/BUDDY/Description}}&lt;br /&gt;
&amp;lt;br&amp;gt;[[Protocols/OSCAR/SNAC_03|Read More]]&lt;br /&gt;
{{Protocols/OSCAR/Foodgroups/BUDDY/SNACs}}&lt;br /&gt;
&lt;br /&gt;
=== ICBM (0x0004) ===&lt;br /&gt;
{{Protocols/OSCAR/Foodgroups/ICBM/Description}}&lt;br /&gt;
&amp;lt;br&amp;gt;[[Protocols/OSCAR/SNAC_04|Read More]]&lt;br /&gt;
{{Protocols/OSCAR/Foodgroups/ICBM/SNACs}}&lt;br /&gt;
&lt;br /&gt;
=== ADVERT (0x0005) ===&lt;br /&gt;
{{Protocols/OSCAR/Foodgroups/ADVERT/Description}}&lt;br /&gt;
&amp;lt;br&amp;gt;[[Protocols/OSCAR/SNAC_05|Read More]]&lt;br /&gt;
{{Protocols/OSCAR/Foodgroups/ADVERT/SNACs}}&lt;br /&gt;
&lt;br /&gt;
=== INVITE (0x0006) ===&lt;br /&gt;
{{Protocols/OSCAR/Foodgroups/INVITE/Description}}&lt;br /&gt;
&amp;lt;br&amp;gt;[[Protocols/OSCAR/SNAC_06|Read More]]&lt;br /&gt;
{{Protocols/OSCAR/Foodgroups/INVITE/SNACs}}&lt;br /&gt;
&lt;br /&gt;
=== ADMIN (0x0007) ===&lt;br /&gt;
{{Protocols/OSCAR/Foodgroups/ADMIN/Description}}&lt;br /&gt;
&amp;lt;br&amp;gt;[[Protocols/OSCAR/SNAC_07|Read More]]&lt;br /&gt;
{{Protocols/OSCAR/Foodgroups/ADMIN/SNACs}}&lt;br /&gt;
&lt;br /&gt;
=== POPUP (0x0008) ===&lt;br /&gt;
{{Protocols/OSCAR/Foodgroups/POPUP/Description}}&lt;br /&gt;
&amp;lt;br&amp;gt;[[Protocols/OSCAR/SNAC_08|Read More]]&lt;br /&gt;
{{Protocols/OSCAR/Foodgroups/POPUP/SNACs}}&lt;br /&gt;
&lt;br /&gt;
=== PD (0x0009) ===&lt;br /&gt;
{{Protocols/OSCAR/Foodgroups/PD/Description}}&lt;br /&gt;
&amp;lt;br&amp;gt;[[Protocols/OSCAR/SNAC_09|Read More]]&lt;br /&gt;
{{Protocols/OSCAR/Foodgroups/PD/SNACs}}&lt;br /&gt;
&lt;br /&gt;
=== USER_LOOKUP (0x000A) ===&lt;br /&gt;
{{Protocols/OSCAR/Foodgroups/USER_LOOKUP/Description}}&lt;br /&gt;
&amp;lt;br&amp;gt;[[Protocols/OSCAR/SNAC_0A|Read More]]&lt;br /&gt;
{{Protocols/OSCAR/Foodgroups/USER_LOOKUP/SNACs}}&lt;br /&gt;
&lt;br /&gt;
=== STATS (0x000B) ===&lt;br /&gt;
{{Protocols/OSCAR/Foodgroups/STATS/Description}}&lt;br /&gt;
&amp;lt;br&amp;gt;[[Protocols/OSCAR/SNAC_0B|Read More]]&lt;br /&gt;
{{Protocols/OSCAR/Foodgroups/STATS/SNACs}}&lt;br /&gt;
&lt;br /&gt;
=== TRANSLATE (0x000C) ===&lt;br /&gt;
{{Protocols/OSCAR/Foodgroups/TRANSLATE/Description}}&lt;br /&gt;
&amp;lt;br&amp;gt;[[Protocols/OSCAR/SNAC_0C|Read More]]&lt;br /&gt;
{{Protocols/OSCAR/Foodgroups/TRANSLATE/SNACs}}&lt;br /&gt;
&lt;br /&gt;
=== CHAT_NAV (0x000D) ===&lt;br /&gt;
{{Protocols/OSCAR/Foodgroups/CHAT_NAV/Description}}&lt;br /&gt;
&amp;lt;br&amp;gt;[[Protocols/OSCAR/SNAC_0D|Read More]]&lt;br /&gt;
{{Protocols/OSCAR/Foodgroups/CHAT_NAV/SNACs}}&lt;br /&gt;
&lt;br /&gt;
=== CHAT (0x000E) ===&lt;br /&gt;
{{Protocols/OSCAR/Foodgroups/CHAT/Description}}&lt;br /&gt;
&amp;lt;br&amp;gt;[[Protocols/OSCAR/SNAC_0E|Read More]]&lt;br /&gt;
{{Protocols/OSCAR/Foodgroups/CHAT/SNACs}}&lt;br /&gt;
&lt;br /&gt;
=== ODIR (0x000F) ===&lt;br /&gt;
{{Protocols/OSCAR/Foodgroups/ODIR/Description}}&lt;br /&gt;
&amp;lt;br&amp;gt;[[Protocols/OSCAR/SNAC_0F|Read More]]&lt;br /&gt;
{{Protocols/OSCAR/Foodgroups/ODIR/SNACs}}&lt;br /&gt;
&lt;br /&gt;
=== BART (0x0010) ===&lt;br /&gt;
{{Protocols/OSCAR/Foodgroups/BART/Description}}&lt;br /&gt;
&amp;lt;br&amp;gt;[[Protocols/OSCAR/SNAC_10|Read More]]&lt;br /&gt;
{{Protocols/OSCAR/Foodgroups/BART/SNACs}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Hidden until we can be sure this is worth implementing &lt;br /&gt;
=== ICQCHAT_NAV (0x0011) ===&lt;br /&gt;
{{Protocols/OSCAR/Foodgroups/ICQCHAT_NAV/Description}}&lt;br /&gt;
&amp;lt;br&amp;gt;[[Protocols/OSCAR/SNAC_11|Read More]]&lt;br /&gt;
{{Protocols/OSCAR/Foodgroups/ICQCHAT_NAV/SNACs}}&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!-- Hidden until we can be sure this is worth implementing &lt;br /&gt;
=== ICQCHAT (0x0012) ===&lt;br /&gt;
{{Protocols/OSCAR/Foodgroups/ICQCHAT/Description}}&lt;br /&gt;
&amp;lt;br&amp;gt;[[Protocols/OSCAR/SNAC_12|Read More]]&lt;br /&gt;
{{Protocols/OSCAR/Foodgroups/ICQCHAT/SNACs}}&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== FEEDBAG (0x0013) ===&lt;br /&gt;
{{Protocols/OSCAR/Foodgroups/FEEDBAG/Description}}&lt;br /&gt;
&amp;lt;br&amp;gt;[[Protocols/OSCAR/SNAC_13|Read More]]&lt;br /&gt;
{{Protocols/OSCAR/Foodgroups/FEEDBAG/SNACs}}&lt;br /&gt;
&lt;br /&gt;
=== ICQ (0x0015) ===&lt;br /&gt;
{{Protocols/OSCAR/Foodgroups/ICQ/Description}}&lt;br /&gt;
&amp;lt;br&amp;gt;[[Protocols/OSCAR/SNAC_15|Read More]]&lt;br /&gt;
{{Protocols/OSCAR/Foodgroups/ICQ/SNACs}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Hidden until we can be sure this is worth implementing &lt;br /&gt;
=== AEG (0x0016) ===&lt;br /&gt;
{{Protocols/OSCAR/Foodgroups/AEG/Description}}&lt;br /&gt;
&amp;lt;br&amp;gt;[[Protocols/OSCAR/SNAC_16|Read More]]&lt;br /&gt;
{{Protocols/OSCAR/Foodgroups/AEG/SNACs}}&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== BUCP (0x0017) ===&lt;br /&gt;
{{Protocols/OSCAR/Foodgroups/BUCP/Description}}&lt;br /&gt;
&amp;lt;br&amp;gt;[[Protocols/OSCAR/SNAC_17|Read More]]&lt;br /&gt;
{{Protocols/OSCAR/Foodgroups/BUCP/SNACs}}&lt;br /&gt;
&lt;br /&gt;
=== ALERT (0x0018) ===&lt;br /&gt;
{{Protocols/OSCAR/Foodgroups/ALERT/Description}}&lt;br /&gt;
&amp;lt;br&amp;gt;[[Protocols/OSCAR/SNAC_18|Read More]]&lt;br /&gt;
{{Protocols/OSCAR/Foodgroups/ALERT/SNACs}}&lt;br /&gt;
&lt;br /&gt;
=== PLUGIN (0x0022) ===&lt;br /&gt;
{{Protocols/OSCAR/Foodgroups/PLUGIN/Description}}&lt;br /&gt;
&amp;lt;br&amp;gt;[[Protocols/OSCAR/SNAC_22|Read More]]&lt;br /&gt;
{{Protocols/OSCAR/Foodgroups/PLUGIN/SNACs}}&lt;br /&gt;
&lt;br /&gt;
=== UNNAMED_FG_24 (0x0024) ===&lt;br /&gt;
{{Protocols/OSCAR/Foodgroups/UNNAMED_FG_24/Description}}&lt;br /&gt;
&amp;lt;br&amp;gt;[[Protocols/OSCAR/SNAC_24|Read More]]&lt;br /&gt;
{{Protocols/OSCAR/Foodgroups/UNNAMED_FG_24/SNACs}}&lt;br /&gt;
&lt;br /&gt;
=== MDIR (0x0025) ===&lt;br /&gt;
{{Protocols/OSCAR/Foodgroups/MDIR/Description}}&lt;br /&gt;
&amp;lt;br&amp;gt;[[Protocols/OSCAR/SNAC_25|Read More]]&lt;br /&gt;
{{Protocols/OSCAR/Foodgroups/MDIR/SNACs}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Hidden until we can be sure this is worth implementing &lt;br /&gt;
=== AOL (0x0040) ===&lt;br /&gt;
{{Protocols/OSCAR/Foodgroups/AOL/Description}}&lt;br /&gt;
&amp;lt;br&amp;gt;[[Protocols/OSCAR/SNAC_40|Read More]]&lt;br /&gt;
{{Protocols/OSCAR/Foodgroups/AOL/SNACs}}&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== ARS (0x044A) ===&lt;br /&gt;
{{Protocols/OSCAR/Foodgroups/ARS/Description}}&lt;br /&gt;
&amp;lt;br&amp;gt;[[Protocols/OSCAR/SNAC_44A|Read More]]&lt;br /&gt;
{{Protocols/OSCAR/Foodgroups/ARS/SNACs}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Not_Currently_Documented]]&lt;/div&gt;</summary>
		<author><name>Bobsmith2</name></author>
	</entry>
	<entry>
		<id>https://wiki.nina.chat/index.php?title=Protocols/MSNP&amp;diff=8702</id>
		<title>Protocols/MSNP</title>
		<link rel="alternate" type="text/html" href="https://wiki.nina.chat/index.php?title=Protocols/MSNP&amp;diff=8702"/>
		<updated>2024-12-03T04:02:32Z</updated>

		<summary type="html">&lt;p&gt;Bobsmith2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Protocols/MSNP}}&lt;br /&gt;
&lt;br /&gt;
MSNP stands for &amp;quot;Microsoft Notification Protocol&amp;quot;, the protocol used on MSN/Windows Live Messenger, all the way to when it was discontinued, and Skype's network used a heavily modified version of MSNP in the past. We not only will fully document the protocol, but will maintain and update it.&lt;br /&gt;
&lt;br /&gt;
If you want to contribute, you can request an account by sending an email to [mailto:accounts@wiki.nina.chat accounts@wiki.nina.chat] with desired username and also a few words on what you have to contribute (for spam control). You should also check the [[Needed]], which is a list of things we are looking for.&lt;br /&gt;
&lt;br /&gt;
If you want to contribute something anonymously or without registering, send it to [mailto:contribute@wiki.nina.chat contribute@wiki.nina.chat]. If anonymity is desired, state so, and your name/email will not be mentioned.&lt;br /&gt;
&lt;br /&gt;
You can also [[Donate|donate]] to help with this MSN/Windows Live revival, because it is a full time job at this point.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Clients =&lt;br /&gt;
* [[Clients/Windows_Live_Messenger|Windows Live Messenger]]&lt;br /&gt;
** [[Clients/Windows_Live_Messenger/Messenger_Plus!|Messenger Plus!]]&lt;br /&gt;
&lt;br /&gt;
Read additional [https://escargot.chat/support/faq/ frequently asked questions] for clients and the Escargot service.&lt;br /&gt;
&lt;br /&gt;
= Protocol History =&lt;br /&gt;
MSNP was first implemented with version 2 - MSNP2 - on July 17 1999. It only used TCP, no webservices or anything like that.&lt;br /&gt;
&lt;br /&gt;
As time went along, MSNP was extended and improved upon, incrementing its version number. By MSNP8, a new authentication system was being used: .NET Passport / Tweener. This was first time something essential was used that wasn't sent via the regular MSNP TCP socket.&lt;br /&gt;
&lt;br /&gt;
From a technical standpoint the MD5 method that was used in [[Protocols/MSNP/MSN Protocol Version 7|MSNP7]] was completely secure even from man in the middle attacks but Microsoft decided that it would be beneficial to MSN Messenger to authenticate directly with the passport servers, and [[Protocols/MSNP/Tweener]] was born.&lt;br /&gt;
&lt;br /&gt;
After MSNP8, other, newer protocol versions were released ([[Protocols/MSNP/MSN Protocol Version 9|MSNP9]], [[Protocols/MSNP/MSN Protocol Version 10|MSNP10]], [[Protocols/MSNP/MSN Protocol Version 11|MSNP11]], [[Protocols/MSNP/MSN Protocol Version 12|MSNP12]], [[Protocols/MSNP/MSN Protocol Version 13|MSNP13]] for WLM 8, et al). Most of the times the protocols introduced a more efficient way of storing contact lists and other properties, but also added new features as new clients were released to the public by the MSN Messenger team.&lt;br /&gt;
&lt;br /&gt;
MSNP's final version was MSNP21, if we consider Windows Live Messenger 2012 the last version. However, MSNP22 existed, it was used on the Metro Messaging app on Windows 8.0, and MSNP24 was used on Skype for a while - although very different from regular old MSNP.&lt;br /&gt;
&lt;br /&gt;
All connections to MSN servers take place over TCP/IP. The client always makes the outgoing connections to the servers. The official port for MSN Messenger is 1863, although there are many places in the protocol where alternate ports could be specified, so this may be subject to change.&lt;br /&gt;
&lt;br /&gt;
The connection to the server must be considered asynchronous - you can send many commands to the server without waiting for a reply, and the server won't necessarily reply to your commands in the order you sent them. The server may also send messages that are not in reply to any particular message from the client. However, sometimes (for example, when logging into a notification server) the protocol requires you to send one command then receive one command, and so on.&lt;br /&gt;
&lt;br /&gt;
There are also several OOB (out-of-band) protocols that take place directly between clients and do not involve the server. These protocols are described in their respective sections, and are not necessary for basic functionality of a client.&lt;br /&gt;
&lt;br /&gt;
= What is MSN Messenger? =&lt;br /&gt;
The term 'MSN Messenger' is quite ambiguous, as Microsoft use the term to refer to several different parts of their instant messaging solution. You chat over the 'MSN Messenger network', the most popular program to connect to the MSN Messenger network is 'MSN Messenger', and the language that programs on the MSN Messenger network speak is 'MSNP', the '''M'''icro'''s'''oft '''N'''otification '''P'''rotocol.&lt;br /&gt;
&lt;br /&gt;
== What is the MSN Messenger Network? ==&lt;br /&gt;
The MSN Messenger network is a presence and instant messaging network from [http://www.microsoft.com Microsoft]. It went online in July 1999, and is neither the first nor the last instant messaging network. MSN Messenger is among the top four proprietary instant messaging networks. As of March 2003, there were far fewer unique users on the MSN Messenger network than on [[Protocols/OSCAR|AOL Instant Messenger]] or [[Protocols/OSCAR|ICQ]] but more than on [[Protocols/YMSG|Yahoo Messenger]].&lt;br /&gt;
&lt;br /&gt;
== What is the MSN Messenger Protocol? ==&lt;br /&gt;
The MSN Messenger protocol consists of a series of commands sent between the client and the server. For example, when someone on your contact list signs out, the server sends a message like this to your client: '''FLN example@hotmail.com'''. On receiving this, the client should mark that contact as offline.&lt;br /&gt;
&lt;br /&gt;
The MSN Messenger protocol has undergone several revisions over the years. Microsoft's servers allow clients to use versions 8, 9, 12, 13, 14 &amp;amp; 15 of the protocol. Individual protocol versions are often written as 'MSNP8', 'MSNP9' and 'MSNP12', which stands for '''M'''icro'''s'''oft '''N'''otification '''P'''rotocol and is followed by the version number of the protocol.&lt;br /&gt;
&lt;br /&gt;
This site intends to fully document the MSN Messenger protocol and quirks of MSN Messenger servers so that third party software developers can write their own programs to interact with the network.&lt;br /&gt;
&lt;br /&gt;
The information on the protocol was gathered by reading the official IETF draft, reading various sources, analysing packets, analysing the official client, and writing programs. Most of this work was done by other members of the MSN Messenger research community, which we have just written up. If you have discovered something new about the protocol, please make it known in the [https://escargot.chat/forums/ forum].&lt;br /&gt;
&lt;br /&gt;
== What is the MSN Client Protocol? ==&lt;br /&gt;
The MSN Client protocol consists of messages sent between clients. For example, when you say &amp;quot;hello&amp;quot; to a friend, your client sends a message to their client with hello as the body of the message.&lt;br /&gt;
&lt;br /&gt;
Until relatively recently, the MSN client protocol grew quite organically - one version of the official client would behave differently to another, and you just had to guess what behavior was expected by whom. Recently, attempts have been made to impose a version numbering system.&lt;br /&gt;
&lt;br /&gt;
= How does the protocol work? =&lt;br /&gt;
MSN Messenger is a presence and instant messaging system. 'Presence' is whether you're online, whether you're sharing a webcam, etc. 'Instant messaging' is talking with other people. Users of presence and instant messaging systems (people, bots, etc.) are referred to as 'principals'. RFC 2778 provides a very good general overview of what a presence and instant messaging system does, and you're advised to read it if you haven't worked on one before. Where possible, technical terms used on this site have been taken from that document.&lt;br /&gt;
&lt;br /&gt;
An MSN Messenger session involves a connection to a 'Notification Server' (or 'NS'), which provides a presence service. The notification server allows you to connect to 'Switchboard Servers' ('SBs'), which provide an instant messaging service.&lt;br /&gt;
&lt;br /&gt;
== Notification Server (NS) ==&lt;br /&gt;
The connection to a notification server is the basis of an MSN Messenger session, as it handles your presence information: if you are disconnected from the notification server, you are no longer online to your buddies. The main purpose of the notification server is to handle presence information about yourself and the principals whose presence you've subscribed to.&lt;br /&gt;
&lt;br /&gt;
The notification server also performs some other services like notifying you about new e-mail in your [http://www.hotmail.com Hotmail] inbox and letting you create new (or join existing) switchboard sessions. When you're directed to join a switchboard session, you should open a new connection to the switchboard, and keep the notification server open.&lt;br /&gt;
&lt;br /&gt;
Note: The original draft refers to a third type of server known as a 'Dispatch Server', or 'DS'. However, throughout our documentation, the Dispatch Server is just treated as the default notification server.&lt;br /&gt;
&lt;br /&gt;
== Switchboard (SB) ==&lt;br /&gt;
The switchboard handles instant messaging sessions between principals. In other words, each person in an MSN chat corresponds to a connection to a shared switchboard session. Being in two conversations at once means connecting to two switchboard servers at once. Directly connected conversations between principals are not used in MSN Messenger, and the switchboard acts as a proxy between you and those you are chatting with.&lt;br /&gt;
&lt;br /&gt;
A switchboard session can have as many people in it as you like - there's no equivalent of the one-to-one conversations that there's no way of forcing a session not to accept more than two people. This can be quite awkward because some of the uses for a switchboard session (like initiating a file transfer)&lt;br /&gt;
&lt;br /&gt;
The SB is also where invitations to other services such as file transfer and NetMeeting are sent and received. Mobile paging is one of the only forms of communication that does not take place over a switchboard server.&lt;br /&gt;
&lt;br /&gt;
Note that the SB and the NS are not very tightly integrated. For example, when a principal in a switchboard session change his or her display name, the switchboard still sends out messages and other commands with the old display name. In addition, when a principal disconnects from the NS, all switchboard sessions still remain open until the client explicitly closes them.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Encoding ==&lt;br /&gt;
At the lowest level, computers can only send 1s and 0s to each other. In order for two computers to communicate, they must agree on what the 1s and 0s represent. In MSN Messenger (except in file transfer), they represent characters, such as &amp;quot;Latin Capital letter A&amp;quot;, &amp;quot;Digital Four&amp;quot;, or &amp;quot;Runic letter short-twig-sol&amp;quot;. In other words, MSN Messenger is a text-based protocol.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
= Overview =&lt;br /&gt;
Since the original sort of lacked a good overview page, because it just redirected to Version 8, below is the former side bar, which will be turned back into a sidebar later, but for now is a temporary overview/index. &lt;br /&gt;
&lt;br /&gt;
Protocols/MSNP/Overview can probably be merged into this, as well as an overview of commands or at the very least the highest level of information. In the end, the style and layout, as well as sidebar should match [[Protocols/OSCAR]]. &lt;br /&gt;
&lt;br /&gt;
If a page seems to be missing, more than likely the capitalization is incorrect because it was all over the place in the import. So fix or report missing pages.&lt;br /&gt;
&lt;br /&gt;
Some fancy language needs to be here describing everything.&lt;br /&gt;
&lt;br /&gt;
* [[Protocols/MSNP/Wishlist|Escargot Wishlist]]: List of things we're after that'd benefit Escargot development and support.**&lt;br /&gt;
* [[Protocols/MSNP/Wishlist#Clients|Missing Client Versions]]: Ongoing list of missing builds of client software Escargot targets. Currently only accounts for MSN Messenger software.**&lt;br /&gt;
* [[Protocols/MSNP/Activities|MSN/WLM Activities]]: Information about MSN Messenger/WLM Activities.&lt;br /&gt;
* [[Clients/Windows_Live_Messenger|Client downloads]]: Versions of MSN/WLM for download.&lt;br /&gt;
* [[Protocols/MSNP/Development#Clean_Install|Clean install]]: How to do a clean MSN Messenger/WLM install.&lt;br /&gt;
* [[Protocols/MSNP/Clients|Compatibility]]: Escargot server compatibility with MSN Messenger/WLM versions.&lt;br /&gt;
* [[Protocols/MSNP/Development#Debug_Logging|Debug logging]]: How to enable various MSN Messenger/WLM logging options to ease your life debugging MSN Messenger/WLM.&lt;br /&gt;
* Gateways:&lt;br /&gt;
** [[Protocols/MSNP/Gateway|HTTP gateway]]: Information about the MSN Messenger/WLM HTTP gateway.&lt;br /&gt;
** [[Protocols/MSNP/XMPP|XMPP gateway]]: Information about the MSN Messenger/WLM XMPP gateway.&lt;br /&gt;
* [[Protocols/MSNP/Clients#Identify_Version_from_Setup|Identify MSN Messenger/WLM version from setup]]: How to identify the exact MSN Messenger/WLM version contained in a setup file.&lt;br /&gt;
* [[Protocols/MSNP#Documents|MSN/WLM PCAP files]]: PCAP files (Wireshark captures) of MSN Messenger/WLM traffic.&lt;br /&gt;
* [[Protocols/MSNP#Polygamy|MSN Polygamy]]: How to enable MSN Polygamy manually.&lt;br /&gt;
* [[Protocols/MSNP#Imported.2FImporting|MSNP protocol docs]]: MSNP documentation.&lt;br /&gt;
* [[Protocols/MSNP/MSN_Protocol_Version_21|MSNP21 changes (w/ editors notes)]]: Changes introduced in the mess of a protocol that is MSNP21&lt;br /&gt;
* [[Protocols/MSNP/Scenarios/Mac|Messenger:mac Details]]: Technical information about the Messenger:mac client released by Microsoft.&lt;br /&gt;
* [[Protocols/MSNP/Scenarios/WebTV|MSNP on WebTV/MSN TV]]: Notes on how MSNP was utilized on Microsoft's WebTV/MSN TV service.&lt;br /&gt;
* [[Protocols/MSNP/Reference/Relaying_Party_Suite|Relaying Party Suite]]: Information on Relaying Party Suite, a challenge-response method utilized in MSNP15 and above.&lt;br /&gt;
* [[Protocols/MSNP/Reference/Spotlife|Spotlife]]: Information about Spotlife, the system used to solve the NAT problem with the webcam functionality.&lt;br /&gt;
* [[Protocols/MSNP/Development#Tools|Tools]]: Tools that may ease your life working with MSN Messenger/WLM.&lt;br /&gt;
* [[Protocols/MSNP#URLs_used_by_MSN|URLs used by MSN/WLM]]&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Login logs = &lt;br /&gt;
&lt;br /&gt;
* [[Protocols/MSNP/Clients/Logs/WLM_2009|WLM 2009 v14.0.8117.416]]&lt;br /&gt;
* [[Protocols/MSNP/Clients/Logs/WLM_2012|WLM 2012 v16.4.3528.331]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
== Index ==&lt;br /&gt;
''Windows Live Network Protocol''&lt;br /&gt;
* [[Protocols/MSNP/MSN_Protocol_Version_21|Version 21]]&lt;br /&gt;
* [[Protocols/MSNP/MSN_Protocol_Version_18|Version 18]]&lt;br /&gt;
* [[Protocols/MSNP/MSN_Protocol_Version_16|Version 16]]&lt;br /&gt;
* [[Protocols/MSNP/MSN_Protocol_Version_15|Version 15]]&lt;br /&gt;
* [[Protocols/MSNP/MSN_Protocol_Version_14|Version 14]]&lt;br /&gt;
* [[Protocols/MSNP/MSN_Protocol_Version_13|Version 13]]&lt;br /&gt;
* [[Protocols/MSNP/MSN_Protocol_Version_12|Version 12]]&lt;br /&gt;
* [[Protocols/MSNP/MSN_Protocol_Version_11|Version 11]]&lt;br /&gt;
* [[Protocols/MSNP/MSN_Protocol_Version_9|Version 9]]&lt;br /&gt;
* [[Protocols/MSNP/MSN_Protocol_Version_8|Version 8]]&lt;br /&gt;
&lt;br /&gt;
''Windows Live Client Protocol''&lt;br /&gt;
* [[Protocols/MSNP/MSNC|Introduction]]&lt;br /&gt;
* [[Protocols/MSNP/MSNC/MSNSLP|P2P]]&lt;br /&gt;
* [[Protocols/MSNP/MSNC/MSNObject|Object Descriptor]]&lt;br /&gt;
* [[Protocols/MSNP/MSNC/Display_pictures|Display Pictures]]&lt;br /&gt;
* [[Protocols/MSNP/MSNC/File_Transfer|File Transfer]]&lt;br /&gt;
&lt;br /&gt;
''Reference''&lt;br /&gt;
* [[Protocols/MSNP/Reference/Error_List|Error List]]&lt;br /&gt;
* [[Protocols/MSNP/Reference/Commands|Commands]]&lt;br /&gt;
* [[Protocols/MSNP/Reference/Relaying_Party_Suite|Relaying Party Suite]]&lt;br /&gt;
* [[Protocols/MSNP/Reference/Spotlife|Spotlife]]&lt;br /&gt;
&lt;br /&gt;
''Client Logs''&lt;br /&gt;
* [[Protocols/MSNP/Clients/Logs/WLM_2009|WLM 2009]]&lt;br /&gt;
* [[Protocols/MSNP/Clients/Logs/WLM_2012|WLM 2012]]&lt;br /&gt;
&lt;br /&gt;
''Scenarios''&lt;br /&gt;
* [[Protocols/MSNP/Scenarios/Mac|Microsoft Messenger for Mac]]&lt;br /&gt;
* [[Protocols/MSNP/Scenarios/WebTV|MSNP on WebTV (MSNTV)]]&lt;br /&gt;
&lt;br /&gt;
== TODO ==&lt;br /&gt;
* Need menu like OSCAR w/ just version numbers, and template should allow passing of version number and/or page depending, even if not in use for now, have a default template ready w/ it including categories.&lt;br /&gt;
* If it's only on archive.org, it all needs to be properly organized here, not all copy/pasted willy nilly like 7th grade book report on General Smedley Butler. All should be listed here, as seen below, so that when pages are being cleaned up things aren't re-imported. Always include Protocols/MSNP category.&lt;br /&gt;
** In fact, just import everything, because if Microsoft won't put everything in one place, we will. Also external links to further information related to the protocol can be linked, so long as their content is imported as it's clear people want ''madd creditz'' for their content but they're too lazy/stupid to keep their sites up, so they're only as reliable as the information they can provide until they're flushed down the Internet toilet.&lt;br /&gt;
* Protocols/MSNP/General/Commands and Protocols/MSNP/Reference/Commands should be merged into just Protocols/MSNP/Commands.&lt;br /&gt;
* Protocols/MSNP/General/Connections and Protocols/MSNP/General/Overview can be moved out of general.&lt;br /&gt;
* Setup forum @ https://forum.nina.bz/forum-14.html&lt;br /&gt;
* [[Protocols/MSNP/XMPP]]&lt;br /&gt;
* [[Protocols/MSNP/Development]]&lt;br /&gt;
* [[Protocols/MSNP/Gateway]]&lt;br /&gt;
* [[Protocols/MSNP/Tabs]]&lt;br /&gt;
* [[Protocols/MSNP/Activities]]&lt;br /&gt;
&lt;br /&gt;
=== Imported/Importing ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
https://en.wikipedia.org/wiki/Windows_Live_Messenger&lt;br /&gt;
&lt;br /&gt;
MSNP 2:&lt;br /&gt;
- https://tools.ietf.org/html/draft-movva-msn-messenger-protocol-00&lt;br /&gt;
&lt;br /&gt;
MSNP 8:&lt;br /&gt;
- http://msn-messenger-protocol.herokuapp.com/index.php&lt;br /&gt;
&lt;br /&gt;
MSNP 7:&lt;br /&gt;
- http://msn-messenger-protocol.herokuapp.com/sitev1/&lt;br /&gt;
&lt;br /&gt;
MSNP 8 - 18:&lt;br /&gt;
- http://web.archive.org/web/20150310041951/http://msnpiki.msnfanatic.com/index.php&lt;br /&gt;
- http://msnpiki.tadeu.org/index.php (site down)&lt;br /&gt;
- http://imgate.wikidot.com/ (Circles/Groups)&lt;br /&gt;
&lt;br /&gt;
MSNP 9:&lt;br /&gt;
- http://web.archive.org/web/20040218095638/http://wisoftware.host.sk/msn6/&lt;br /&gt;
&lt;br /&gt;
MSNP 21:&lt;br /&gt;
- https://code.google.com/archive/p/msnp-sharp/wikis/KB_MSNP21.wiki&lt;br /&gt;
- https://searchcode.com/codesearch/view/2262024/&lt;br /&gt;
- https://wenku.baidu.com/view/73b4f9fe941ea76e58fa0456.html&lt;br /&gt;
&lt;br /&gt;
Other:&lt;br /&gt;
- Summary: http://wiki.dequis.org/projects/msn/protocol_versions/&lt;br /&gt;
- Docs: https://github.com/msndevs/protocol-docs/wiki&lt;br /&gt;
- SSO Sample: http://www.codeproject.com/Articles/24444/Single-Sign-On-with-MSN-Protocol1&lt;br /&gt;
- MsgrConfig.asmx sample: http://www.mail-archive.com/amsn-devel@lists.sourceforge.net/msg04225/getclientconfig.log&lt;br /&gt;
&lt;br /&gt;
* Compare imported from XML dump with the following to make sure it's as equally badly formatted before improving, because right now it's even worse: http://web.archive.org/web/20100225061312/http://msnpiki.msnfanatic.com/index.php/Command:RNG &lt;br /&gt;
* Already poorly imported MSN Object from zoronax.bot2k3.net: [[Protocols/MSNP/MSNC/MSN_Object]], needs to be cleaned up&lt;br /&gt;
* Need to import: http://web.archive.org/web/20080309042523/http://siebe.bot2k3.net:80/docs/?url=home.html &lt;br /&gt;
* https://github.com/msndevs/protocol-docs/wiki&lt;br /&gt;
* https://gitlab.com/escargot-chat/server/-/wikis/protocol-docs &lt;br /&gt;
* http://web.archive.org/web/20120119043443/http://telepathy.freedesktop.org/wiki/Pymsn/MSNP/ContactListActions&lt;br /&gt;
* https://social.msdn.microsoft.com/Forums/sqlserver/en-US/f0766af1-beed-4381-beb0-a45ed8acd4c7/cant-authenticate-loginnetpassportcom?forum=wlmessengerdev&lt;br /&gt;
* http://wiki.dequis.org/projects/msn/protocol_versions/&lt;br /&gt;
* http://www.codeproject.com/Articles/24444/Single-Sign-On-with-MSN-Protocol1&lt;br /&gt;
* https://news.ycombinator.com/item?id=10900899&lt;br /&gt;
* https://github.com/billiob/papyon/tree/master/papyon/service&lt;br /&gt;
* http://www.hypothetic.org/docs/msn/general/overview.php&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:MSN]]&lt;br /&gt;
[[Category:Protocols/MSNP]]&lt;br /&gt;
[[Category:Work_In_Progress]]&lt;/div&gt;</summary>
		<author><name>Bobsmith2</name></author>
	</entry>
	<entry>
		<id>https://wiki.nina.chat/index.php?title=Clients/Windows_Live_Messenger/Errors&amp;diff=8701</id>
		<title>Clients/Windows Live Messenger/Errors</title>
		<link rel="alternate" type="text/html" href="https://wiki.nina.chat/index.php?title=Clients/Windows_Live_Messenger/Errors&amp;diff=8701"/>
		<updated>2024-12-03T03:52:34Z</updated>

		<summary type="html">&lt;p&gt;Bobsmith2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here are some common errors you may run into with MSN Messenger or Windows Live Messenger. Please reference the list before inquiring about support since some of the errors are fairly common.&lt;br /&gt;
&lt;br /&gt;
Please submit others by emailing contribute@wiki.nina.chat or on our [https://discord.gg/EMG2BgbYFr Discord].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Error !! Version !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 80048820 || 7.5 - 2009 || Client is unpatched, there might be an underlying network issue, or a generic incorrect password/email, or if on XP and Vista: SSL/TLS error due to incompatibility.&lt;br /&gt;
|-&lt;br /&gt;
| 80048821 || 2009 || Your password is either incorrect or is too long. Only passwords up to 15 characters work with WLM 2009.&lt;br /&gt;
|-&lt;br /&gt;
| 80048823 || 7.5 - 8.5 || Your password is either incorrect or is too long.&lt;br /&gt;
|-&lt;br /&gt;
| 80048862 || 8.5 || If on XP/Vista: [https://www.escargot.chat/forums/threads/guide-resolving-messenger-login-errors-on-windows-xp-and-vista-versions-4-7-5.13/ Follow these instructions]&lt;br /&gt;
|-&lt;br /&gt;
| 80071392 || 2009 || You likely need to uninstall, reboot Windows, and reinstall WLM 2009. (Unconfirmed, if this issue appears for you and the solution works, please let us know)&lt;br /&gt;
|-&lt;br /&gt;
| 80072ee7 || All || Client is unpatched or there is an underlying network issue&lt;br /&gt;
|-&lt;br /&gt;
| 80072efd || 2009 || Potential firewall or other connection issue.&lt;br /&gt;
|-&lt;br /&gt;
| 80ee00c8 || All || Calls are not currently implemented, so this cannot be used.&lt;br /&gt;
|-&lt;br /&gt;
| 81000306 || All || There is a latency issue or some other network issue, probably misconfiguration.&lt;br /&gt;
|-&lt;br /&gt;
| 81000395 || 2009 || Invalid saved password token: uncheck save, retype password, re-check save&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Error List Dump === &lt;br /&gt;
These are a list of errors that have been extracted from other places. They aren't organized and don't provide any information whatsoever apart from the string representation.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Error (Hex) !! String&lt;br /&gt;
|-&lt;br /&gt;
| 0x00048028 || PP_S_TOKEN_REQUEST_FAILED&lt;br /&gt;
|-&lt;br /&gt;
| 0x00048044 || PPCRL_S_ALREADY_INITIALIZED&lt;br /&gt;
|-&lt;br /&gt;
| 0x00048045 || PPCRL_S_STILL_INUSE&lt;br /&gt;
|-&lt;br /&gt;
| 0x00048046 || PPCRL_E_INITIALIED_DIFF_ENVIRONMENT&lt;br /&gt;
|-&lt;br /&gt;
| 0x00048802 || PPCRL_AUTHSTATE_S_AUTHENTICATED_OFFLINE&lt;br /&gt;
|-&lt;br /&gt;
| 0x00048803 || PPCRL_AUTHSTATE_S_AUTHENTICATED_PASSWORD&lt;br /&gt;
|-&lt;br /&gt;
| 0x00048835 || PPCRL_REQUEST_S_PROFILE_ACCRUE_DONE&lt;br /&gt;
|-&lt;br /&gt;
| 0x00048847 || PPCRL_REQUEST_S_IO_PENDING&lt;br /&gt;
|-&lt;br /&gt;
| 0x00048860 || PPCRL_S_NO_MORE_IDENTITIES&lt;br /&gt;
|-&lt;br /&gt;
| 0x00048861 || PPCRL_S_TOKEN_TYPE_DOES_NOT_SUPPORT_SESSION_KEY&lt;br /&gt;
|-&lt;br /&gt;
| 0x00048862 || PPCRL_S_NO_SUCH_CREDENTIAL&lt;br /&gt;
|-&lt;br /&gt;
| 0x00048863 || PPCRL_S_NO_AUTHENTICATION_REQUIRED&lt;br /&gt;
|-&lt;br /&gt;
| 0x00048875 || PPCRL_S_OK_CLIENTTIME&lt;br /&gt;
|-&lt;br /&gt;
| 0x000488e9 || PPCRL_REQUEST_S_OK_NO_SLC&lt;br /&gt;
|-&lt;br /&gt;
| 0x000488ea || PPCRL_REQUEST_S_IO_PENDING_NO_SLC&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048001 || PP_E_CRL_OUT_OF_MEMORY&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048002 || PP_E_CRL_UNEXPECTED_NULL_ARG&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048003 || PP_E_CRL_CREATE_XMLDOC_FAILED&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048004 || PP_E_CRL_LOAD_XMLDOC_FAILED&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048005 || PP_E_CRL_CREATE_FILE_FAILED&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048006 || PP_E_CRL_CREATE_MUTEX_FAILED&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048007 || PP_E_CRL_OBTAIN_MUTEX_FAILED&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048008 || PP_E_CRL_NOT_INITIALIZED&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048009 || PP_E_CRL_TOKENS_TOO_LONG&lt;br /&gt;
|-&lt;br /&gt;
| 0x8004800a || PP_E_CRL_TOKENFILE_NOT_CREATED&lt;br /&gt;
|-&lt;br /&gt;
| 0x8004800b || PPCRL_PRIMARYCREDS_MISSING&lt;br /&gt;
|-&lt;br /&gt;
| 0x8004800c || PPCRL_NO_SUCH_HANDLE&lt;br /&gt;
|-&lt;br /&gt;
| 0x8004800e || PPCRL_NO_SESSION_KEY&lt;br /&gt;
|-&lt;br /&gt;
| 0x8004800f || PP_E_CRL_WRONG_TOKEN_VERSION&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048010 || PP_E_CRL_WRONG_TOKENFILE_SIZE&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048011 || PPCRL_CERTCONTEXT_MISSING&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048012 || PPCRL_SECONDARYCREDS_MISSING&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048013 || PPCRL_SITEID_MISSING&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048014 || PPCRL_CONSENT_NEEDED&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048015 || PP_E_CRL_INVALID_REDIRECT_URL&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048018 || PPCRL_REQUESTPARAMS_MISSING&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048019 || PPCRL_REQUEST_NOT_MADE&lt;br /&gt;
|-&lt;br /&gt;
| 0x8004801a || PP_E_CRL_INVALID_APP_GUID&lt;br /&gt;
|-&lt;br /&gt;
| 0x8004801b || PP_E_CRL_INVALID_VERSION&lt;br /&gt;
|-&lt;br /&gt;
| 0x8004801c || PP_E_CRL_INVALID_HANDLE_NAME&lt;br /&gt;
|-&lt;br /&gt;
| 0x8004801d || PP_E_CRL_ILLEGAL_IDENTITY_FLAG&lt;br /&gt;
|-&lt;br /&gt;
| 0x8004801e || PP_E_CRL_NOT_PPCRL_MEMORY&lt;br /&gt;
|-&lt;br /&gt;
| 0x8004801f || PP_E_CRL_INVALID_PROPERTY_TYPE&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048020 || PP_E_CRL_NO_SUCH_IDENTITY&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048021 || PP_E_CRL_UNKOWN_CRED_TYPE&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048022 || PP_E_CRL_BAD_FILE&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048023 || PP_E_CRL_INVALID_MEMBER_NAME&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048024 || PP_E_PPCRL_MISSING_PASSWORD&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048026 || PP_E_PPCRL_AUTH_NEED_TOU&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048027 || PP_E_PPCRL_AUTH_NEED_EMAIL_VALIDATIION&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048029 || PPCRL_E_PLATFORM_SECURE_STORAGE_NOT_AVAILABLE&lt;br /&gt;
|-&lt;br /&gt;
| 0x8004802a || PP_E_CRL_BAD_OPTION&lt;br /&gt;
|-&lt;br /&gt;
| 0x8004802b || PP_E_CRL_BAD_OPTIONLENGTH&lt;br /&gt;
|-&lt;br /&gt;
| 0x8004802c || PP_E_CRL_BAD_OPTIONID&lt;br /&gt;
|-&lt;br /&gt;
| 0x8004802d || PP_E_CRL_PROXYLIST_TOOLONG&lt;br /&gt;
|-&lt;br /&gt;
| 0x8004802e || PP_E_CRL_PROXYBYPASSLIST_TOOLONG&lt;br /&gt;
|-&lt;br /&gt;
| 0x8004802f || PP_E_CRL_NULL_OPTION&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048030 || PPCRL_E_NO_UI_MODE&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048031 || PP_E_CRL_ILLEGAL_REQUEST_FLAG&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048032 || PP_E_CRL_NO_SERVICE_NAME&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048033 || PP_E_CRL_NO_TOKENBAG&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048034 || PP_E_CRL_STATUS_UNINITIALIZED&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048036 || PPCRL_E_LOCK&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048037 || PPCRL_E_SYNC_NOLOCK&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048038 || PPCRL_E_HTTP_QUERYINFO&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048039 || PP_E_CRL_NW_CALL_BLOCKED&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048040 || PP_E_CRL_NOTIFY_NOT_INITIALIZED&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048041 || PP_E_CRL_NOTIFY_SEND_FAILED&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048042 || PP_E_CRL_NOTIFY_RECV_FAILED&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048043 || PP_E_CRL_NOTIFY_NO_MESSAGE&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048101 || PPCRL_SESSIONKEY_MISSING&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048102 || PPCRL_ERROR_RESPONSE&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048103 || PPCRL_RESPONSE_BADXML&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048104 || PPCRL_REQUEST_BADXML&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048105 || PPCRL_TOKEN_CORRUPTED&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048106 || PPCRL_BASE64DECODE_FAILED&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048107 || PPCRL_RESPONSE_MISSINGREF&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048108 || PPCRL_RESPONSE_NOTIMESTAMPORRSTR&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048109 || PPCRL_RESPONSE_NOSIGNATUREELEMENT&lt;br /&gt;
|-&lt;br /&gt;
| 0x8004810a || PPCRL_RESPONSE_NOCIPHERELEMENT&lt;br /&gt;
|-&lt;br /&gt;
| 0x8004810b || PPCRL_TOKEN_WRONG_TYPE&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048201 || PP_E_DYNAMIC_SALT_CORRUPTED&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048202 || PP_E_DECRYPTION_FAILURE&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048203 || PP_E_TAMPERED_DATA&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048204 || PP_E_OBFUSCATOR_NOT_INITIALIZED&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048205 || PPCRL_NOT_INITIALIZED&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048206 || PPCRL_ENCODING_FAILED&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048250 || PP_E_CRL_CONFIG_NOT_INITIALIZED&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048251 || PP_E_CRL_REG_OPEN_FAILED&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048252 || PP_E_CRL_REG_QUERY_FAILED&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048253 || PP_E_CRL_REG_SET_FAILED&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048254 || PP_E_CRL_GETWINDOWSDIR_FAILED&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048255 || PP_E_OBFUSCATE_FAILED&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048256 || PP_E_LOAD_CONFIGDATA_FAILED&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048257 || PP_E_CRL_SAVE_DATA_FAILED&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048258 || PP_E_CRL_WRITE_DATA_FAILED&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048259 || PP_E_CRL_CONFIG_ALREADY_INITIALIZED&lt;br /&gt;
|-&lt;br /&gt;
| 0x8004825a || PP_E_CRL_CACHE_DIR_ERROR&lt;br /&gt;
|-&lt;br /&gt;
| 0x8004825b || PP_E_CRL_SERVICE&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048264 || PP_E_CORRUPT&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048265 || PP_E_NOTCONNECTED&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048266 || PP_E_PASSPORTDOWN&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048267 || PP_E_UPDATEFAILED&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048268 || PP_E_UPDATEINPROGRESS&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048269 || PP_E_CRL_GET_TEMP_FILENAME_FAILED&lt;br /&gt;
|-&lt;br /&gt;
| 0x8004826a || PP_E_CRL_EMPTY_TEMP_FILE&lt;br /&gt;
|-&lt;br /&gt;
| 0x8004826b || PP_E_CRL_SELECTNODE_FAILED&lt;br /&gt;
|-&lt;br /&gt;
| 0x8004826c || PP_E_CRL_GET_ATTR_FAILED&lt;br /&gt;
|-&lt;br /&gt;
| 0x8004826d || PP_E_CRL_GET_ITEM_FAILED&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048276 || PP_E_CRL_AQURIE_CONTEXT_FAILED&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048277 || PP_E_CRL_IMPORT_KEY_FAILED&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048278 || PP_E_CRL_CREATE_HASH_FAILED&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048279 || PP_E_CRL_HASH_DATA_FAILED&lt;br /&gt;
|-&lt;br /&gt;
| 0x8004827a || PP_E_CRL_INVALID_SIG&lt;br /&gt;
|-&lt;br /&gt;
| 0x8004827b || PP_E_CRL_DECODE_KEY_FAILED&lt;br /&gt;
|-&lt;br /&gt;
| 0x8004827c || PP_E_CRL_DECODE_SIG_FAILED&lt;br /&gt;
|-&lt;br /&gt;
| 0x8004827d || PP_E_CRL_FILE_INSTEAD_OF_DIR&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048301 || PP_E_CRL_CREDUI_ATLAXWININIT_FAIL&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048302 || PP_E_CRL_CREDUI_CREATEWINDOW_FAIL&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048303 || PP_E_CRL_CREDUI_HOSTRETRIEVAL_FAIL&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048304 || PP_E_CRL_CREDUI_CONTROLRETRIEVAL_FAIL&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048305 || PP_E_CRL_CREDUI_SHOWWINDOW_FAIL&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048306 || PP_E_CRL_CREDUI_UPDATEWINDOW_FAIL&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048307 || PP_E_CRL_CREDUI_REDRAWWINDOW_FAIL&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048308 || PP_E_CRL_CREDUI_INVALIDSIZE_FAIL&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048309 || PP_E_CRL_CREDUI_USERNOTSPECIFIED_FAIL&lt;br /&gt;
|-&lt;br /&gt;
| 0x8004830a || PP_E_CRL_CREDUI_LOCALUIMISSING&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048401 || PPCRL_E_SQM_UNKNOWN&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048402 || PPCRL_E_SQM_REQUEST_CANCELLED&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048403 || PPCRL_E_SQM_QUERY_STATUSCODE&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048404 || PPCRL_E_SQM_OUTOFMEMORY&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048405 || PPCRL_E_SQM_READRESPONSE&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048406 || PPCRL_E_SQM_RESPONSE_BADXML&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048407 || PPCRL_E_SQM_INTERNET_OTHER&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048408 || PPCRL_E_SQM_INTERNET_UI&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048409 || PPCRL_E_SQM_INTERNET_SYNTAX&lt;br /&gt;
|-&lt;br /&gt;
| 0x8004840a || PPCRL_E_SQM_INTERNET_NAME_NOT_RESOLVED&lt;br /&gt;
|-&lt;br /&gt;
| 0x8004840b || PPCRL_E_SQM_INTERNET_LOGIN&lt;br /&gt;
|-&lt;br /&gt;
| 0x8004840c || PPCRL_E_SQM_INTERNET_PROXY&lt;br /&gt;
|-&lt;br /&gt;
| 0x8004840d || PPCRL_E_SQM_INTERNET_OPERATION_CANCELLED&lt;br /&gt;
|-&lt;br /&gt;
| 0x8004840e || PPCRL_E_SQM_INTERNET_INCORRECT_HANDLE_STATE&lt;br /&gt;
|-&lt;br /&gt;
| 0x8004840f || PPCRL_E_SQM_INTERNET_CANNOT_CONNECT&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048410 || PPCRL_E_SQM_INTERNET_CONNECTION_ABORTED&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048411 || PPCRL_E_SQM_INTERNET_CONNECTION_RESET&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048412 || PPCRL_E_SQM_INTERNET_SEC_CERT_DATE_INVALID&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048413 || PPCRL_E_SQM_INTERNET_SEC_CERT_CN_INVALID&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048414 || PPCRL_E_SQM_INTERNET_SEC_CERT_ERRORS&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048415 || PPCRL_E_SQM_INTERNET_SEC_CERT_NO_REV&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048416 || PPCRL_E_SQM_INTERNET_SEC_CERT_REV_FAILED&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048417 || PPCRL_E_SQM_INTERNET_CLIENT_AUTH_CERT_NEEDED&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048418 || PPCRL_E_SQM_INTERNET_INVALID_CA&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048419 || PPCRL_E_SQM_INTERNET_SECURITY_WARNING&lt;br /&gt;
|-&lt;br /&gt;
| 0x8004841a || PPCRL_E_SQM_INTERNET_POST_IS_NON_SECURE&lt;br /&gt;
|-&lt;br /&gt;
| 0x8004841b || PPCRL_E_SQM_FTP&lt;br /&gt;
|-&lt;br /&gt;
| 0x8004841c || PPCRL_E_SQM_GOPHER&lt;br /&gt;
|-&lt;br /&gt;
| 0x8004841d || PPCRL_E_SQM_HTTP_HEADER&lt;br /&gt;
|-&lt;br /&gt;
| 0x8004841e || PPCRL_E_SQM_HTTP_DOWNLEVEL_SERVER&lt;br /&gt;
|-&lt;br /&gt;
| 0x8004841f || PPCRL_E_SQM_HTTP_INVALID_SERVER_RESPONSE&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048420 || PPCRL_E_SQM_HTTP_INVALID_QUERY_REQUEST&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048421 || PPCRL_E_SQM_HTTP_REDIRECT&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048422 || PPCRL_E_SQM_HTTP_COOKIE&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048423 || PPCRL_E_SQM_INTERNET_SECURITY_CHANNEL_ERROR&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048424 || PPCRL_E_SQM_INTERNET_DISCONNECTED&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048425 || PPCRL_E_SQM_INTERNET_SERVER_UNREACHABLE&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048426 || PPCRL_E_SQM_INTERNET_PROXY_SERVER_UNREACHABLE&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048427 || PPCRL_E_SQM_INTERNET_PROXYSCRIPT&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048428 || PPCRL_E_SQM_INTERNET_SEC_INVALID_CERT&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048429 || PPCRL_E_SQM_INTERNET_SEC_CERT_REVOKED&lt;br /&gt;
|-&lt;br /&gt;
| 0x8004842a || PPCRL_E_SQM_INTERNET_AUTODIAL&lt;br /&gt;
|-&lt;br /&gt;
| 0x8004842b || PPCRL_E_SQM_INTERNET_NOT_INITIALIZED&lt;br /&gt;
|-&lt;br /&gt;
| 0x8004842c || PPCRL_E_SQM_LOCK&lt;br /&gt;
|-&lt;br /&gt;
| 0x8004842d || PPCRL_E_SQM_SYNC_NOLOCK&lt;br /&gt;
|-&lt;br /&gt;
| 0x8004842e || PPCRL_E_SQM_HTTP_QUERYINFO&lt;br /&gt;
|-&lt;br /&gt;
| 0x8004842f || PPCRL_E_SQM_RESPONSE_TOO_LARGE&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048430 || PPCRL_E_SQM_INVALID_AUTH_SERVICE_RESPONSE&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048431 || PPCRL_E_SQM_NO_TOKENBAG&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048432 || PPCRL_E_SQM_RESPONSE_NOTIMESTAMPORRSTR&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048433 || PPCRL_E_SQM_RESPONSE_NOSIGNATUREELEMENT&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048434 || PPCRL_E_SQM_RESPONSE_NOCIPHERELEMENT&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048435 || PPCRL_E_SQM_REQUEST_E_RSTR_MISSING_REFERENCE_URI&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048436 || PPCRL_E_SQM_REQUEST_E_RSTR_MISSING_REFERENCED_TOKEN&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048437 || PPCRL_E_SQM_WAIT_ABANDONED&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048438 || PPCRL_E_SQM_WAIT_TIMEOUT&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048439 || PPCRL_E_SQM_INTERNET_TIMEOUT&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048800 || PPCRL_AUTHSTATE_E_UNAUTHENTICATED&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048801 || PPCRL_AUTHSTATE_E_EXPIRED&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048810 || PPCRL_AUTHREQUIRED_E_PASSWORD&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048811 || PPCRL_AUTHREQUIRED_E_SECURITY_KEY&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048813 || PPCRL_AUTHREQUIRED_E_CERTIFICATE&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048814 || PPCRL_AUTHREQUIRED_E_UNKNOWN&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048820 || PPCRL_REQUEST_E_AUTH_SERVER_ERROR&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048821 || PPCRL_REQUEST_E_BAD_MEMBER_NAME_OR_PASSWORD&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048823 || PPCRL_REQUEST_E_PASSWORD_LOCKED_OUT&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048824 || PPCRL_REQUEST_E_PASSWORD_LOCKED_OUT_BAD_PASSWORD_OR_HIP&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048825 || PPCRL_REQUEST_E_TOU_CONSENT_REQUIRED&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048826 || PPCRL_REQUEST_E_FORCE_RENAME_REQUIRED&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048827 || PPCRL_REQUEST_E_FORCE_CHANGE_PASSWORD_REQUIRED&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048828 || PPCRL_REQUEST_E_STRONG_PASSWORD_REQUIRED&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048829 || PPCRL_REQUEST_E_NO_CERTIFICATES_AVAILABLE&lt;br /&gt;
|-&lt;br /&gt;
| 0x8004882a || PPCRL_REQUEST_E_PARTNER_NOT_FOUND&lt;br /&gt;
|-&lt;br /&gt;
| 0x8004882b || PPCRL_REQUEST_E_PARTNER_HAS_NO_ASYMMETRIC_KEY&lt;br /&gt;
|-&lt;br /&gt;
| 0x8004882c || PPCRL_REQUEST_E_INVALID_POLICY&lt;br /&gt;
|-&lt;br /&gt;
| 0x8004882d || PPCRL_REQUEST_E_INVALID_MEMBER_NAME&lt;br /&gt;
|-&lt;br /&gt;
| 0x8004882e || PPCRL_REQUEST_E_MISSING_PRIMARY_CREDENTIAL&lt;br /&gt;
|-&lt;br /&gt;
| 0x8004882f || PPCRL_REQUEST_E_PENDING_NETWORK_REQUEST&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048830 || PPCRL_REQUEST_E_FORCE_CHANGE_SQSA&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048831 || PPCRL_REQUEST_E_PASSWORD_EXPIRED&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048832 || PPCRL_REQUEST_E_PENDING_USER_INPUT&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048833 || PPCRL_REQUEST_E_MISSING_HIP_SOLUTION&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048834 || PPCRL_REQUEST_E_PROFILE_ACCRUE_REQUIRED&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048836 || PPCRL_REQUEST_E_EMAIL_VALIDATION_REQUIRED&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048837 || PPCRL_REQUEST_E_PARTNER_NEED_STRONGPW&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048838 || PPCRL_REQUEST_E_PARTNER_NEED_STRONGPW_EXPIRY&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048839 || PPCRL_REQUEST_E_AUTH_EXPIRED&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048840 || PPCRL_REQUEST_E_USER_REQUESTED_HELP&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048841 || PPCRL_REQUEST_E_USER_FORGOT_PASSWORD&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048842 || PPCRL_REQUEST_E_USER_CANCELED&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048843 || PPCRL_REQUEST_E_USER_EDIT_PASSPORT&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048844 || PPCRL_REQUEST_E_USER_PASSPORTLOGO&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048845 || PPCRL_REQUEST_E_USER_SHOW_PRIVACY_STATEMENT&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048846 || PPCRL_REQUEST_E_USER_SHOW_TERMS_OF_USE&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048848 || PPCRL_REQUEST_E_NO_NETWORK&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048849 || PPCRL_REQUEST_E_UNKNOWN&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048850 || PPCRL_REQUEST_E_TOKEN_BEYOND_LIFTIME&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048851 || PPCRL_REQUEST_E_TOKEN_TARGETS_MISMATCH&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048852 || PPCRL_REQUEST_E_WRONG_DA&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048853 || PPCRL_REQUEST_E_KID_HAS_NO_CONSENT&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048854 || PPCRL_REQUEST_E_RSTR_MISSING_REFERENCE_URI&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048855 || PPCRL_REQUEST_E_RSTR_FAULT&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048856 || PPCRL_REQUEST_E_RSTR_MISSING_REFERENCED_TOKEN&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048857 || PPCRL_REQUEST_E_RSTR_MISSING_BASE64CERT&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048858 || PPCRL_REQUEST_E_RSTR_MISSING_TOKENTYPE&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048859 || PPCRL_REQUEST_E_RSTR_MISSING_SERVICENAME&lt;br /&gt;
|-&lt;br /&gt;
| 0x8004885a || PPCRL_REQUEST_E_RSTR_INVALID_TOKENTYPE&lt;br /&gt;
|-&lt;br /&gt;
| 0x8004885b || PPCRL_REQUEST_E_RSTR_MISSING_PRIVATE_KEY&lt;br /&gt;
|-&lt;br /&gt;
| 0x8004885c || PPCRL_REQUEST_E_INVALID_SERVICE_TIMESTAMP&lt;br /&gt;
|-&lt;br /&gt;
| 0x8004885d || PPCRL_REQUEST_E_INVALID_PKCS10_TIMESTAMP&lt;br /&gt;
|-&lt;br /&gt;
| 0x8004885e || PPCRL_REQUEST_E_INVALID_PKCS10&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048860 || PPCRL_E_AUTH_CONTEXT_ALREADY_IN_USE&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048861 || PPCRL_E_IDENTITY_NOT_AUTHENTICATED&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048862 || PPCRL_E_UNABLE_TO_RETRIEVE_SERVICE_TOKEN&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048868 || PPCRL_E_CERTIFICATE_AUTHENTICATION_NOT_SUPPORTED&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048869 || PPCRL_E_AUTH_SERVICE_UNAVAILABLE&lt;br /&gt;
|-&lt;br /&gt;
| 0x8004886a || PPCRL_E_INVALID_AUTH_SERVICE_RESPONSE&lt;br /&gt;
|-&lt;br /&gt;
| 0x8004886b || PPCRL_E_UNABLE_TO_INITIALIZE_CRYPTO_PROVIDER&lt;br /&gt;
|-&lt;br /&gt;
| 0x8004886c || PPCRL_E_NO_MEMBER_NAME_SET&lt;br /&gt;
|-&lt;br /&gt;
| 0x8004886d || PPCRL_E_CALLBACK_REQUIRED&lt;br /&gt;
|-&lt;br /&gt;
| 0x8004886e || PPCRL_E_DISCONTINUE_AUTHENTICATION&lt;br /&gt;
|-&lt;br /&gt;
| 0x8004886f || PPCRL_E_INVALIDFLAGS&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048870 || PPCRL_E_UNABLE_TO_RETRIEVE_CERT&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048871 || PPCRL_E_INVALID_RSTPARAMS&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048872 || PPCRL_E_MISSING_FILE&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048873 || PPCRL_E_ILLEGAL_LOGONIDENTITY_FLAG&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048874 || PPCRL_E_CERT_NOT_VALID_FOR_MINTTL&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048876 || PPCRL_E_CERT_INVALID_ISSUER&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048877 || PPCRL_E_NO_CERTSTORE_FOR_ISSUERS&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048878 || PPCRL_E_OFFLINE_AUTH&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048879 || PPCRL_E_SIGN_POP_FAILED&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048880 || PPCRL_E_CERT_INVALID_POP&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048881 || PPCRL_E_CALLER_NOT_SIGNED&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048882 || PPCRL_E_BUSY&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048883 || PPCRL_E_DOWNLOAD_FILE_FAILED&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048884 || PPCRL_E_BUILD_CERT_REQUEST_FAILED&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048885 || PPCRL_E_CERTIFICATE_NOT_FOUND&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048886 || PPCRL_E_AUTHBLOB_TOO_LARGE&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048887 || PPCRL_E_AUTHBLOB_NOT_FOUND&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048888 || PPCRL_E_AUTHBLOB_INVALID&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048889 || PPCRL_E_EXTPROP_NOTFOUND&lt;br /&gt;
|-&lt;br /&gt;
| 0x8004888a || PPCRL_E_RESPONSE_TOO_LARGE&lt;br /&gt;
|-&lt;br /&gt;
| 0x8004888b || PPCRL_E_EXTENDED_ERROR_NOT_SET&lt;br /&gt;
|-&lt;br /&gt;
| 0x8004888c || PPCRL_E_USER_NOTFOUND&lt;br /&gt;
|-&lt;br /&gt;
| 0x8004888d || PPCRL_E_SIGCHECK_FAILED&lt;br /&gt;
|-&lt;br /&gt;
| 0x8004888f || PPCRL_E_CREDTARGETNAME_INVALID&lt;br /&gt;
|-&lt;br /&gt;
| 0x80048890 || PPCRL_E_CREDINFO_CORRUPTED&lt;br /&gt;
|-&lt;br /&gt;
| 0x800488e0 || PPCRL_REQUEST_E_MISSING_HASHED_PASSWORD&lt;br /&gt;
|-&lt;br /&gt;
| 0x800488e1 || PPCRL_REQUEST_E_CLIENT_DEPRECATED&lt;br /&gt;
|-&lt;br /&gt;
| 0x800488e2 || PPCRL_REQUEST_E_CANCELLED&lt;br /&gt;
|-&lt;br /&gt;
| 0x800488e3 || PPCRL_REQUEST_E_INVALID_PKCS10_KEYLEN&lt;br /&gt;
|-&lt;br /&gt;
| 0x800488e4 || PPCRL_REQUEST_E_DUPLICATE_SERVICETARGET&lt;br /&gt;
|-&lt;br /&gt;
| 0x800488e5 || PPCRL_REQUEST_E_FORCE_SIGNIN&lt;br /&gt;
|-&lt;br /&gt;
| 0x800488e6 || PPCRL_REQUEST_E_PARTNER_NEED_CERTIFICATE&lt;br /&gt;
|-&lt;br /&gt;
| 0x800488e7 || PPCRL_REQUEST_E_PARTNER_NEED_PIN&lt;br /&gt;
|-&lt;br /&gt;
| 0x800488e8 || PPCRL_REQUEST_E_PARTNER_NEED_PASSWORD&lt;br /&gt;
|-&lt;br /&gt;
| 0x800488eb || PPCRL_REQUEST_E_SCHANNEL_ERROR&lt;br /&gt;
|-&lt;br /&gt;
| 0x800488ec || PPCRL_REQUEST_E_CERT_PARSE_ERROR&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:MSN]]&lt;br /&gt;
[[Category:Clients]]&lt;br /&gt;
[[Category:Protocols/MSNP]]&lt;br /&gt;
[[Category:Work_In_Progress]]&lt;/div&gt;</summary>
		<author><name>Bobsmith2</name></author>
	</entry>
	<entry>
		<id>https://wiki.nina.chat/index.php?title=Clients&amp;diff=8700</id>
		<title>Clients</title>
		<link rel="alternate" type="text/html" href="https://wiki.nina.chat/index.php?title=Clients&amp;diff=8700"/>
		<updated>2024-12-03T03:46:31Z</updated>

		<summary type="html">&lt;p&gt;Bobsmith2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a stub page which will have more information in the future. In the meantime, see these client pages:&lt;br /&gt;
&lt;br /&gt;
* [[Clients/AOL_Instant_Messenger|AOL Instant Messenger]]&lt;br /&gt;
* [[Clients/Windows_Live_Messenger|Windows Live Messenger]]&lt;br /&gt;
* [[Clients/Quiet_Internet_Pager|Quiet Internet Pager]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Stub]]&lt;br /&gt;
[[Category:Work_In_Progress]]&lt;/div&gt;</summary>
		<author><name>Bobsmith2</name></author>
	</entry>
	<entry>
		<id>https://wiki.nina.chat/index.php?title=Clients/AOL_Instant_Messenger&amp;diff=8699</id>
		<title>Clients/AOL Instant Messenger</title>
		<link rel="alternate" type="text/html" href="https://wiki.nina.chat/index.php?title=Clients/AOL_Instant_Messenger&amp;diff=8699"/>
		<updated>2024-12-03T03:42:25Z</updated>

		<summary type="html">&lt;p&gt;Bobsmith2: /* AIM for Windows (Chromium) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Protocols/OSCAR}}&lt;br /&gt;
This is a near-complete list of safe-to-download clients.&lt;br /&gt;
&lt;br /&gt;
If you know of any others, please email [mailto:contribute@wiki.nina.chat contribute@wiki.nina.chat]. Please include the version number if you can, most of the time it must be installed first and the version number is available either at the bottom of the sign on window or in Help -&amp;gt; About AIM on the buddy list.&lt;br /&gt;
&lt;br /&gt;
Various clients have special URLs/URIs to control the application from other programs, typically web pages, these are called [[Protocols/OSCAR/Clients/AIM/URLs|AIM URLs]] or AIM links.&lt;br /&gt;
&lt;br /&gt;
For potential errors you may encounter, see our [[Clients/AOL_Instant_Messenger/Errors|errors]] page.&lt;br /&gt;
&lt;br /&gt;
If moving from another AIM server to ours and experiencing a broken BuddyList, please see our [[Clients/AOL_Instant_Messenger/How_to_move|How To Move]] page.&lt;br /&gt;
&lt;br /&gt;
== Legend ==&lt;br /&gt;
Here is the support legend for the current state of features.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Color !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| White || In development/not yet tested&lt;br /&gt;
|-&lt;br /&gt;
| bgcolor=&amp;quot;#C0C0C0&amp;quot; | Grey || Not applicable&lt;br /&gt;
|-&lt;br /&gt;
| bgcolor=&amp;quot;#FF4040&amp;quot; | Red || Partially implemented&lt;br /&gt;
|-&lt;br /&gt;
| bgcolor=&amp;quot;#FFCC00&amp;quot; | Yellow || Implementation in alpha&lt;br /&gt;
|-&lt;br /&gt;
| bgcolor=&amp;quot;#3399FF&amp;quot; | Blue || Implementation in beta&lt;br /&gt;
|-&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | Green || Fully implemented&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== OSCAR ==&lt;br /&gt;
&lt;br /&gt;
'''NOTICE''' This list is subject to constant change as the drive to alpha approaches. It may also be updated in batches so it may not currently reflect the current state of things.&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Protocols/OSCAR/Services/BUCP|BUCP]]&lt;br /&gt;
&lt;br /&gt;
[[Protocols/OSCAR/Services/ADMIN|ADMIN]] or web&lt;br /&gt;
[[Protocols/OSCAR/Services/ADVERT|ADVERT]] or web&lt;br /&gt;
&lt;br /&gt;
[[Protocols/OSCAR/SNAC_0F|ODIR]]&lt;br /&gt;
[[Protocols/OSCAR/SNAC_25|MDIR]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Version !! Login !! [[Protocols/OSCAR/Services/BOS|BOS]] !! [[Protocols/OSCAR/Services/CHAT|CHAT]] !! [[Protocols/OSCAR/Services/BART|BART]] !! ADMIN !! ADVERT !! [[Protocols/OSCAR/Services/ALERT|ALERT]] !! [[Protocols/OSCAR/Services/ARS|ARS]] !! XDIR !! Other&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_1.0.386.exe AIM 1.0.386]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_1.0.414_32bit.exe AIM 1.0.414 32bit]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_1.6N_32bit.exe AIM 1.6N 32bit]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_1.7.486.exe AIM 1.7.486]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_1.7.563_(Sysop).zip AIM 1.7.563 (Sysop)]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;11&amp;quot; | Called AIM &amp;quot;Sysop&amp;quot; for historical reasons. [[Protocols/OSCAR/Clients/AIM/Sysop|Learn more]].&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_1.75.574.exe AIM 1.75.574]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_1.75.574_(Cybergold).exe AIM 1.75.574 (Cybergold)]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_1.75.582_(CompuServ).exe AIM 1.75.582 (CompuServ)]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_1.8.924.exe AIM 1.8.924]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_2.0.1475_%5BFR%5D.exe AIM 2.0.1475 FR]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_2.0.741.exe AIM 2.0.741]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_2.0.813.exe AIM 2.0.813]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_2.0.847.exe AIM 2.0.847]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_2.0.912_(MCI).exe AIM 2.0.912 (MCI)]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_2.0.996.exe AIM 2.0.996]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_2.0N.exe AIM 2.0N]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_2.1.1187.exe AIM 2.1.1187]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_3.0.0.1642_(TestBuddy).exe AIM TestBuddy]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_3.0.1464.exe AIM 3.0.1464]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_3.0.1466.exe AIM 3.0.1466]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_3.0.1571_(Juno).exe AIM 3.0.1571 (Juno)]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_3.0N.zip AIM 3.0N]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_3.5.1808.exe AIM 3.5.1808]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_4.0.1904_%5BFR%5D.exe AIM 4.0.1904 FR]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_4.0.2050_%5BFR%5D.exe AIM 4.0.2050 FR]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_4.1.2010.exe AIM 4.1.2010]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_4.1.2010_(CompuServ).exe AIM 4.1.2010 (CompuServ)]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_4.1.2010_(Earthlink).exe AIM 4.1.2010 (Earthlink)]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_4.1.2010_(Gateway.net).exe AIM 4.1.2010 (Gateway.net)]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_4.1.2010_(Juno).exe AIM 4.1.2010 (Juno)]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_4.1.2010_(Lycos).exe AIM 4.1.2010 (Lycos)]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_4.1.2010_(Netscape).exe AIM 4.1.2010_(Netscape)]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_4.1.2050_%5BCA-EN%5D.exe AIM 4.1.2050 CA-EN]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_4.1.2050_%5BCA-FR%5D.exe AIM 4.1.2050 CA-FR]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_4.1.2050_%5BHK%5D.exe AIM 4.1.2050 HK]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_4.1.2090_%5BJP%5D.exe AIM 4.1.2090 JP]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_4.2.2184.exe AIM 4.2.2184]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_4.3.2229.exe AIM 4.3.2229]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_4.3.2229N.exe AIM 4.3.2229N]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_4.3.2229_(diff).exe AIM 4.3.2229x]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_4.3.2229_%5BCA-EN%5D.exe AIM 4.3.2229 CA-EN]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_4.3.2229_%5BCA-FR%5D.exe AIM 4.3.2229 CA-FR]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_4.3.2232_%5BCA-EN%5D.exe AIM 4.3.2232 CA-EN]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_4.3.2232_%5BCA-FR%5D.exe AIM 4.3.2232 CA-FR]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_4.3.2232_%5BFR%5D.exe AIM 4.3.2232 FR]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_4.3.2234_%5BJP%5D.exe AIM 4.3.2234 JP]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_4.4.2286.exe AIM 4.4.2286]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_4.4.2286a.exe AIM 4.4.2286a]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_4.4.2286_Edited.exe AIM 4.4.2286M]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_4.7.2398.exe AIM 4.7.2398]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_4.7.2442.exe AIM 4.7.2442]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_4.7.2468.exe AIM 4.7.2468]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_4.7.2468_%5BCA-EN%5D.exe AIM 4.7.2468 CA-EN]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_4.7.2480.exe AIM 4.7.2480]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_4.7.2480b.exe AIM 4.7.2480b]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_4.7.2480_(Earthlink).exe AIM 4.7.2480_(Earthlink)]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_4.7.2480_%5BCA-EN%5D.exe AIM 4.7.2480 CA-EN]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_4.7.2480_%5BCA-FR%5D.exe AIM 4.7.2480 CA-FR]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_4.7.2517b_%5BCA-EN%5D.exe AIM 4.7.2517b CA-EN]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_4.7.2517b_%5BCA-FR%5D.exe AIM 4.7.2517b CA-FR]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_4.7.2517_%5BBR%5D.exe AIM 4.7.2517 BR]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_4.7.2577_%5BES%5D.exe AIM 4.7.2577 ES]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_4.7.2577_%5BJP%5D.exe AIM 4.7.2577 JP]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_4.7.2577_%5BUK%5D.exe AIM 4.7.2577 UK]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_4.8.2540.exe AIM 4.8.2540]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_4.8.2616.exe AIM 4.8.2616]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_4.8.2646.exe AIM 4.8.2646]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_4.8.2646_%5BAU%5D.exe AIM 4.8.2646 AU]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_4.8.2768.exe AIM 4.8.2768]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_4.8.2781.exe AIM 4.8.2781]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_4.8.2790.exe AIM 4.8.2790]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_5.0.2829.exe AIM 5.0.2829]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_5.0.2867.exe AIM 5.0.2867]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_5.0.2938.exe AIM 5.0.2938]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_5.1.3009.exe AIM 5.1.3009]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_5.1.3030.exe AIM 5.1.3030]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_5.1.3030_%5BUK%5D.exe AIM 5.1.3030 UK]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_5.1.3036.exe AIM 5.1.3036]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_5.1.3036_np.exe AIM 5.1.3036x]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_5.1.3036_%5BBR%5D.exe AIM 5.1.3036 BR]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_5.1.3036_%5BES%5D.exe AIM 5.1.3036 ES]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_5.2.3074.exe AIM 5.2.3074]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_5.2.3139.exe AIM 5.2.3139]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_5.2.3255.exe AIM 5.2.3255]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_5.2.3277.exe AIM 5.2.3277]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_5.2.3281.exe AIM 5.2.3281]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_5.2.3290.exe AIM 5.2.3290]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_5.2.3292.exe AIM 5.2.3292]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_5.5.3415.exe AIM 5.5.3415]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_5.5.3501.exe AIM 5.5.3501]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_5.5.3553.exe AIM 5.5.3553]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_5.5.3572.exe AIM 5.5.3572]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_5.5.3583.exe AIM 5.5.3583]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_5.5.3588.exe AIM 5.5.3588]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_5.5.3590.exe AIM 5.5.3590]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_5.5.3591.exe AIM 5.5.3591]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_5.5.3595.exe AIM 5.5.3595]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_5.5.3596_%5BUK%5D.exe AIM 5.5.3596 UK]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_5.5.3598.exe AIM 5.5.3598]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_5.5.3598_%5BBR%5D.exe AIM 5.5.3598 BR]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_5.5.3598_%5BCA-EN%5D.exe AIM 5.5.3598 CA-EN]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_5.5.3598_%5BUK%5D.exe AIM 5.5.3598 UK]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_5.5.3599.exe AIM 5.5.3599]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_5.9.3672.exe AIM 5.9.3672]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_5.9.3690.exe AIM 5.9.3690]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_5.9.3690_with_3rd_Party_Services.exe AIM 5.9.3690x]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_5.9.3702.exe AIM 5.9.3702]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_5.9.3759.exe AIM 5.9.3759]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_5.9.3771.exe AIM 5.9.3771]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_5.9.3782.exe AIM 5.9.3782]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_5.9.3793.exe AIM 5.9.3793]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_5.9.3797.exe AIM 5.9.3797]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_5.9.3828.exe AIM 5.9.3828]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_5.9.3844.exe AIM 5.9.3844]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_5.9.3850.exe AIM 5.9.3850]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_5.9.3857.exe AIM 5.9.3857]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_5.9.3861.exe AIM 5.9.3861]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_5.9.6082.exe AIM 5.9.6082]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_5.9.6089.exe AIM 5.9.6089]&lt;br /&gt;
| bgcolor=&amp;quot;#00C600&amp;quot; | BUCP || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_6.0.23.1_Triton_Beta.exe AIM Triton 6.0.23.1b]&lt;br /&gt;
| bgcolor=&amp;quot;#FF4040&amp;quot; | BUCP, AAM || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_6.0.26.1_Triton_Beta.exe AIM Triton 6.0.26.1b]&lt;br /&gt;
| bgcolor=&amp;quot;#FF4040&amp;quot; | BUCP, AAM || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_6.1.17.1_Triton_%5BUK%5D.7z AIM Triton 6.1.17.1 UK]&lt;br /&gt;
| bgcolor=&amp;quot;#FF4040&amp;quot; | BUCP, AAM || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_6.1.19.1_Triton_%5BUK%5D.zip AIM Triton 6.1.19.1 UK]&lt;br /&gt;
| bgcolor=&amp;quot;#FF4040&amp;quot; | BUCP, AAM || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_6.1.2.2_Triton_%5BES%5D.exe AIM Triton 6.1.2.2 ES]&lt;br /&gt;
| bgcolor=&amp;quot;#FF4040&amp;quot; | BUCP, AAM || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_6.1.22.1_Triton_%5BUK%5D.exe AIM Triton 6.1.22.1 UK]&lt;br /&gt;
| bgcolor=&amp;quot;#FF4040&amp;quot; | BUCP, AAM || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_6.1.24.2_Triton_%5BES%5D.zip AIM Triton 6.1.24.2 ES]&lt;br /&gt;
| bgcolor=&amp;quot;#FF4040&amp;quot; | BUCP, AAM || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_6.1.26.2_Triton_%5BFR%5D.zip AIM Triton 6.1.26.2 FR]&lt;br /&gt;
| bgcolor=&amp;quot;#FF4040&amp;quot; | BUCP, AAM || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_6.1.28.1_Triton_%5BDE%5D.zip AIM Triton 6.1.28.1 DE]&lt;br /&gt;
| bgcolor=&amp;quot;#FF4040&amp;quot; | BUCP, AAM || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_6.1.29.1_Triton_%5BNL%5D.zip AIM Triton 6.1.29.1 NL]&lt;br /&gt;
| bgcolor=&amp;quot;#FF4040&amp;quot; | BUCP, AAM || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_6.1.29.4_Triton_%5BES%5D.exe AIM Triton 6.1.29.4 ES]&lt;br /&gt;
| bgcolor=&amp;quot;#FF4040&amp;quot; | BUCP, AAM || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_6.1.3.1_Triton.exe AIM Triton 6.1.3.1]&lt;br /&gt;
| bgcolor=&amp;quot;#FF4040&amp;quot; | BUCP, AAM || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_6.1.3.1_Triton_%5BNL%5D.exe AIM Triton 6.1.3.1 NL]&lt;br /&gt;
| bgcolor=&amp;quot;#FF4040&amp;quot; | BUCP, AAM || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_6.1.30.1_Triton_%5BFR%5D.exe AIM Triton 6.1.30.1 FR]&lt;br /&gt;
| bgcolor=&amp;quot;#FF4040&amp;quot; | BUCP, AAM || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_6.1.31.1_Triton_%5BDE%5D.exe AIM Triton 6.1.31.1 DE]&lt;br /&gt;
| bgcolor=&amp;quot;#FF4040&amp;quot; | BUCP, AAM || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_6.1.46.1_Triton.exe AIM Triton 6.1.46.1]&lt;br /&gt;
| bgcolor=&amp;quot;#FF4040&amp;quot; | BUCP, AAM || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_6.1.5.1_Triton_%5BIT%5D.exe AIM Triton 6.1.5.1 IT]&lt;br /&gt;
| bgcolor=&amp;quot;#FF4040&amp;quot; | BUCP, AAM || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_6.2.6.1_Triton_%5BUK%5D.exe AIM Triton 6.2.6.1 UK] || L || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_6.2.7.1_Triton_%5BES%5D.exe AIM Triton 6.2.7.1 ES] || L || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_6.5.11.1.exe AIM 6.5.11.1.exe] || L || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_6.5.3.12.exe AIM 6.5.3.12.exe] || L || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_6.5.4.15.exe AIM 6.5.4.15.exe] || L || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_6.5.4.16.exe AIM 6.5.4.16.exe] || L || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_6.5.5.2.exe AIM 6.5.5.2.exe] || L || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_6.5.6.11_%5BJP%5D.exe AIM 6.5.6.11 JP] || L || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_6.5.7.13.exe AIM 6.5.7.13.exe] || L || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_6.5.7.14_Beta.exe AIM 6.5.7.14b] || L || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_6.5.7.18_Beta.exe AIM 6.5.7.18b] || L || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_6.5.7.20_Beta.exe AIM 6.5.7.20b] || L || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_6.5.8.1.exe AIM 6.5.8.1.exe] || L || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_6.5.9.1.exe AIM 6.5.9.1.exe] || L || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_6.8.1.5_Beta.exe AIM 6.8.1.5b] || L || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_6.8.10.1.exe AIM 6.8.10.1.exe] || L || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_6.8.12.4.exe AIM 6.8.12.4.exe] || L || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_6.8.14.6.exe AIM 6.8.14.6.exe] || L || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_6.8.15.1.exe AIM 6.8.15.1.exe] || L || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_6.8.16.7_(TMZ).exe AIM 6.8.16.7 (TMZ)] || L || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_6.8.18.4_(Moviefone).exe AIM 6.8.18.4 (Moviefone)] || L || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_6.8.19.5_(AOL_Music).exe AIM 6.8.19.5 (AOL Music)] || L || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_6.8.2.18_Beta.exe AIM 6.8.2.18b] || L || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_6.8.2.19_Beta_2.exe AIM 6.8.2.19 Beta 2] || L || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_6.8.5.17_Beta_3.exe AIM 6.8.5.17 Beta 3] || L || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_6.8.6.12_Beta_4.exe AIM 6.8.6.12 Beta 4] || L || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_6.8.7.7.exe AIM 6.8.7.7.exe] || L || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_6.8.8.4.exe AIM 6.8.8.4.exe] || L || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_6.9.1.2_Beta.exe AIM 6.9.1.2b] || L || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_6.9.10.16_Beta_4.exe AIM 6.9.10.16 Beta 4] || L || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_6.9.10.16_Beta_4b.exe AIM 6.9.10.16 Beta 4] || L || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_6.9.11.1_Beta_4b.exe AIM 6.9.11.1 Beta 4] || L || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_6.9.13.4.exe AIM 6.9.13.4] || L || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_6.9.14.5.exe AIM 6.9.14.5] || L || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_6.9.15.1.exe AIM 6.9.15.1] || L || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_6.9.16.2.exe AIM 6.9.16.2] || L || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_6.9.17.2.exe AIM 6.9.17.2] || L || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_6.9.2.27_Beta_2.exe AIM 6.9.2.27 Beta 2] || L || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_6.9.7.4_Beta_3.exe AIM 6.9.7.4 Beta 3] || L || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_7.0.12.2.exe AIM 7.0.12.2] || L || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_7.0.13.4.exe AIM 7.0.13.4] || L || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_7.0.15.3.exe AIM 7.0.15.3] || L || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_7.0.3.16_Beta_1.exe AIM 7.0.3.16 Beta 1] || L || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_7.0.5.30_Beta_2.exe AIM 7.0.5.30 Beta 2] || L || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_7.0.5.38_Beta_3.exe AIM 7.0.5.38 Beta 3] || L || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_7.0.8.15_Beta_5.exe AIM 7.0.8.15 Beta 5] || L || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_7.1.3.4_Beta_2.exe AIM 7.1.3.4 Beta 2] || L || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_7.1.4.10_Beta_3.exe AIM 7.1.4.10 Beta 3] || L || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_7.1.5.1_Beta_3.exe AIM 7.1.5.1 Beta 3] || L || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_7.1.6.4.exe AIM 7.1.6.4] || L || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_7.2.3.10_Beta_1.exe AIM 7.2.3.10 Beta 1] || L || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_7.2.5.5_Beta_2.exe AIM 7.2.5.5 Beta 2] || L || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_7.2.6.1.exe AIM 7.2.6.1] || L || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_7.2.7.2.exe AIM 7.2.7.2] || L || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_7.3.11.2_FB.exe AIM 7.3.11.2 Facebook] || L || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_7.3.12.3.exe AIM 7.3.12.3] || L || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_7.3.14.1.exe AIM 7.3.14.1] || L || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_7.3.3.6_Beta_1.exe AIM 7.3.3.6 Beta 1] || L || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_7.3.4.4_Beta_2.exe AIM 7.3.4.4 Beta 2] || L || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_7.3.6.4.exe AIM 7.3.6.4] || L || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_7.4.2.22_Beta_1.exe AIM 7.4.2.22b] || L || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_7.4.2.24_Beta_1b.exe AIM 7.4.2.24b] || L || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_7.4.4.13_Beta_2.exe AIM 7.4.4.13 Beta 2] || L || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_7.4.5.12.exe AIM 7.4.5.12] || L || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_7.5.10.2.exe AIM 7.5.10.2] || L || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_7.5.11.9.exe AIM 7.5.11.9] || L || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_7.5.12.6.exe AIM 7.5.12.6] || L || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_7.5.14.8.exe AIM 7.5.14.8] || L || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_7.5.21.5.exe AIM 7.5.21.5] || L || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_7.5.4.11_Beta_1.exe AIM 7.5.4.11 Beta 1] || L || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_7.5.5.7_Beta_2.exe AIM 7.5.5.7 Beta 2] || L || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_7.5.6.2.exe AIM 7.5.6.2] || L || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_7.5.7.6.exe AIM 7.5.7.6] || L || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_7.5.8.2.exe AIM 7.5.8.2] || L || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_7.5.9.1_%5BUK%5D.exe AIM 7.5.9.1 UK] || L || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
| X || L || B || C || B || A || AD || AL || AR || D || O&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== AIM for Windows (Chromium) ====&lt;br /&gt;
At this point AIM becomes a web application, made with JavaScript like everything else now.&lt;br /&gt;
* [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_8.0.10.2.exe AOL_Instant_Messenger_8.0.10.2.exe]&lt;br /&gt;
* [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_8.0.6.1.exe AOL_Instant_Messenger_8.0.6.1.exe]&lt;br /&gt;
* [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_8.0.7.1.exe AOL_Instant_Messenger_8.0.7.1.exe]&lt;br /&gt;
* [//storage.fdo-files.com/nina/clients/aim/AIM_for_Windows_0.0.8.234.exe AIM_for_Windows_0.0.8.234.exe]&lt;br /&gt;
* [//storage.fdo-files.com/nina/clients/aim/AIM_for_Windows_1.0.0.2.exe AIM_for_Windows_1.0.0.2.exe]&lt;br /&gt;
* [//storage.fdo-files.com/nina/clients/aim/AIM_for_Windows_1.2.1.6.exe AIM_for_Windows_1.2.1.6.exe]&lt;br /&gt;
&lt;br /&gt;
[https://client.nina.chat/ if you're a member of the NINA service, you can also use this version of AIM on any relatively modern web browser here.]&lt;br /&gt;
&lt;br /&gt;
==== AIM Lite ====&lt;br /&gt;
* [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_Lite_0.33.exe AOL_Instant_Messenger_Lite_0.33.exe]&lt;br /&gt;
&lt;br /&gt;
==== AIM Pro ====&lt;br /&gt;
* [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_Pro_1.1.0.208.exe AOL_Instant_Messenger_Pro_1.1.0.208.exe] - Contributed by PCRA via VoyArchivist&lt;br /&gt;
* [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_Pro_1.1.0.209.exe AOL_Instant_Messenger_Pro_1.1.0.209.exe] - Contributed by PCRA via VoyArchivist&lt;br /&gt;
* [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_Pro_1.2.1.255.exe AOL_Instant_Messenger_Pro_1.2.1.255.exe] - Contributed by PCRA via VoyArchivist&lt;br /&gt;
* [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_Pro_1.4.0.272.exe AOL_Instant_Messenger_Pro_1.4.0.272.exe] - Contributed by PCRA via VoyArchivist&lt;br /&gt;
* [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_Pro_1.5.0.291.exe AOL_Instant_Messenger_Pro_1.5.0.291.exe]&lt;br /&gt;
* [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_Pro_1.5.0.292_(Business_Edition).exe AOL_Instant_Messenger_Pro_1.5.0.292_(Business_Edition).exe] - Contributed by PCRA via VoyArchivist&lt;br /&gt;
* [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_Pro_2.0.0.3263_(Cisco_WebEx_Connect).exe AOL_Instant_Messenger_Pro_2.0.0.3263_(Cisco_WebEx_Connect).exe] - Contributed by PCRA via VoyArchivist&lt;br /&gt;
* [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_Pro_2.0.0.3358_(Cisco_WebEx_Connect).exe AOL_Instant_Messenger_Pro_2.0.0.3358_(Cisco_WebEx_Connect).exe] - Contributed by PCRA via VoyArchivist&lt;br /&gt;
* [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_Pro_2.4.0.3436_(Cisco_WebEx_Connect).exe AOL_Instant_Messenger_Pro_2.4.0.3436_(Cisco_WebEx_Connect).exe] - Contributed by PCRA via VoyArchivist&lt;br /&gt;
&lt;br /&gt;
==== Netscape with AIM ====&lt;br /&gt;
* [//storage.fdo-files.com/nina/clients/aim/Netscape_6.0.1_with_AIM.exe Netscape_6.0.1_with_AIM.exe]&lt;br /&gt;
* [//storage.fdo-files.com/nina/clients/aim/Netscape_7.1.0_with_AIM.exe Netscape_7.1.0_with_AIM.exe]&lt;br /&gt;
&lt;br /&gt;
==== Windows CE ====&lt;br /&gt;
* [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_0.8.753_(Windows_CE).hpc_mips.cab AOL_Instant_Messenger_0.8.753_(Windows_CE).hpc_mips.cab]&lt;br /&gt;
* [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_0.8.753_(Windows_CE).hpcpro_arm.cab AOL_Instant_Messenger_0.8.753_(Windows_CE).hpcpro_arm.cab]&lt;br /&gt;
* [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_0.8.753_(Windows_CE).hpcpro_mips.cab AOL_Instant_Messenger_0.8.753_(Windows_CE).hpcpro_mips.cab]&lt;br /&gt;
* [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_0.8.753_(Windows_CE).hpcpro_sh3.cab AOL_Instant_Messenger_0.8.753_(Windows_CE).hpcpro_sh3.cab]&lt;br /&gt;
* [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_0.8.753_(Windows_CE).hpcpro_sh4.cab AOL_Instant_Messenger_0.8.753_(Windows_CE).hpcpro_sh4.cab]&lt;br /&gt;
* [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_2.0_(Windows_CE).exe AOL_Instant_Messenger_2.0_(Windows_CE).exe]&lt;br /&gt;
&lt;br /&gt;
==== Windows 16bit ====&lt;br /&gt;
* [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_1.0.414_16bit.exe AOL_Instant_Messenger_1.0.414_16bit.exe]&lt;br /&gt;
* [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_1.6N_16bit.exe AOL_Instant_Messenger_1.6N_16bit.exe]&lt;br /&gt;
&lt;br /&gt;
=== Mac OS X ===&lt;br /&gt;
* [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_1.5.127_(Mac).zip AOL_Instant_Messenger_1.5.127_(Mac).zip]&lt;br /&gt;
* [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_1.5.129_(Mac).zip AOL_Instant_Messenger_1.5.129_(Mac).zip]&lt;br /&gt;
* [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_2.0.227_(Mac).zip AOL_Instant_Messenger_2.0.227_(Mac).zip]&lt;br /&gt;
* [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_2.0.228_(Mac).zip AOL_Instant_Messenger_2.0.228_(Mac).zip]&lt;br /&gt;
* [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_2.0.229_(Mac).zip AOL_Instant_Messenger_2.0.229_(Mac).zip]&lt;br /&gt;
* [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_2.1.296_(Mac).zip AOL_Instant_Messenger_2.1.296_(Mac).zip]&lt;br /&gt;
* [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_2.1.302_(Mac).zip AOL_Instant_Messenger_2.1.302_(Mac).zip]&lt;br /&gt;
* [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_2.2.429_(Mac).zip AOL_Instant_Messenger_2.2.429_(Mac).zip]&lt;br /&gt;
** [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_2.2.439.dmg AOL_Instant_Messenger_2.2.439.dmg]&lt;br /&gt;
* [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_8.0.0.6_(Mac).zip AOL_Instant_Messenger_8.0.0.6_(Mac).zip]&lt;br /&gt;
** [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_8.0.0.6.dmg AOL_Instant_Messenger_8.0.0.6.dmg]&lt;br /&gt;
* [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_8.0.5.2_(Mac).zip AOL_Instant_Messenger_8.0.5.2_(Mac).zip]&lt;br /&gt;
* [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_8.0.9.3_(Mac).zip AOL_Instant_Messenger_8.0.9.3_(Mac).zip]&lt;br /&gt;
&lt;br /&gt;
=== Mac OS &amp;lt;= 9.x ===&lt;br /&gt;
* [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_1.8.924.bin AOL_Instant_Messenger_1.8.924.bin]&lt;br /&gt;
* [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_2.0.1617.bin AOL_Instant_Messenger_2.0.1617.bin]&lt;br /&gt;
* [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_2.0.1617.hqx AOL_Instant_Messenger_2.0.1617.hqx]&lt;br /&gt;
* [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_2.0.1644.bin AOL_Instant_Messenger_2.0.1644.bin]&lt;br /&gt;
* [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_2.0.1644.hqx AOL_Instant_Messenger_2.0.1644.hqx]&lt;br /&gt;
* [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_2.0.1663.bin AOL_Instant_Messenger_2.0.1663.bin]&lt;br /&gt;
* [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_2.0.1663.hqx AOL_Instant_Messenger_2.0.1663.hqx]&lt;br /&gt;
* [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_2.0.466.bin AOL_Instant_Messenger_2.0.466.bin]&lt;br /&gt;
* [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_2.0.477.hqx AOL_Instant_Messenger_2.0.477.hqx]&lt;br /&gt;
* [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_2.0.912_(MCI).bin AOL_Instant_Messenger_2.0.912_(MCI).bin]&lt;br /&gt;
* [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_2.0.912_(MCI).hqx AOL_Instant_Messenger_2.0.912_(MCI).hqx]&lt;br /&gt;
* [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_2.0.996.hqx AOL_Instant_Messenger_2.0.996.hqx]&lt;br /&gt;
* [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_2.01.617.sit AOL_Instant_Messenger_2.01.617.sit]&lt;br /&gt;
* [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_2.0N.hqx AOL_Instant_Messenger_2.0N.hqx]&lt;br /&gt;
* [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_2.0Nx.bin AOL_Instant_Messenger_2.0Nx.bin]&lt;br /&gt;
* [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_2.5.720.bin AOL_Instant_Messenger_2.5.720.bin]&lt;br /&gt;
* [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_2.5.720.hqx AOL_Instant_Messenger_2.5.720.hqx]&lt;br /&gt;
* [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_3.0.1466.hqx AOL_Instant_Messenger_3.0.1466.hqx]&lt;br /&gt;
* [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_3.0.750N.bin AOL_Instant_Messenger_3.0.750N.bin]&lt;br /&gt;
* [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_4.0.1068.bin AOL_Instant_Messenger_4.0.1068.bin]&lt;br /&gt;
* [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_4.0.972.bin AOL_Instant_Messenger_4.0.972.bin]&lt;br /&gt;
* [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_4.0.972.hqx AOL_Instant_Messenger_4.0.972.hqx]&lt;br /&gt;
* [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_4.1.1068_%5BFR%5D.bin AOL_Instant_Messenger_4.1.1068_&amp;amp;#91;FR&amp;amp;#93;.bin]&lt;br /&gt;
* [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_4.1.2010.bin AOL_Instant_Messenger_4.1.2010.bin]&lt;br /&gt;
* [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_4.1.2010.hqx AOL_Instant_Messenger_4.1.2010.hqx]&lt;br /&gt;
* [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_4.2.1193.bin AOL_Instant_Messenger_4.2.1193.bin]&lt;br /&gt;
* [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_4.2.1228.bin AOL_Instant_Messenger_4.2.1228.bin]&lt;br /&gt;
* [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_4.3.1233.bin AOL_Instant_Messenger_4.3.1233.bin]&lt;br /&gt;
* [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_4.3.x.bin AOL_Instant_Messenger_4.3.x.bin]&lt;br /&gt;
* [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_4.5.144.bin AOL_Instant_Messenger_4.5.144.bin]&lt;br /&gt;
* [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_4.5.237.bin AOL_Instant_Messenger_4.5.237.bin]&lt;br /&gt;
* [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_4.5.355.bin AOL_Instant_Messenger_4.5.355.bin]&lt;br /&gt;
* [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_4.5.494.bin AOL_Instant_Messenger_4.5.494.bin]&lt;br /&gt;
* [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_4.5.494.hqx AOL_Instant_Messenger_4.5.494.hqx]&lt;br /&gt;
* [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_4.5.651.bin AOL_Instant_Messenger_4.5.651.bin]&lt;br /&gt;
* [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_4.5.78.bin AOL_Instant_Messenger_4.5.78.bin]&lt;br /&gt;
* [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_4.5.794.bin AOL_Instant_Messenger_4.5.794.bin]&lt;br /&gt;
* [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_4.5.863.bin AOL_Instant_Messenger_4.5.863.bin]&lt;br /&gt;
* [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_4.5.967.bin AOL_Instant_Messenger_4.5.967.bin]&lt;br /&gt;
* [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_4.7.1333.bin AOL_Instant_Messenger_4.7.1333.bin]&lt;br /&gt;
* [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_4.7.1b.bin AOL_Instant_Messenger_4.7.1b.bin]&lt;br /&gt;
* [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_4.7.2b.bin AOL_Instant_Messenger_4.7.2b.bin]&lt;br /&gt;
* [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_4.7.3b.bin AOL_Instant_Messenger_4.7.3b.bin]&lt;br /&gt;
&lt;br /&gt;
=== Linux ===&lt;br /&gt;
* [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_1.1.112-1.i386.deb AOL_Instant_Messenger_1.1.112-1.i386.deb]&lt;br /&gt;
* [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_1.1.112-1.i386.rpm AOL_Instant_Messenger_1.1.112-1.i386.rpm]&lt;br /&gt;
* [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_1.1.112-1.i386.tgz AOL_Instant_Messenger_1.1.112-1.i386.tgz]&lt;br /&gt;
* [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_1.5.234-1.i386.deb AOL_Instant_Messenger_1.5.234-1.i386.deb]&lt;br /&gt;
* [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_1.5.234-1.i386.rpm AOL_Instant_Messenger_1.5.234-1.i386.rpm]&lt;br /&gt;
* [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_1.5.234-1.i386.tgz AOL_Instant_Messenger_1.5.234-1.i386.tgz]&lt;br /&gt;
* [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_1.5.277-1.i386.deb AOL_Instant_Messenger_1.5.277-1.i386.deb]&lt;br /&gt;
* [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_1.5.277-1.i386.rpm AOL_Instant_Messenger_1.5.277-1.i386.rpm]&lt;br /&gt;
* [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_1.5.277-1.i386.tgz AOL_Instant_Messenger_1.5.277-1.i386.tgz]&lt;br /&gt;
* [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_1.5.286-1.i386.rpm AOL_Instant_Messenger_1.5.286-1.i386.rpm]&lt;br /&gt;
* [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_1.5.286-1_i386.deb AOL_Instant_Messenger_1.5.286-1_i386.deb]&lt;br /&gt;
* [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_1.5.286-2_i386.deb AOL_Instant_Messenger_1.5.286-2_i386.deb]&lt;br /&gt;
* [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_1.5.286.tgz AOL_Instant_Messenger_1.5.286.tgz]&lt;br /&gt;
&lt;br /&gt;
=== Android ===&lt;br /&gt;
* [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_1.10.9.1_(Android).apk AOL_Instant_Messenger_1.10.9.1_(Android).apk]&lt;br /&gt;
&lt;br /&gt;
=== Java ===&lt;br /&gt;
* [//storage.fdo-files.com/nina/clients/aim/AOL_Instant_Messenger_1.1.19_(Java).exe AOL_Instant_Messenger_1.1.19_(Java).exe]&lt;br /&gt;
&lt;br /&gt;
== TOC ==&lt;br /&gt;
The [[Protocols/TOC|TOC protocol]] has yet to be implemented, but it will be.&lt;br /&gt;
* [//storage.fdo-files.com/nina/clients/aim/TIC_(Java).zip TIC_(Java).zip]&lt;br /&gt;
* [//storage.fdo-files.com/nina/clients/aim/TNT_1.7_(Emacs).zip TNT_1.7_(Emacs).zip]&lt;br /&gt;
&lt;br /&gt;
[[Category:Stub]]&lt;br /&gt;
[[Category:AOL]]&lt;br /&gt;
[[Category:AIM]]&lt;br /&gt;
[[Category:Protocols/OSCAR]]&lt;br /&gt;
[[Category:Protocols/OSCAR/Clients]]&lt;br /&gt;
[[Category:Work_In_Progress]]&lt;/div&gt;</summary>
		<author><name>Bobsmith2</name></author>
	</entry>
	<entry>
		<id>https://wiki.nina.chat/index.php?title=Support/Extended_FAQ&amp;diff=8698</id>
		<title>Support/Extended FAQ</title>
		<link rel="alternate" type="text/html" href="https://wiki.nina.chat/index.php?title=Support/Extended_FAQ&amp;diff=8698"/>
		<updated>2024-12-03T03:32:56Z</updated>

		<summary type="html">&lt;p&gt;Bobsmith2: /* Supporter Status */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is for extended frequently asked questions beyond the [https://nina.chat/support/faq/ main website FAQ] to answer really specific questions that only come up once in a blue moon.&lt;br /&gt;
&lt;br /&gt;
=== Supporter Status ===&lt;br /&gt;
&lt;br /&gt;
==== How much do I pay for ICQ/AOL/WebEscargot access? ====&lt;br /&gt;
Check out the Rewards section [https://nina.chat/donate/ here] to see each tier, the donation amount required, and the benefits offered.&lt;br /&gt;
&lt;br /&gt;
==== What are PowerTools? ====&lt;br /&gt;
PowerTools is a set of premium features available exclusively to supporters. Think of it as our version of Discord Nitro or X Premium. Currently, it provides access to the Last Call chat room, but in the near future, it will unlock additional features and capabilities within AIM, ICQ, and more.&lt;br /&gt;
&lt;br /&gt;
==== How many UINs or screennames can I register? ====&lt;br /&gt;
While AIM/ICQ is in gamma, $5 gets you one UIN and one screenname (so one of each). If you join at the alpha tier (for AOL access as well) you can register 5 screennames.&lt;br /&gt;
&lt;br /&gt;
==== Can I donate on someone else's behalf? Can I donate for a friend? ====&lt;br /&gt;
&lt;br /&gt;
Yes, this is allowed, however that donation will never be applied to your account(s), no matter what happens between you and your friend. Our database will simply mark it as a donation from them.&lt;br /&gt;
&lt;br /&gt;
==== Can I transfer my supporter status to someone else? ====&lt;br /&gt;
No. This isn't, however, because of money. Instead it has to do with a few issues which are best demonstrated by a &amp;quot;hypothetical&amp;quot; situation:&lt;br /&gt;
&lt;br /&gt;
: Tina is an alpha tier supporter, but isn't interested in using the service anymore. So she wants her supporter status moved to Pat. That's easy enough, so it's done. One year later Tina returns and says &amp;quot;I was an alpha supporter, can I have that status back?&amp;quot; She genuinely doesn't remember giving the status to anyone else and because the original conversation about the issue is now gone, it can't be proven.&lt;br /&gt;
&lt;br /&gt;
As you can see it creates a few issues, the least of which it requires us to do additional tracking of where it was moved to. Tina technically did nothing wrong, she really doesn't remember giving it up, so she feels angry that we are now telling her she no longer had that status. It's just easier for us not to allow this. &lt;br /&gt;
&lt;br /&gt;
You can, however, still [[Support/Extended_FAQ#Can_I_donate_on_someone_else.27s_behalf.3F_Can_I_donate_for_a_friend.3F|donate on someone else's behalf]] and the finer details make it clear why that's still allowed.&lt;br /&gt;
&lt;br /&gt;
=== Escargot ===&lt;br /&gt;
&lt;br /&gt;
==== Is Escargot down right now? ====&lt;br /&gt;
No. If you didn't see an announcement then it's not down, it's an issue you have. Please see other support areas for further help.&lt;/div&gt;</summary>
		<author><name>Bobsmith2</name></author>
	</entry>
</feed>