Protocols/MSNP: Difference between revisions

From NINA Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 11: Line 11:




== Clients ==
= Clients =
* [[Clients/Windows_Live_Messenger|Windows Live Messenger]]
* [[Clients/Windows_Live_Messenger|Windows Live Messenger]]
** [[Clients/Windows_Live_Messenger/Messenger_Plus!|Messenger Plus!]]
** [[Clients/Windows_Live_Messenger/Messenger_Plus!|Messenger Plus!]]
Line 17: Line 17:
Read additional [[Protocols/MSNP/FAQ|frequently asked questions]] for clients and the Escargot service.
Read additional [[Protocols/MSNP/FAQ|frequently asked questions]] for clients and the Escargot service.


== Overview ==
= Protocol History =
MSNP was first implemented with version 2 - MSNP2 - on July 17 1999. It only used TCP, no webservices or anything like that.
 
As time went along, MSNP was extended and improved upon, incrementing its version number. By MSNP8, a new authentication system: Passport. This was first time something essential was used that wasn't sent via the regular MSNP TCP socket.
 
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.
 
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.
 
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.
 
<!--
= Overview =
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.  
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.  


Line 48: Line 60:
* [[Protocols/MSNP#URLs_used_by_MSN|URLs used by MSN/WLM]]
* [[Protocols/MSNP#URLs_used_by_MSN|URLs used by MSN/WLM]]


Successful login logs:
->
 
= Login logs =


* [[Protocols/MSNP/Clients/Logs/WLM_2009|WLM 2009 v14.0.8117.416]]
* [[Protocols/MSNP/Clients/Logs/WLM_2009|WLM 2009 v14.0.8117.416]]
* [[Protocols/MSNP/Clients/Logs/WLM_2012|WLM 2012 v16.4.3528.331]]
* [[Protocols/MSNP/Clients/Logs/WLM_2012|WLM 2012 v16.4.3528.331]]


<!--
== Index ==
== Index ==
''Windows Live Network Protocol''
''Windows Live Network Protocol''
Line 147: Line 162:
</pre>
</pre>


==== Polygamy ====
<pre>
The MSN polygamy program changes one byte (0xb7 -> 0xb6) at 0x1406b1 (7.0.0770):
```diff
- 01406b0: b73d 0000 0f00 b585 0001 6a00 ffff 2877
+ 01406b0: b63d 0000 0f00 b585 0001 6a00 ffff 2877
```
Location of this byte in several version of MSN (English):
```
MSN 1.0.0863: 0x 263ce
MSN 2.0.0083: 0x 2acef
MSN 2.0.0085: 0x 2ad07
MSN 2.2.1053: 0x 17160
MSN 3.0.0286: 0x 1f234
MSN 3.5.0077: 0x 30389
MSN 3.6.0025: 0x 2f82d
MSN 4.5.0121: 0x 4e692
MSN 4.6.0073: 0x 1e794
MSN 4.6.0083: 0x 2b9c4
MSN 5.0.0544: 0x 46739 | nexus: 0x655a0 | 0x f048
MSN 6.0.0602: 0x ccbf2 | nexus: 0x1f164 | 0x1f238
MSN 6.2.0137: 0x dffe1 | nexus: 0x22ce0 | 0x22d68
MSN 7.0.0777: 0x1406b1 | nexus: 0x2cd80 | 0x2ce18
MSN 7.0.0813: 0x147079 | nexus: 0x2d098 | 0x2d140
MSN 7.0.0820: 0x147112 | nexus: 0x2cfb8 | 0x2d060
MSN 7.5.0311: 0x157607 | nexus: 0x2e8f8 | 0x2e9b8
MSN 7.5.0324: 0x1580ec | --            | 0x2e9e8
WLM 8.1.0178: 0x1430ef
MSN <  5: uses registry for messenger.hotmail.com
MSN 5 - 7.0: uses nexus (5 - 6 also use registry as cache for NS)
MSN 7.5 - 8: uses RST
WLM 2009+: uses RST2
</pre>
==== Other ====
Clicking "MSN Today" does a request to http://config.messenger.msn.com/Config/MsgrConfig.asmx.
MSN also keeps trying to get that URL for a while, until it gives up.
When it gives up, it removes the "MSN Today" button.
Example response: http://www.mail-archive.com/amsn-devel@lists.sourceforge.net/msg04225/getclientconfig.log
==== Documents ====
Here is a list of documents that may prove useful:
''Client''
* Microsoft Messenger:mac v5.1 - Deployment Guide: [Messenger51_NetAdminGuide__2_.pdf](https://storage.levelleap.com/nina/wiki/msnp/Messenger51_NetAdminGuide__2_.pdf)
* Microsoft Messenger for Mac 8 Beta Build 08.00.00.100305 - Release Notes: [Messenger8Beta_ReleaseNotes__1_.pdf](https://storage.levelleap.com/nina/wiki/msnp/Messenger8Beta_ReleaseNotes__1_.pdf)
* MSN Messenger on PocketPC - Help: [2003_MSN_20Messenger_PPC__1_.pdf](https://storage.levelleap.com/nina/wiki/msnp/2003_MSN_20Messenger_PPC__1_.pdf)
''Activities''
* ~~MSN Messenger Activity SDK  - Documentation (September 2005): messengerActivitySDK__1_.zip~~ File possibly lost
* ~~MSN Messenger Activity SDK - Documentation (September 2006): msnmessengeractivitysdk__1_.zip~~ File possibly lost
* MCG APIs for MSN Games and Messenger: [MCG_20APIs_20for_20MSN_20Games_20and_20Messenger.zip](https://storage.levelleap.com/nina/wiki/msnp/MCG_20APIs_20for_20MSN_20Games_20and_20Messenger.zip)
''Web''
* Live Connect Preliminary - Documentation (November 2012): [LiveSDK.chm](https://storage.levelleap.com/nina/wiki/msnp/LiveSDK.chm)
* A Guide to MSN Communication Services: MSN Spaces, MSN Messenger, MSN Hotmail - Reviewers Guide (December 2004): [MSNWave10RG__1_.doc](https://storage.levelleap.com/nina/wiki/msnp/MSNWave10RG__1_.doc)
* A Guide to MSN Integrated Communication Services: MSN Spaces, MSN Messenger, MSN Hotmail (April 2005): [MSNWave10RG__5_.doc](https://storage.levelleap.com/nina/wiki/msnp/MSNWave10RG__5_.doc)
''Captures''
If you have pcap files from Messenger, it would be interesting to share them as they will be useful in order to understand the protocol.
On pcapr.net (now defunct), a search for "msnms" gave these files:
* [91a4d900-9804-012b-b2a6-0016cb8cea27.pcap](https://storage.levelleap.com/nina/wiki/msnp/91a4d900-9804-012b-b2a6-0016cb8cea27.pcap)
* [Authentication_MSNM1.0.pcap](https://storage.levelleap.com/nina/wiki/msnp/Authentication_MSNM1.0.pcap)
* [1-500.pcap](https://storage.levelleap.com/nina/wiki/msnp/1-500.pcap)
* ~~h_263_fast_cif_00000_20050908165359.pcap~~ File lost
* ~~h_263_fast_cif_00004_20050908165454.pcap~~ File lost
* ~~MSN_and_XMPP_00002_20090928130210.pcap~~ File lost
* ~~MSN_and_XMPP_00001_20090928130006.pcap~~ File lost
* [oicq.pcap](https://storage.levelleap.com/nina/wiki/msnp/oicq.pcap)
* On this webpage (https://seginfo.com.br/2011/11/01/demonstracoes-e-gabarito-do-desafio-pratico-analise-forense-em-trafego-de-rede-2/), you can find this file:
** [padaria.pcap](https://storage.levelleap.com/nina/wiki/msnp/padaria.pcap)
* In this github project (https://github.com/hc9725/my_etherdump), you can find these files:
* [msn.pcap](https://storage.levelleap.com/nina/wiki/msnp/msn.pcap)
* [msn_test.pcap](https://storage.levelleap.com/nina/wiki/msnp/msn_test.pcap)
* In this github project (https://github.com/markofu/pcaps), you can find this file:
** [msnms.pcap](https://storage.levelleap.com/nina/wiki/msnp/msnms_markofu.pcap)
* In this github project (https://github.com/ntop/nDPI), you can find this file:
** ~~msnms.pcap~~ File lost
* On the WireShark website (https://wiki.wireshark.org/MSNMS), you can find this file:
** [msnms.pcap](https://storage.levelleap.com/nina/wiki/msnp/msnms_wireshark.pcap)





Revision as of 13:46, 11 May 2022

MSNP Protocol
IntroductionTermsClients
Reference
Error ListCommandsRelying Party SuiteSpotlife
Services
XMPPHTTP GatewayTabsActivities
Documentation
Development ToolsMSNP Grid
PolygamyURLs used by MSN
Documents
Protocol Versions
Version 21
Version 18
Version 16
Version 15
Version 14
Version 13
Version 12
Version 11
Version 9
Version 8
Version 2
MSNC
IntroductionP2PObject DescriptorDisplay PicturesFile Transfer
Scenarios
Microsoft Messenger for Mac
MSNP on WebTV (MSNTV)

MSNP stands for "Microsoft Notification Protocol", 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.

If you want to contribute, you can request an account by sending an email to 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.

If you want to contribute something anonymously or without registering, send it to contribute@wiki.nina.chat. If anonymity is desired, state so, and your name/email will not be mentioned.

You can also donate to help with this MSN/Windows Live revival, because it is a full time job at this point.


Clients

Read additional frequently asked questions for clients and the Escargot service.

Protocol History

MSNP was first implemented with version 2 - MSNP2 - on July 17 1999. It only used TCP, no webservices or anything like that.

As time went along, MSNP was extended and improved upon, incrementing its version number. By MSNP8, a new authentication system: Passport. This was first time something essential was used that wasn't sent via the regular MSNP TCP socket.

From a technical standpoint the MD5 method that was used in 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.

After MSNP8, other, newer protocol versions were released (MSNP9, MSNP10, MSNP11, MSNP12, 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.

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.