ICQ 2001b server for Windows

Guys! I need a ICQ 2001b server for Windows fully working as of today.

IIRC, they’re still up. You just need the virtue of owning an actual UIN, as ICQ doesn’t offer those anymore. waiting a day after you register for ICQ to add a password via password recovery, as ICQ sets a mystery password to your account, and the password recovery page won’t let you reset your password until a day has passed since you’ve registered your ICQ. :stuck_out_tongue:


Yes. But I hope AOL didn’t shut down the servers for that, too, since ICQ utilized OSCAR, the same protocol as AIM, at the time. :stuck_out_tongue:

What’s the name of the server fully working for ICQ 2001b for Windows that you are talking about?

The official servers the supported ICQ clients connect to out of the box. :slight_smile:

Where is the download link for that fully working ICQ 2001b server for Windows that you’re talking about?

They’re the company-owned servers, so you can’t download that.

As for the client that utilize the servers, if you have a working ICQ UIN or username or something, here you go. :stuck_out_tongue:

I don’t have a working ICQ UIN or username or something. How do I have a working ICQ UIN or username or something?

it’s basically the same servers but different codes now. old versions of ICQ still can connect via the same server urls but a lot of those features have gone away since then. I would suggest using it for only instant messages and not posting any feed through the messenger. such as Facebook wall posts because that don’t work anymore. even if ICQ2001b doesn’t have those features. it’s more likely it’s own features before that time have gone away as well.
you still need a UIN Number to connect to ICQ services through the old versions of ICQ Messenger. it’s not such a bad idea to come up with a patch for this messenger to bring back it’s features that were used by you and your friends. :slight_smile: on the other hand a server is kind of out of the question right now. I would just suggest a small patch as mentioned above.

Here is how ICQ 2001b looks like on Windows 98! How do I do now? I don’t know how to do it!

Try clicking on “New ICQ#” to see if you can still register a UIN (granted that you have networking enabled on your VM).

If you can (or if you already have a UIN), click on “Existing User” and log in with your UIN and password. :stuck_out_tongue:

1 Like

As i know, you can’t register with ICQ 2001b anymore.

1 Like

From trying to sign up myself, it doesn’t seem to work, as @Deathlife23 stated. Opening up Wireshark and reading the OSCAR packets led me to believe that the server might not want new UINs to be created.

First, I examined the ICQ OSCAR packets thanks to this documentation covering both AIM and ICQ clients. The two packets shown below, sent by the server and client, respectively:


0x00000000     2A 01 39 86 00 04 00 00     *.9.....
0x00000008     00 01                       ..


0x00000000     2A 01 24 86 00 04 00 00     *.$.....
0x00000008     00 01                       ..

are just the usual OSCAR handshake packets sent when a connection is initiated.

This is where things get juicy…

After negotiation, the client sends this:

0x00000000     2A 02 39 87 00 49 00 17     *....I..
0x00000008     00 04 00 00 00 00 00 00     ........
0x00000010     00 01 00 3B 00 00 00 00     ...;....
0x00000018     28 00 03 00 00 00 00 00     (.......
0x00000020     00 00 00 00 FF 20 00 00     ....ÿ ..
0x00000028     FF 20 00 00 00 00 00 00     ÿ ......
0x00000030     00 00 00 00 00 00 00 00     ........
0x00000038     00 00 00 00 09 00 xx xx     ......**
0x00000040     xx xx xx xx xx xx 00 FF     ******.ÿ
0x00000048     20 00 00 00 00 05 02         ......

The second byte of the packet is 0x02, so this is a SNAC container. Luckily, there is documentation for the specified SNAC packet contained, SNAC(17, 04). The data contained inside the SNAC is ICQ packet data pre-OSCAR contained inside a TLV and contains a bit too much padding, but I’ll list the important fields here:

  • Subcmd: 0x28 (LE WORD; 0x18-0x19)
  • Sequence: 0x30 (LE WORD; 0x1A-0x1B)
  • Registration cookie: variable (DWORD; 0x24-0x27, 0x28-0x2B, and a variable location after the password)
  • Password length: variable (LE WORD; 0x3C-0x3D)
  • Password: variable (ASCIIZ; 0x3E-variable)

And just so you know, yes I’m aware that this is a flawed registration system, considering the password isn’t even encrypted, and is being sent in the clear as TCP data. Best they stuck with HTTPS (webpage or server-side script called by ICQ). :stuck_out_tongue:

Now, for successful registration, the server is supposed to respond with SNAC(17,05), which also contains pre-OSCAR ICQ packet data stuffed inside a TLV, which contains a newly generated UIN.

But in this case, the server responded with these (they were compounded in the original transport):

0x00000000     2A 02 24 07 00 2A 00 17     *.$..*..
0x00000008     00 01 00 00 00 00 00 00     ........
0x00000010     00 02 00 21 00 1A 00 00     ...!....
0x00000018     00 00 00 00 00 00 00 00     ........
0x00000020     00 00 00 00 00 00 00 00     ........
0x00000028     00 00 00 00 00 00 00 00     ........
0x00000000     2A 04 24 08 00 00           *.$...

The latter packet is a FLAP close connection negotiation packet, but the former is another SNAC packet, which is SNAC(17,01).

This time, the specified SNAC packet doesn’t contained pre-OSCAR ICQ packet data stuffed inside one TLV. It starts with an error code in WORD format, then another TLV, which contains basic details about the IP and port the client is using to connect to the server and the registration cookie generated.

Since the error code in the packet the client was sent was 0x02, I followed this list of error codes the server sends in the SNAC, and apparently, error code 0x02 means that the server had reached some rate limits of some sorts. Not the client, the server.

From my limited understanding of how OSCAR works, the rate limits are specified in a SNAC packet:

so IDK why the server would send that before it even negotiates the rate limits to the client other than to gracefully boot the connection off or because of some freaky DB error (but surely ICQ still has a column to store UINs for each user table, right?). :stuck_out_tongue:

And after the FLAP close connection packet was sent, the client sent the same packet:

0x00000000      2A 04 39 88 00 00           *.9^..`

and closed the connection.

In short, I guess there’s no way to create a UIN anymore via the client (I should’ve tried registering an ICQ account from their website instead of assuming that they didn’t offer UINs anymore). :stuck_out_tongue:

1 Like

There’s no way to create a UIN anymore? I need to connect to ICQ 2001b!

For what?

After finally registering an ICQ account for once to see if UINs were obtainable, I saw my own UIN in my profile page, so that’s been confirmed.

The only problem now is that ICQ sets a mystery password to your account, which won’t let you log in on older versions of ICQ or add an e-mail address to your account. You have to go to their password recovery page, and it appears that you can only reset your password a day after registration, which I think is silly.

I heard that ICQ 2001b supports as maximum 8 password characters. My new ICQ password has 10 characters. Fuck!

Yes! It worked for me for 2001b. I changed my password from “Manuel2003” to “Manu2003” since older versions of ICQ can allow passwords up to 8 characters, but when I tried to do that on ICQ 6.0, it prompted to download the latest ICQ version.
Now try to add me on ICQ only when I’m signed in.
My ICQ UIN is: 725920191

LOL why would you share your password? :stuck_out_tongue:

But cheers. Enjoy yourself on ICQ. :slight_smile: