A couple of days ago, I wrote about Blockoo, discussing whether it actually works.
Despite rummaging through the entire website, I couldn’t find a definite answer as to how Blockoo actually works behind the scene. They did mention that they request access to your account to get the list of people who blocked or deleted you. It sounds quite fishy, why would MSN want to divulge such information to a third-party so easily? And if Blockoo can do it despite being a third-party, can’t anyone else do it too?
Curiosity got the better of me, and I went on to analyse how Blockoo (probably) works.
Note that the discussion may be a bit technical, and readers are strongly advised to read through to the end at least once in order to form a rough picture of the process, before reading in more details.
My first suspicion with Blockoo was that it must be using something that all of us have been using all along, knowingly or not: the MSN protocol.

First of all let’s talk about the MSN protocol. A protocol is a set of predetermined codes that allows two computers to communicate in a standardised way. When you use MSN Messenger, the application has to follow this standardised way in order to connect to the server, see who are in your contact list, talk to your friends, etc. To put it in another way, for the application to communicate with the server, they have to be “talking” in the same dialect.
The MSN protocol has never been published officially to the public. However, there are people out there who actually analyse the series of commands that MSN Messenger exchanges with the server by using network sniffers such as Wireshark. The messages sent by MSN and returned by the server can be captured using these sniffers.
These people then infer the protocol (i.e. the standard) from these series of captured commands. MSNPiki is a good source of information for the MSN protocol.
From here, anyone with a good programming background should be able to read the extracted protocol, and create a custom application which “talks” like MSN Messenger (think about it as the application claiming to be MSN Messenger by “talking” in its dialect). The custom-built application can do anything that the protocol allows (e.g. chatting, blocking people, adding/deleting people).

In the course of the conversation between MSN Messenger and the server, there is one point where the contact list is being downloaded into your computer. The contact list details contain the email address, friendly name (”nickname”), and the mode of every single person in your contact list.
The mode is a number, which when represented in binary consists of 4 digits RBAF, which in turn stands for the following:
- Reverse List (RL) - Whether this contact has you in his/her contact list.
- Block List (BL) - Whether you are blocking this contact, they won’t be able to see you when you’re online.
- Allow List (AL) - Whether you are allowing this contact to see you when you’re online.
- Forward List (FL) - Whether you have this contact in your contact list.
For example, in the screenshot above, the person [hidden]@hotmail.com with a mode of 13, or 1101 in binary, has the following status:
- RL: 1 - The person has you in his/her contact list.
- BL: 1 - You are blocking this contact.
- AL: 0 - You are not allowing this contact to see you when you’re online.
- FL: 1 - You have this person in your contact list
These fanciful lists actually do exist on MSN Messenger. They’re just quite hard to spot.

The Forward List (FL) and the Block List (BL) exist in the form of your contact list.

The Allow List (AL) and Block List (BL) can be accessed by going to the Tools menu > Options… > Privacy page

The Reverse List (RL) is accessed by clicking on the View… button next to “See who has added you to their contact list”, which is located in the Privacy page above.
So how do these lists come together and how does Blockoo make use of the protocol and the contact lists to find out who blocked or deleted you?
Stay tuned for the next part…
PS: Although in this blog entry I call the application as “MSN Messenger”, the entry also applies to “Windows Live Messenger”, which is the new name for the application.
Update: Read the second part here.