The ICQ Protocol Site

This page is intended as a source for information about the protocol used by Mirabilis ICQ client and server, and about the different clones that have been written using this protocol. It can also be used as a good starting point for anyone who whishes to participate in the development of ICQ clones.

The page consists of the following parts:

- The ICQ Protocol specification
- ICQ Clones
- The icq-devel mailing list
- Other ICQ links of interest
- Related protocols

The ICQ Protocol specification

The ICQ protocol has passed through several generations or versions, each of them quite different from the preceding. So far it's possible, I'll try to present the information here according to the version of the protocol it describes.

Version 1

Version 1 is obsolete.

Version 2

Version 2 is the oldest version still in use (by e.g. the Java client). The basic documentation for V2 can be found here. Since most of the structure still applies for newer versions, it is recommended reading even if you're interested in V4/V5.

Note that this information is unofficial, and is not supported by Mirabilis. Please read the legal information about the ICQ specification.

The ICQ V2 protocol. Specification version 0.91, last updated 12 April 1998 (minor update at 11 May 1998). Text file (40 kB).

Some additions to this specification, some of which are applicable to V3/V4 as well, can be found in this directory. I recommend you check them all out.

Version 3/4

Version 3 was never used seriously by clients before it was replaced by V4. However, the server still replies with V3 packet to V4 clients.

The best compilation of the V3/V4 protocol can be found at Meistern's ICQ Hacking Page. I have also collected some of the pieces of information that has been sent to the icq-devel list. I have not, however, tried to organize them in any way (due to lack of time at the moment). You may want to check them out, anyway. They are in this directory, named after the author, and with a -v2 or -v4 if the message is about version 2 or 4 of the protocol. The latest postings on V4 have been collected in one file regardless of author, v4-notes.txt. I think this contains the most important information about V4, but I urge you to check out all files.

Version 5

Version 5 has just recently started being used by the Windows client with DLL v1.30. Not much is known about it at the moment.

There is one document about the V5 encryption, however. There is still much missing about the format of the packets in V5, though.

Contributing to the ICQ documentation

If you want to contribute to the documentation of the ICQ protocol, you could either join the icq-devel list or, if you have made any progress in understanding parts of the protocol not documented here, send me an e-mail with subject "ICQ Update". With some browsers and mail readers, you may do that automagically using this link.Otherwise you'll have to e-mail me as normal and enter the subject manually.

Please note! Sending me a mail with this subject and a message saying "plz gimme updated icq spec" or something similar, will only make me annoyed, and will NOT make me send you any newer version of the protocol. The freshest version is always available at this web page. If you want to receive up to date information about the ICQ protocol, then I suggest you join the icq-devel list.

ICQ clones

A multitude of different ICQ clones has been written in the last few month. Here are links to those that I know about.

Linux/unix

- The Licq program
- Matt's micq program (a page about micq)
- gicq - a clone using GTK
- gtkicq - micq with GTK+ extensions
- xicq - Xtrophy ICQ
- OpenICQ
- ICQ clones for Linux

Amiga

- STRicq
- DCicq
- micq Amiga port
- DICQ - Digitalis ICQ
- ICQ clones for Amiga (most of those above)
- Amiga ICQ Development Site (CLOSED)

BeOS

- BeCQ - an ICQ clone for BeOS

OS/2

- micq port to OS/2 (download only)

Atari MiNT

- micq port to Atari MiNT (download only)

Acorn

- !mICQ - an ICQ clone for Acorn

Platform independent

- Net::ICQ - a Perl module
- ICQ Engine

The icq-devel mailing list

I'm maintaining a mailing list about issues related to the ICQ protocol and ICQ clone programming, thanks to Michael D. Ivey who's taken care of the technical stuff of running the list server. Please try to keep noise to a minimum, and to only submit relevant posts. Anyone who is interested in creating an ICQ clone, and related ICQ programming issues, are welcome to the list!

To subscribe to the list, send an e-mail to majordomo@lists.realminfo.com, with no subject and "subscribe icq-devel" as the message body. To unsubscribe from the list, send an e-mail to the same address, but with the message "unsubscribe icq-devel" instead.

To send mail to the list (i.e., to all recipients), send a mail to icq-devel@lists.realminfo.com. Note!Due to spamming (web bots picking up the list email), it is now only possible to send messages to the list if you are a subscriber.

There is also a mailing list archive availible here. This dates from 11 July 1998. For messages sent before that date, I have collected almost all previous messages in a large (370 kB) mailbox-format file, which you can download from here.

Other ICQ links of interest

Related links

- Mirabilis official homepage
- Henrik Isaksson's ICQ page
- Article in Wired about bad ICQ security
- ICQ Message History viewer
- Security patches for Mirabilis ICQ

ICQ spoofing and sniffing

- ICQ sniffer and cracks
- ICQ spoofing page
- Beware of ICKiller

Related protocols

There exists many protocols similar to the ICQ protocol. Even though none of them is as wide-spread as ICQ, they may be important anyway. At least two of them (RVP/PIP and ICGnu) is still under development.

RVP (Rendez-vous Protocol) / PIP (Presence Information Protocol)

The RVP (Rendez-vous Protocol) and the PIP (Presence Information Protocol) are open protocols being developed by IETF (Internet Engineering Task Force). They've been working on this for quote some time, and should have avoided all mistakes that ICQ has made. If you feel that haven't, they'd surely be glad to hear. I recommend everyone interested in "enhancing" the ICQ protocol to first check if RVP doesn't already do what you want to do.

There is a RVP/PIP mailing list available. Send the message "subscribe" to pip-request@iastate.edu. . There is also a mailing list archive.

ICGnu

ICGnu is another initiative (why?) to create an open protocol for presence notification and instant messaging. You can found a little more information about it on The ICGnu Project Homepage.

AIM (AOL Instant Messenger)

Some important understanding about the AIM (AOL Instant Messenger) protocol has been achieved, and writing of a clone has been started. More information about the AIM Protocol and the FAIM clone can be found at Adam Fritzler's web pages.

Pagoo

There have been some discussion about trying to decode the Pagoo protocol (which are similar to ICQ). However, as far as I know, no information is known at the moment about this protocols. If you know something about them, please send me an e-mail!

Web page statistics provided by Showstat.

Since this page was created 12 April 1998, it has been visited times.

This page last updated at 14 September 1998 .
Copyright © 1998 Magnus Ihse <d95-mih@nada.kth.se>.
[Up to Magnus Ihse's homepage]