網(wǎng)絡(luò)即時通信軟件協(xié)議分析(doc 6頁)_第1頁
網(wǎng)絡(luò)即時通信軟件協(xié)議分析(doc 6頁)_第2頁
網(wǎng)絡(luò)即時通信軟件協(xié)議分析(doc 6頁)_第3頁
網(wǎng)絡(luò)即時通信軟件協(xié)議分析(doc 6頁)_第4頁
網(wǎng)絡(luò)即時通信軟件協(xié)議分析(doc 6頁)_第5頁
免費(fèi)預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、網(wǎng)絡(luò)即時通信軟件契約分析摘要:隨著人們對即時通信軟件的依賴越來越大,而對于這些即時通信軟件的契約分析也顯得越來越重要,本文主要即時通信軟件的發(fā)展現(xiàn)狀,比較了幾款即時通信軟件的特點(diǎn),著重介紹了QQ契約的分析方法和對于登陸過程的簡要分析,為QQ的其他效用的契約分析提供了參考。關(guān)鍵詞:即時通信;契約分析;抓包一、引言隨著Internet在世界的迅速發(fā)展,寬帶業(yè)務(wù)的普及率也越來越高,幾乎每個人的家庭中,工作中都有連接Internet的個人電腦,同時應(yīng)人們對Internet即時通信(文字,語音,視頻,文件傳輸)的要求,網(wǎng)絡(luò)上的即時通信軟件應(yīng)運(yùn)而生,目前網(wǎng)絡(luò)上流行的即時通信軟件有:QQ,Fetion,MS

2、N,ICQ,在國外ICQ,MSN占主流地位,國內(nèi)則是QQ,Fetion占主流地位,中國移動開發(fā)的Fetion依靠它在移動通信方面的優(yōu)勢大有超越騰訊QQ的趨勢,同時對于不同職業(yè)的人群,即時通信軟件的選擇也不盡相同,公司職員和商務(wù)人事主要選擇MSN,而學(xué)生則主要選擇QQ和Fetion。由于這些即時通信軟件的效用越來越多同時也越來越完善,所以人們對它的依賴程度也越來越大,這些即時通信軟件的契約格式都不相同,各個軟件公司都想要自己的產(chǎn)品在網(wǎng)絡(luò)上能提供一些與其他軟件不同的服務(wù),所以這些軟件的契約都是不公開的,避免有人編寫插件用以逃過付費(fèi),從而享受軟件提供的有償服務(wù)。但是這也嚴(yán)重的束縛了即時通信軟件的發(fā)展

3、。因此對這些主流的即時通信軟件進(jìn)行契約分析是十分必要的。本文對現(xiàn)在國內(nèi)主流的QQ和MSN進(jìn)行初步的契約分析,對分析方法進(jìn)行了介紹。2、 對契約分析前的準(zhǔn)備采集QQ數(shù)據(jù)是我們對QQ契約進(jìn)行分析的基礎(chǔ)。PC上:QQ2OO8,windumpOS X上:showUDP,calcMD5,qqDecrypt把QQ密碼更改為123456。這主要是為了方便分析。關(guān)閉其它不必要的網(wǎng)絡(luò)程序,避免產(chǎn)生干擾數(shù)據(jù)。如果有必要的話,重新啟動計(jì)算機(jī)。三、數(shù)據(jù)包收集過程1、打開命令行窗口,輸人命令,開始收集:windumpwpcdump-s 0 udp。2、運(yùn)行QQ,且登錄。3、登錄成功以后,等待4到5秒。其主要目的是把登錄

4、的命令和后面要收集的命令區(qū)分開來。4、執(zhí)行需要收集的操作,其間注意把操作細(xì)節(jié)給以記錄。包括操作順序,系統(tǒng)的反饋提示,輸人過的信息。如果某一操作反饋時間比較長,記錄大約的時間間隔,且記錄下我們可能需要的信息。信息越詳細(xì),越有助于進(jìn)行猜測。5、完成需要記錄的信息后,等4到5秒,選擇離線。目的是把后面的操作和中間的操作區(qū)分開來。6、回到命令行窗口,應(yīng)用Ctrl+C鍵結(jié)束收集。把當(dāng)前目錄下生成的pcdump文件傳送到Mac上準(zhǔn)備做進(jìn)一步分析。四、QQ文本傳輸契約數(shù)據(jù)包分析在sample目錄下已經(jīng)有一個這樣的pcdump文件。在開始分析前,需要對數(shù)據(jù)進(jìn)行一些預(yù)處理,以便以后的分析。1、要把這個文件轉(zhuǎn)化為

5、方便閱讀的文本文件格式,使用showUDP pcdump>pcascii。這時能夠生成一個名為pcascii的文件。這個文件是一個文本文件,你可以用textEdit等編輯器來打開它。里面是分為一個包一個包的UDP數(shù)據(jù)的內(nèi)容。進(jìn)行簡單地判斷,把一些與QQ無關(guān)的數(shù)據(jù)刪除。然后保存這個文件。在sample目錄里面,也能夠看到此文件。進(jìn)一步刪除這個文件中一些我們暫時不感興趣的內(nèi)容。例如,只留下以02開頭的數(shù)據(jù)包。這些數(shù)據(jù)包是我們稱為TCPF契約族的通信。它組成了QQ文字聊天效用的主體。把此文件保存為tepfascii。這是我們下一階段的分析重點(diǎn)。2、準(zhǔn)備一些解密的密鑰。首先,在tcpfascii

6、文件中,第一個包應(yīng)該是以02 0a 1d o0 22開頭的登錄數(shù)據(jù)包。把它的隨碼部分(應(yīng)該是16個01拷貝到一個空白的純文本文件中,并把它保存為loginKeyhex文件。其次把后面的登錄包數(shù)據(jù)部分(不包括包尾的03),保存為loginDatahex。最后我們執(zhí)行:qqDeerypt loginDatahexloginKeyhex。這個程序的作用是使用loginKeyhex文件的內(nèi)容作為密鑰去解密loginDatahex文件中的數(shù)據(jù)。如果解密成功的話,程序輸出的最后一塊數(shù)據(jù)就是解密后的結(jié)果。把這塊數(shù)據(jù)保存為loginDatadeerypt。這時我們就有了QQ登錄數(shù)據(jù)包的真實(shí)數(shù)據(jù)。3、制作一個文

7、件,它里面是QQ密碼的ascii數(shù)值。對123456的密碼,應(yīng)該為31 32 33 34 35 36。第一,在sample里面有這個文件,文件名為pwdhex。第二,制作密碼的MD5 digest,運(yùn)行:ealeMD5 pwdhex。這個命令能夠計(jì)算pwdhex文件里面數(shù)值的MD5 digest,且把輸出結(jié)果中的MDd5 digest保存到pwdmd5hex中。第三,計(jì)算MD5 digest的MD5 digest,運(yùn)行ealeMD5 pwdMD5hex,把計(jì)算的結(jié)果部分保存到pwdmd5md5hex文件中。且使用其來作為密鑰解密登錄請求的應(yīng)答數(shù)據(jù)包:在tcpfascii文件中找到以o2 01

8、00 0o 22開頭的數(shù)據(jù)包,把它的數(shù)據(jù)部分拷貝到loginReplyDatahex中,然后運(yùn)行:qqDeerypt loginReplyDatahex pwdmd5md5hex。輸出的結(jié)果就是登錄響應(yīng)數(shù)據(jù)包的真實(shí)數(shù)據(jù)。第一個數(shù)字應(yīng)該是0,后面的16個數(shù)值就是以后通訊所使用的密鑰。我們把它保存到名為sessionKeyhex文件中。4、用sessionKeyhex逐個解開這些以后的數(shù)據(jù)包,依附著想象力和不斷的嘗試,我們可以越來越了解QQ契約的細(xì)節(jié)。五、QQ其他效用契約對于從客戶端發(fā)出的數(shù)據(jù)包,前7個字節(jié)是包頭,緊跟的4個字節(jié)是你的QQ號碼。其后到包尾(不包括包尾o3)是解密的包數(shù)據(jù)。把數(shù)據(jù)包拷

9、貝到一個文件。例如,找個0x0016命令的數(shù)據(jù)包,把它的數(shù)據(jù)放到了 ndM ghex中。然后運(yùn)行:qqDeerypt sendMsghex sessionKeyhex,輸出的結(jié)果就是它的真實(shí)數(shù)據(jù),把它保存到sendMsgdeerypt中。其數(shù)據(jù)為:01 F8 3D 65 04 FA 73 BA0A 1D 01 82 5D 90 0E C937 04 9D DD F7 1A F2 BO96 CF 57 73 5A 56 3B 2CD6 ED 00 OB 3B FO 3F 5124 0E oo CC O0 00 00 0100 O0 00 O0 O1 74 72 7969 6E 67 20 O0

10、09 O0 O000 o0 86 O2 CB CE CC E5OD由以上的數(shù)據(jù),可以發(fā)現(xiàn)其中有這樣的一些魔術(shù)般的數(shù)字:01 F8 3D 65,轉(zhuǎn)換成十進(jìn)制就是33045861。我的QQ號碼。o4 FA 73 BA, 轉(zhuǎn)換成十進(jìn)制就是83522490,feifei的QQ號碼。74 72 79 69 6E 67,轉(zhuǎn)換成ascii字符就是trying。根據(jù)前面的操作記錄,我曾經(jīng)試著向feifei發(fā)送了一個trying的消息,很明顯這個數(shù)據(jù)包就是這個發(fā)送消息的數(shù)據(jù)包。由此說明Ox0016是發(fā)送消息的命令。而且了解了其中包含的一些內(nèi)容。CB CE CC E5是GB18030的“宋體”。顯然,它表示的是所

11、使用的字體。前面的一些,則分別代表字號,字型等,通過試驗(yàn)不斷的進(jìn)行了解。這樣就能夠逐步了解這些數(shù)據(jù)包內(nèi)容的含義。)六、MSN通信軟件文本消息傳輸契約分析1、(1)AIM與ICQ同是AOL公司的產(chǎn)品,因此契約格式基本相同。有兩點(diǎn)不同之處:一是AIM支持聊天室消息發(fā)送和接收服務(wù),分別如表1所示的SNAC(0xoe,0x05)和SNAC(0xoe,0x06)服;二是AIM采用HTML格式組織消息體數(shù)據(jù)。 (2)MSN文本消息傳輸契約格式簡單,應(yīng)用層數(shù)據(jù)以命令為首標(biāo),采用命令行的方式組織數(shù)據(jù),命令使用ASCll碼表示,統(tǒng)一采用三個字母組成,如“MSG”為消息傳送命令,后面跟隨零個或者更多個參數(shù),參數(shù)之

12、問被一個或者多個空格字符分開,命令結(jié)束通過回車換行符(CRLF)表示。例如MSN客戶端給消息服務(wù)器發(fā)送一個即時文本消息的應(yīng)用層契約格式為:MSG TrID N Lengthrn Message。該消息中MSG是一個發(fā)送消息命令,命令之后是用空格隔開三個數(shù);TrlD是客戶端與服務(wù)器交互的標(biāo)志N是服務(wù)器響應(yīng)的特征碼,表示只要求服務(wù)器不能轉(zhuǎn)發(fā)消息給接收客戶端時才響應(yīng);I朋gth是消息長度;rn是回車換行符,表示命令結(jié)束Message是指定長度的消息體。MSN的Message消息體消息是一個MIME格式編碼流,使用標(biāo)準(zhǔn)的MIME頭,可以參考RFC-1521和RFC-822來了解更多的關(guān)于MIME格式的

13、信息。(3)雅虎通的契約格式 YMSG為應(yīng)用層首標(biāo),由ASCII表示;其后的四個字節(jié)為客戶端的契約版本號;數(shù)據(jù)長度指出教據(jù)部分的字節(jié)長度;服務(wù)是兩字節(jié)的操作碼,指明客戶端發(fā)送的是哪一種服務(wù)請求或者說明服務(wù)器對哪一個服務(wù)的響應(yīng)。雅虎通至少提供了45種以上的服務(wù),發(fā)送一般消息的服務(wù)是0x0006,聊天室消息的服務(wù)是0x00a8 t狀態(tài)在服務(wù)器響應(yīng)的情況下,表示對請求的響應(yīng)狀態(tài)(成功,失敗等)。會話ID是客戶端與服務(wù)器端通信的標(biāo)志,一旦服務(wù)器指定它們之間的一個會話ID以后,它們之間的所有數(shù)據(jù)包都使用這個ID進(jìn)行通信。 2、MSN即時通信軟件系統(tǒng)架構(gòu)分析 即時通信系統(tǒng)一般有兩種模式:客戶/服務(wù)器模式,

14、即發(fā)信端用戶和收信端用戶必須通過服務(wù)器來交流;客戶/客戶模式,即服務(wù)器給每對客戶端建立一個TCP通道,他們的交流在這個TCP之上進(jìn)行,無須通過服務(wù)器。QQ、MSN、ICQ、AIM和Yahoo Messenger這些主流軟件使用的是客戶/服務(wù)器模式,文本消息必須通過服務(wù)器才能從一個客戶端傳到另一個客戶端。對于文本消息的傳送,除了通信架構(gòu)均是基于客戶/服務(wù)器務(wù)器模式之外,消息傳輸均是建立在TCP契約基礎(chǔ)之上的,而且服務(wù)器的端口一般都是固定端口。服務(wù)器通過提供固定的服務(wù)端口被動式地與客戶端進(jìn)行通信,起到消息中轉(zhuǎn)的作用。需要特殊說明雅虎通對同一個局域網(wǎng)內(nèi)的客戶端通信采用客戶/客戶的通信架構(gòu)。下面以MS

15、N的通信機(jī)制為例進(jìn)行闡述: MSN是一個基于MSNP契約的IM通信系統(tǒng),它提供了包括登錄、認(rèn)證、授權(quán)、重定向在內(nèi)的全面服務(wù)框架。從網(wǎng)絡(luò)拓?fù)涞慕嵌葋碚f,MSN Messenger分為服務(wù)層、連接層和客戶層三層。客戶層的主要效用是接收用戶指令,如發(fā)出登錄請求、改變用戶名狀態(tài)、發(fā)送文本消息請求和發(fā)送文件請求等,并提交給相應(yīng)的服務(wù)器集群。連接層提供了一個客戶層到服務(wù)層的網(wǎng)絡(luò)通路。 MSN使用TCP傳輸契約,除了文件傳輸和語音聊天是直接的點(diǎn)對點(diǎn)通信之外,其他所有的情形全部通過服務(wù)器進(jìn)行。服務(wù)層有三種類型的服務(wù)器: (1)派遣服務(wù)器(DS)。它足客戶與服務(wù)器建立連接的初始服務(wù)器。域名是messengerh

16、otmailcon,標(biāo)準(zhǔn)服務(wù)端口是1863。其主要效用是磋商契約版本和向客戶發(fā)送可用的通知服務(wù)器IP及端口。在客戶收到NS的IP及端口并發(fā)回確認(rèn)后,DS切斷與用戶的連接。 (2)通知服務(wù)器叫(NS)。在MSN會話期間,客戶需要一直保持與它的連接,很多任務(wù)要在這個會話內(nèi)完成,包括登錄、改變狀態(tài)、獲取用戶列表、修改用戶信息、發(fā)起聊天、郵件通知、退出等。服務(wù)端口通常也是1863。(3)中轉(zhuǎn)服務(wù)器(SS)。客戶之間聊天時負(fù)責(zé)內(nèi)容的中轉(zhuǎn)。每開一個聊天窗口,客戶與服務(wù)器就建立一個TCP會話。服務(wù)端口通常也是1863。當(dāng)客戶之間需要進(jìn)行文件傳輸或語音聊天時,發(fā)送系統(tǒng)消息,建屯點(diǎn)對點(diǎn)會話通道(可能轉(zhuǎn)為使用UD

17、P)。點(diǎn)對點(diǎn)通信使用的端口由客戶端自動磋商決定,如文件傳輸通常使用6891端口。3、數(shù)據(jù)采集及存儲系統(tǒng)采用基于網(wǎng)絡(luò)嗅探技術(shù)的數(shù)據(jù)采集方法,以WinPcap 4.0.1作為開發(fā)工具,Windows平臺下使用WinPcap從網(wǎng)絡(luò)適配器嗅探數(shù)據(jù)十分方便,圖3是使用WinPeap捕獲網(wǎng)絡(luò)數(shù)據(jù)包的基本流程。使用WinPcap開發(fā)應(yīng)用程序除可以捕獲數(shù)據(jù)包外,最大的優(yōu)點(diǎn)在于WinPcap可以對數(shù)據(jù)包進(jìn)行過濾。WinPeap從網(wǎng)絡(luò)適配器上嗅探到的是最原始的數(shù)據(jù)幀,這包括了所有流經(jīng)的數(shù)據(jù)。如果不對數(shù)據(jù)包進(jìn)行相應(yīng)的過濾,將會捕獲到許多無關(guān)的數(shù)據(jù),這會增加系統(tǒng)的負(fù)擔(dān),使系統(tǒng)工作效率降低。在數(shù)據(jù)采集之后,采用什么樣的

18、存儲策略來存儲數(shù)據(jù),以最大限度地保證采集到的網(wǎng)絡(luò)數(shù)據(jù)包(Pack.et)不丟失,是系統(tǒng)設(shè)計(jì)中必須面對的一個重要問題。網(wǎng)絡(luò)丟包的原因可能有很多,包括內(nèi)存緩沖技術(shù)、磁盤I/O能力、包過濾及處理技術(shù)、數(shù)據(jù)流量大小、網(wǎng)絡(luò)接口性能、CPU處理能力等諸多方面。網(wǎng)絡(luò)丟包的指標(biāo)一般采用丟包率(Rate of PacketLoss,RPL)。計(jì)算公式為:L=(發(fā)送的數(shù)據(jù)包數(shù)一接收到的數(shù)據(jù)包數(shù))/發(fā)送的數(shù)據(jù)包數(shù))×100%。眾所周知。頻繁的磁盤I/O顯然會影響到系統(tǒng)的性能和效率,這在大的數(shù)據(jù)流量下尤為明顯。為了避免頻繁的磁盤I/O,需要在數(shù)據(jù)存儲時引入內(nèi)存緩沖處理技術(shù)。在基于WinPcap的網(wǎng)絡(luò)數(shù)據(jù)采集中,系統(tǒng)使用了多級內(nèi)存緩沖,內(nèi)核緩沖器和用戶緩沖器的大小分別設(shè)置為6MB和1MB,并設(shè)置內(nèi)核緩沖器和用戶緩沖器之間一次傳送的最小數(shù)據(jù)塊的大小為512kB。七、結(jié)論從上面的研究我們可以看出,通過現(xiàn)代科技,用三維激光掃描技術(shù)和數(shù)碼相機(jī)前期采集數(shù)據(jù),然后通過電腦軟件photoshop和CAD的后期處理的測繪方法與傳統(tǒng)的測繪方法相比,有傳統(tǒng)技術(shù)無法比擬的優(yōu)勢。1、它可以在較短的時間內(nèi),將測繪所需要的所有

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論