隨筆-22  評論-6  文章-17  trackbacks-0
          ?

          1.2? MSN Messenger協(xié)議開發(fā):認證階段

          ?

          作者:汪俊杰

          電子郵件:unicentre(at)gmail.com

          QQ:10402488

          ?

          MSN的認證階段包括登錄到MSN即時通訊服務(wù)器并且取得好友列表。

          ?

          MSN即時通訊軟件的協(xié)議是基于ASCII碼的協(xié)議。第一個階段包括連接到MSN即時通軟件的服務(wù)器。在這個階段我們應(yīng)該連接到服務(wù)器“messenger.hotmail.com”的1863端口(MSN即時通訊軟件通過1863端口進行工作)。一旦連接上以后,我們就可以一步步開始登錄過程了。

          ?

          步驟1: 驗證MSN的版本。客戶端(即我們的MSN軟件)列出及向服務(wù)器發(fā)送它可以支持的版本,然后等待服務(wù)器的回應(yīng)。

          >>> VER 0 MSNP7 MSNP6 MSNP5 MSNP4 CVRO

          MSN協(xié)議中,伴隨著每個命令都有一個 試驗ID 被發(fā)送。此實驗ID從0開始,并且當每次服務(wù)器成功的對客戶端的命令做回應(yīng)時,都會增加。

          服務(wù)器的回應(yīng)如下

          <<< VER 0 MSNP7 MSNP6 MSNP5 MSNP4

          現(xiàn)在客戶端(MSN)和服務(wù)器之間確定了它們之間將要進行通訊的版本。

          步驟2: 客戶端(MSN)向服務(wù)器發(fā)送一個請求,要求服務(wù)器提供它所支持的

          認證時需要的安全包的名字。

          >>> INF 1

          MSN在發(fā)送密碼時會將密碼加密,保證如有人監(jiān)控你的端口時,密碼不會輕易的泄露。

          服務(wù)器的回應(yīng)如下

          <<< INF 1 MD5

          MD5在這里是服務(wù)器當前支持的安全包的名字。

          步驟3: 客戶端(MSN)將向服務(wù)器發(fā)送用戶ID

          >>> USR 2 MD5 I ideal_wang@hotmail.com

          然后服務(wù)器將檢驗它是否包含有驗證所需的此用戶的所有相關(guān)信息。如沒有的話,服務(wù)器將會發(fā)送如下回應(yīng):

          <<< XFR 2 NS 64.4.13.55:1863 0

          意思為客戶端(MSN)應(yīng)該連接到NOTIFICATION服務(wù)器,地址和端口分別為64.4.13.55:1863。

          我們關(guān)閉當前的連接并且在連接到新的服務(wù)器64.4.13.55時重復(fù)以下步驟

          >>> VER 3 MSNP7 MSNP6 MSNP5 MSNP4 CVRO

          <<< VER 3 MSNP7 MSNP6 MSNP5 MSNP4

          >>> INF 4

          <<< INF 4 MD5

          >>> USR 5 MD5 I ideal_wang@hotmail.com

          步驟4: 如果現(xiàn)在我們連接上的服務(wù)器有了此登錄的用戶的信息,服務(wù)器回應(yīng)如下:

          <<< USR 5 MD5 S 989048851.185113730

          服務(wù)器發(fā)送的此字符串是“MD5 雜亂信息 。此雜亂信息由服務(wù)器創(chuàng)建并且在認證過程中使用。客戶端然后向服務(wù)器發(fā)送使用MD5運算法加密后的密碼。實際上客戶端向服務(wù)器發(fā)送的是一個獨一無二的MD5字符串,此字符串等價于此 MD5雜亂信息 (即989048851.185113730)+密碼,本例中MD5字符串是3b7926d277068ec49576a0c40598ff21。

          >>> USR 6 MD5 S 3b7926d277068ec49576a0c40598ff21

          如果密碼正確,服務(wù)器將做如下回應(yīng):

          <<< USR 6 OK ideal_wang@hotmail.com Jun Jie

          此處“Jun Jie 是用戶的呢稱.

          MSN協(xié)議的最新版本中,服務(wù)器將發(fā)送一些附加的數(shù)據(jù),像用戶的信息和一個認證碼(類似于一個cookie,可以用到許多其它的功能中):

          <<< MSG Hotmail Hotmail 362

          <<< MIME-Version:1.0

          <<< Content-Type:text/x-msmsgspro file;charset=UT

          <<< Login Time:1011252477

          <<< EmailEnabled:1

          <<< MemberIDHigh:84736

          <<< MemberIDLow:-143472939

          <<< Lang_preference:103

          <<< PreferredEmail:ideal_wang@hotmail.com

          <<< Country:IN

          <<< PostalCode:

          <<< Gender:M

          <<< Kid

          <<< Age:22

          <<< Sid:517

          <<< Kv:2

          <<< MSPAuth:2AAAAAAAADU0p4uxxxJtDJozJS1UTS0i7YpwnCoPUHRv56YKxxxCTWmg$$

          步驟5: 經(jīng)過上述步驟我們登錄上了服務(wù)器,但是我們的狀態(tài)仍然是離線。為了能夠發(fā)送和接受信息,我們需要把我們的狀態(tài)改成在線。客戶端通過如下命令完成這步:

          >>> CHG 7 NLN

          服務(wù)器則向客戶端發(fā)送回在線的好友及其相應(yīng)的狀態(tài):

          <<< ILN 7 NLN btxxxe@hotmail.com nick

          <<< ILN 7 AWY wmxxe@hotmail.com mike

          <<< ILN 7 BSY tehpxxp@hotmail.com jerry

          <<< MSG Hotmail Hotmail 223

          <<< MIME-Version:1.0

          <<< Content-Type:text/x-msmsgsinitialemailnotification;charset=UTF-8

          <<< Inbox-Unread:293

          <<< Folders-Unread

          <<< Inbox-URL:/cgi-bin/HoTMaiL

          <<< Folders-URL:/cgi-bin/folders

          <<< Post-URL:http://www.hotmail.com

          步驟6: 向服務(wù)器發(fā)送的下一個命令是和當前使用的客戶端的版本相關(guān)的,客戶端向服務(wù)器發(fā)送它的版本號和所在機器的信息像操作系統(tǒng)和其配置等:

          >>> CVR 8 0x0409 win 4.10 i386 MSMSGS 4.5.0127 MSMSGS

          0x0409 win4.10 i386 指出客戶端當前的運行環(huán)境是win98,使用的是Intel的微處理器;MSMSGS 4.5.0127 MSMSGS 指出msmsgs.exe的版本號。

          服務(wù)器回應(yīng)提供下載最新版本及一些其它的信息的地址:

          <<< CVR 8 4.5.0127 4.5.0127 1.0.0863

          <<< http://download.microsoft.com/do ... /en-us/mmssetup.exe

          <<< http://messenger.microsoft.com

          這個CVR命令的發(fā)送并不是必須的,無論此命令是否發(fā)送,MSN協(xié)議都可以正確的工作.

          ?

          為了獲得我們的好友列表,我們可以發(fā)送如下命令

          >>> LST 9 RL

          服務(wù)器將相應(yīng)發(fā)送回“反向列表”,此反向列表為當你在線時,可以看到你并能向你發(fā)送即時消息的用戶列表。你也可以使用LST 9 FL命令向服務(wù)器請求 正向列表 ,此正向列表包括你加入到好友列表中的所有好友。服務(wù)器所做的回應(yīng)如下

          <<< LST 9 RL 69 1 19 ideal_wang@hotmail.com venkat

          <<< LST 9 RL 69 2 19 puxxxxx@hotmail.com puja

          <<< LST 9 RL 69 3 19 vancxxxx@hotmail.com ramachandran

          <<< LST 9 RL 69 4 19 moxxxxx@hotmail.com chandramouli

          <<< LST 9 RL 69 6 19 v_n_xxxx@hotmail.com Narakatesh

          <<< ........

          <<< LST 9 RL 69 19 19 puneetagarxxx@hotmail.com puneet

          ?

          posted on 2006-05-25 14:59 surffish 閱讀(874) 評論(1)  編輯  收藏

          評論:
          # re: MSN Messenger協(xié)議開發(fā):認證階段 2006-12-19 15:06 | liaoqs
          好東西,收下了。  回復(fù)  更多評論
            

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 阿尔山市| 师宗县| 太康县| 萨迦县| 吉木乃县| 峨山| 平和县| 陆良县| 安塞县| 西藏| 肥乡县| 封丘县| 怀宁县| 资兴市| 陕西省| 凤翔县| 禄丰县| 江永县| 无棣县| 烟台市| 塔河县| 家居| 东源县| 清丰县| 塘沽区| 高台县| 长汀县| 台北县| 枝江市| 永平县| 凤台县| 吴桥县| 泰顺县| 稷山县| 孟州市| 岳阳县| 凭祥市| 卓尼县| 尉犁县| 太谷县| 康保县|