RDP協(xié)議詳細(xì)解析_第1頁(yè)
RDP協(xié)議詳細(xì)解析_第2頁(yè)
RDP協(xié)議詳細(xì)解析_第3頁(yè)
RDP協(xié)議詳細(xì)解析_第4頁(yè)
RDP協(xié)議詳細(xì)解析_第5頁(yè)
已閱讀5頁(yè),還剩19頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、.RDP協(xié)議詳細(xì)解析(一)RDP協(xié)議詳細(xì)解析一 前言二 概述三 同絡(luò)層次四 各連接模塊說(shuō)明五 各功能模塊說(shuō)明六 rdpwin結(jié)構(gòu)、數(shù)據(jù)流說(shuō)明七 總結(jié)一、前言windows從NT開(kāi)始提供終端服務(wù),它是微軟買來(lái)的網(wǎng)絡(luò)協(xié)議技術(shù)(Citrix),服務(wù)器端要安裝、配置,客戶端要連接程序。終端服務(wù)使任何一臺(tái)有權(quán)限的終端機(jī),用已知的賬號(hào)登錄服務(wù)器,可以使用賬號(hào)內(nèi)的資源,包括軟件,硬件資源;同時(shí),在協(xié)議升級(jí)后,客戶端連接后可以使用本地的資源,包括本地打印機(jī)、聲音本地回放,本地磁盤資源和本地硬件接口。所有的計(jì)算都在服務(wù)器端進(jìn)行,客戶端只需要處理網(wǎng)絡(luò)連接、接收數(shù)據(jù)、界面顯示和設(shè)備數(shù)據(jù)輸出。目前,關(guān)于RDP服務(wù)的l

2、inux客戶端程序有winconnect,linrdp,rdesktop,前兩個(gè)沒(méi)有源碼,但redsktop已經(jīng)由原來(lái)的個(gè)人開(kāi)發(fā)后公開(kāi)代碼演變成現(xiàn)在的項(xiàng)目組開(kāi)發(fā)。由于項(xiàng)目的跨平臺(tái)開(kāi)發(fā)需要,我們?cè)陂_(kāi)始時(shí)進(jìn)行過(guò)單獨(dú)的協(xié)議破解工作,破解后,我們的程序在原來(lái)的RDP4.0基礎(chǔ)上擴(kuò)展到5.1,實(shí)現(xiàn)了16位顏色,聲音本地回放, 映射本地打印機(jī)。對(duì)于當(dāng)前的終端機(jī),這些功能完全滿足需要,因此其他功能暫不便破解實(shí)現(xiàn)。為防患RDP協(xié)議的升級(jí)而影響我們破解而得的終端程序的功能性,需要對(duì)RDP協(xié)議的變化進(jìn)行跟蹤,對(duì)et-rdesktop進(jìn)行優(yōu)化、完善。鑒于當(dāng)前的工作安排,將跟蹤redsktop項(xiàng)目的進(jìn)展,以提煉功能為

3、我所用和完善現(xiàn)有程序。二、概述1 版本功能說(shuō)明:RDP協(xié)議在終端服務(wù)推出后已有四個(gè)版本,4.0、5.0、5.1、5.2。一般來(lái)說(shuō),版本是根據(jù)windows的版本確定的。從客戶端的角度來(lái)說(shuō),5.X版本間提供的功能差別不是很大,相對(duì)于4.0版本,它提供了用戶帶密碼直接登錄、客戶端驅(qū)動(dòng)器資源映射、客戶端音頻回放、最高24位色顯示和符合FIPS加密級(jí)別連接。另外,從4.0協(xié)議開(kāi)始變提供的客戶羰功能有:高、中、低三種數(shù)據(jù)加密級(jí)別,客戶端自定義初始登錄環(huán)境,客戶端打印機(jī)映射,客戶端LPT端口映射,客戶端com端口映射,剪貼板映射,客戶登錄的個(gè)性化設(shè)置(包括鍵盤、顯示界面大小等)。2、協(xié)議層次說(shuō)明: 通過(guò)破

4、解研究,我們掌握了RDP協(xié)議的基本層次結(jié)構(gòu)?;旧?,RDP協(xié)議的每一層次上都標(biāo)示出其層內(nèi)的數(shù)據(jù)長(zhǎng)度值。 對(duì)于層次劃分,主要是指RDP協(xié)議網(wǎng)絡(luò)功能數(shù)據(jù)傳送時(shí)通常都包含的各層次,而對(duì)于各層次內(nèi)所實(shí)現(xiàn)的單層次連接等功能將做為單獨(dú)的模塊來(lái)進(jìn)行闡述。 網(wǎng)絡(luò)連接層:RDP協(xié)議建立在TCP/IP協(xié)議之上,由于傳輸?shù)臄?shù)據(jù)量比較大,因此在協(xié)議的底層首先定義一層網(wǎng)絡(luò)連接層。它定義了一個(gè)完事的RDP數(shù)據(jù)邏輯包,以避免由于網(wǎng)絡(luò)包長(zhǎng)度過(guò)長(zhǎng)而被分割使數(shù)據(jù)丟失。 ISO數(shù)據(jù)層:在網(wǎng)絡(luò)連接層之上是ISO數(shù)據(jù)層,它表示RDP數(shù)據(jù)的正常連接通信。 虛擬通道層:在ISO數(shù)據(jù)層之上,RDP協(xié)議定義一個(gè)虛擬通道層,用以拆分標(biāo)示不同虛擬

5、通道的數(shù)據(jù),加快客戶端處理速度,節(jié)省占用網(wǎng)絡(luò)接口的時(shí)間。 加密解密層:在虛擬通道層之上,RDP定義一個(gè)數(shù)據(jù)加密解密層。此層用于對(duì)所有的功能數(shù)據(jù)進(jìn)行加密、解密處理。 功能數(shù)據(jù)層:在加密解密層之上是功能數(shù)據(jù),畫(huà)面信息,本地資源轉(zhuǎn)換,聲音數(shù)據(jù),打印數(shù)據(jù)等所有的功能數(shù)據(jù)信息都在此層進(jìn)行處理。另外,根據(jù)數(shù)據(jù)類型的不同,這些數(shù)據(jù)都有各自不同層次的分割,他們的內(nèi)部層次結(jié)構(gòu)將在各個(gè)功能模塊中進(jìn)行闡述。3 其它說(shuō)明: 本協(xié)議解析中所提到的各層次結(jié)構(gòu)都是指RDP功能數(shù)據(jù)正常傳送時(shí)的各底層結(jié)構(gòu),在功能數(shù)據(jù)傳送前的各層次的建立連接過(guò)程及其結(jié)構(gòu)、實(shí)現(xiàn)都?xì)w于模塊實(shí)現(xiàn)來(lái)進(jìn)行說(shuō)明。 對(duì)于服務(wù)器端的各種設(shè)置以及個(gè)版本間的內(nèi)部實(shí)

6、現(xiàn)差異請(qǐng)看RDP幫助文檔,以及rdpwin開(kāi)發(fā)文檔。4 連接過(guò)程說(shuō)明: 1) 客戶端連接服務(wù)器 2) ISO數(shù)據(jù)層建立連接 3) 發(fā)送初始協(xié)議相關(guān)信息,接收加密、解密密鑰 4) 虛擬通道申請(qǐng) 5) 加密形式發(fā)送客戶端系統(tǒng)信息,同時(shí)驗(yàn)證加密協(xié)議 6) 平臺(tái)軟件證書(shū)驗(yàn)證 7) 各功能建立連接,各功能數(shù)據(jù)傳輸,功能實(shí)現(xiàn)三、網(wǎng)絡(luò)層次:1 網(wǎng)絡(luò)連接層:在RDP協(xié)議網(wǎng)絡(luò)實(shí)現(xiàn)連接中,本層的數(shù)據(jù)格式是固定的。內(nèi)容協(xié)議版本號(hào)保留此邏輯包長(zhǎng)度字節(jié)數(shù)112值當(dāng)前版本皆是30邏輯長(zhǎng)度,從版本號(hào)開(kāi)始到本包結(jié)束2 ISO數(shù)據(jù)層:在RDP功能數(shù)據(jù)網(wǎng)絡(luò)傳輸中,本層的數(shù)據(jù)格式是固定的。內(nèi)容單層數(shù)據(jù)長(zhǎng)度ISO包類型標(biāo)志字節(jié)數(shù)11

7、1值2,從下字節(jié)開(kāi)始計(jì)算0xf0,表示數(shù)據(jù)0x803 虛擬通道層: 虛擬通道層用于在正常的網(wǎng)絡(luò)連接數(shù)據(jù)之上,中個(gè)虛擬通道的功能數(shù)據(jù)。此層次的連接另見(jiàn)初始連接模塊與通道申請(qǐng)模塊,在此只說(shuō)明正常數(shù)據(jù)連接時(shí)的層次結(jié)構(gòu)。 1) 結(jié)構(gòu)信息:內(nèi)容類型虛擬通道個(gè)數(shù)虛擬通道號(hào)標(biāo)志字節(jié)數(shù)1221值0x64/0x680x00010x03eb至0x03ee0x70/0xf0 2) 類型說(shuō)明: 0x64:客戶端發(fā)送數(shù)據(jù)0x68:客戶端接收數(shù)據(jù) 3) 用戶號(hào)說(shuō)明: 本次連接的用戶號(hào),服務(wù)器發(fā)送的是0x0001;客戶端所發(fā)送的值是初始連接時(shí)請(qǐng)示通道后服務(wù)器同意開(kāi)通的虛擬個(gè)數(shù)。 4) 虛擬通道號(hào)說(shuō)明: 虛擬通道號(hào)是本層次以

8、上所發(fā)送的功能數(shù)據(jù)所在的虛擬通道號(hào),其由初始連接通道申請(qǐng)建立時(shí)確定。 5) 標(biāo)志說(shuō)明: 客戶端發(fā)送的標(biāo)志為0x70;服務(wù)器端發(fā)送的標(biāo)志,當(dāng)功能數(shù)據(jù)是圖像是(由通道號(hào)識(shí)別),其值為0x70,當(dāng)功能數(shù)據(jù)是其它數(shù)據(jù)時(shí),其值為0xf0。4 加密解密層:加密解密層用于對(duì)網(wǎng)絡(luò)連接中所發(fā)送、接收的數(shù)據(jù)進(jìn)行加密、解密。為保證數(shù)據(jù)和系統(tǒng)的安全性,對(duì)網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行加密傳輸是比較常用且必然的,RDP協(xié)議在此層對(duì)實(shí)際的功能數(shù)據(jù)進(jìn)行加密。1) 結(jié)構(gòu)信息:內(nèi)容單層及層上數(shù)據(jù)總長(zhǎng)度加密標(biāo)志未知標(biāo)志數(shù)字簽名字節(jié)數(shù)1-2228值從下字節(jié)開(kāi)始計(jì)算0x08000x1000/0x0203順序取得2) 總長(zhǎng)度說(shuō)明: 若長(zhǎng)度大于0x7f,

9、則長(zhǎng)度以兩字節(jié)表示,并按位與0x8000。這是由于版本升級(jí)贊成的格式不統(tǒng)一,長(zhǎng)度不定,當(dāng)前版本認(rèn)為長(zhǎng)度值不大于0x0fff(4095)因此只用長(zhǎng)度值并按位與0x8000實(shí)現(xiàn)版本兼容,在版本升級(jí)后會(huì)以0x8x表示長(zhǎng)度值的字節(jié)數(shù),其中8表示非1字節(jié),x表示具體的字節(jié)個(gè)數(shù)。3) 加密標(biāo)志說(shuō)明: RDP協(xié)議要求在正常的功能連接實(shí)現(xiàn)之前,首先licence認(rèn)證,其標(biāo)志為0x8xxx,且其后數(shù)據(jù)不同于正常功能數(shù)據(jù)傳輸式的加密層格式,可以視licence認(rèn)證為加密解密層的建立連接過(guò)程。另外功能數(shù)據(jù)的加密、解密的密鑰是在初始連接時(shí)獲得的,而加密解密功能的實(shí)現(xiàn)由加密、解密模塊闡述。4) 未知標(biāo)志說(shuō)明: 服務(wù)器端

10、發(fā)送過(guò)來(lái)的未知數(shù)據(jù)有兩種,目前不知其意,客戶端在發(fā)送數(shù)據(jù)時(shí)將其置為0x0000值。5) 數(shù)字簽名說(shuō)明: 對(duì)所有的加密數(shù)據(jù)在此放置8字節(jié)數(shù)字簽名。其值由RC4會(huì)話鍵值和功能數(shù)據(jù)經(jīng)過(guò)SHA運(yùn)算和MD5運(yùn)算得到。5 功能數(shù)據(jù)層:功能數(shù)據(jù)是客戶端與服務(wù)器進(jìn)行交互的真正數(shù)據(jù)。他們都有各自固定格式,連接、控制方式,具體情況見(jiàn)各功能模塊的說(shuō)明。根據(jù)當(dāng)前我們所掌握的信息,RDP協(xié)議將圖像信息、聲音信息、設(shè)備信息、剪貼板內(nèi)容都各自以單一的虛擬通道進(jìn)行傳送,而打印機(jī)映射,磁盤映射,端口映射都做為設(shè)備信息的內(nèi)容進(jìn)行處理。限于當(dāng)前左上角工作和項(xiàng)目工作的限度,設(shè)備信息中只考慮了打印機(jī)映射的部分,對(duì)于打印機(jī)信息與其他的設(shè)

11、備相關(guān)的信息沒(méi)有進(jìn)行有效隔離區(qū)分,而本協(xié)議說(shuō)明中相關(guān)的連接信息、數(shù)據(jù)傳送都只認(rèn)為是打印機(jī)映射的內(nèi)容。四、各連接模塊說(shuō)明:1 ISO連接模塊:在客戶端與服務(wù)器的網(wǎng)絡(luò)套接口建立之后,需要首先建立RDP協(xié)議底層連接,得到連接確認(rèn)后才能正常通信。具體實(shí)現(xiàn)如下:1) 連接過(guò)程說(shuō)明:初始連接時(shí),在網(wǎng)絡(luò)套接口TCP連接建立之后中,客戶端首先進(jìn)行連接請(qǐng)求,當(dāng)收到連接確認(rèn)后表示網(wǎng)絡(luò)連接層連接建立,隨后開(kāi)始傳送RDP數(shù)據(jù)。2) 連接請(qǐng)求通信數(shù)據(jù):內(nèi)容層內(nèi)數(shù)據(jù)長(zhǎng)度RDP包類型未知1未知2標(biāo)志其它字節(jié)數(shù)11221不定值從下一字節(jié)開(kāi)始計(jì)算0xd0或0xe00x0000另見(jiàn)0x00另見(jiàn)3) RDP包類型說(shuō)明:0xe0:客

12、戶端連接請(qǐng)求0xd0:服務(wù)器確認(rèn)連接 4) 未知數(shù)據(jù)2說(shuō)明: 0x0000:客戶端請(qǐng)求連接的值0x1234:服務(wù)器確認(rèn)請(qǐng)求的值 5) 其它數(shù)據(jù)說(shuō)明: win2003客戶端在請(qǐng)求時(shí)附帶了如下字符“Cookie: mstshash=Administrator0x0d0x0e”,目前不知其意。其中Administrator為自動(dòng)登錄名,當(dāng)其長(zhǎng)度超過(guò)12字節(jié)時(shí),只保留前12字節(jié),其它字符都固定不變。2 協(xié)議信息初始模塊:當(dāng)基本的RDP連接建立后,需要進(jìn)行客戶端與服務(wù)器的系統(tǒng)環(huán)境、RDP連接環(huán)境的信息交流與連接確認(rèn)。2-1) 發(fā)送包結(jié)構(gòu):內(nèi)容字節(jié)數(shù)值ISO數(shù)據(jù)層及以下XXXX協(xié)議信息初始發(fā)送標(biāo)志20x7

13、f65其后數(shù)據(jù)長(zhǎng)度30x82 0xlength第一部分未知數(shù)據(jù)704 00 04 00 01 01 ff第二部分未知數(shù)據(jù)XX三組協(xié)議參數(shù)第三部分未知數(shù)據(jù)XX四種連接參數(shù)2-1-1) 第一部分未知數(shù)據(jù)結(jié)構(gòu):內(nèi)容字節(jié)數(shù)值Calling domain20x0400Called domain20x0400未知數(shù)據(jù)20x0101標(biāo)志10xff2-1-2) 第二部分未知數(shù)據(jù)結(jié)構(gòu):內(nèi)容字節(jié)數(shù)值協(xié)議適合參數(shù)2+4+7*(2+參數(shù)值占字節(jié)數(shù))標(biāo)志,長(zhǎng)度,8個(gè)參數(shù)值協(xié)議最小參數(shù)2+4+7*(2+參數(shù)值占字節(jié)數(shù))標(biāo)志,長(zhǎng)度,8個(gè)參數(shù)值協(xié)議最大參數(shù)2+4+7*(2+參數(shù)值占字節(jié)數(shù))標(biāo)志,長(zhǎng)度,8個(gè)參數(shù)值說(shuō)明:3組參數(shù)

14、標(biāo)志都是0x30,8個(gè)參數(shù)值的標(biāo)志都是0x20含義適合值最小值最大值虛擬通道數(shù)0x22=340x010xffff用戶數(shù)0x020x010xfc17=64535Token值0x000x010xffff優(yōu)先數(shù)(priorities)0x010x010x01遍及數(shù)(throughput)0x000x000x00頂點(diǎn)數(shù)(height)0x010x010x01網(wǎng)絡(luò)邏輯數(shù)據(jù)包長(zhǎng)度0xffff0x0420=10560xffff=65535版本號(hào)0x020x020x022-1-3) 第三部分未知數(shù)據(jù)結(jié)構(gòu):內(nèi)容字節(jié)數(shù)值本部分標(biāo)志、數(shù)據(jù)長(zhǎng)度40x04 0x82 0xlength1未知數(shù)據(jù)1400 05 00 14

15、 7c 00 01余下的數(shù)據(jù)長(zhǎng)度20x8000|length2未知數(shù)據(jù)2800 08 00 10 00 01 c0 00未知數(shù)據(jù)3444 75 63 61 “Duca”4組數(shù)據(jù)XX各功能模塊連接信息2-1-3-1:基本信息內(nèi)容字節(jié)數(shù)值(反字節(jié)存儲(chǔ))標(biāo)志20xc001長(zhǎng)度2這一組數(shù)據(jù)的長(zhǎng)度Licence版本21,4,5;lincence標(biāo)志升級(jí)未知數(shù)據(jù)120x0008窗口寬度、高度4寬度,高度未知數(shù)據(jù)240xca01,0xaa03Keylayout40x00000409客戶端系統(tǒng)組件數(shù)4419,2195,2462客戶端機(jī)器名322字節(jié)存儲(chǔ)1個(gè)字符未知數(shù)據(jù)3120x04,0x00,0x0c各四個(gè)字

16、節(jié)未知數(shù)據(jù)464都是0未知數(shù)據(jù)5801 ca 01 00 00 00 00 00圖形顏色位(最大值)224,16,15,8未知數(shù)據(jù)6(疑最小位)207 00未知數(shù)據(jù)7401 00 00 00基本信息返回值多少且固定,認(rèn)為在具體連接時(shí)有更多返回信息。加密信息需要取回加密級(jí)別與密鑰;通道信息則返回基本圖形信息的通道號(hào)和其他虛擬通道號(hào),需要另行申請(qǐng)。2-2-1-1) 基本信息內(nèi)容字節(jié)數(shù)值(字節(jié)反存)標(biāo)志20xc001本組信息長(zhǎng)度20x0008(固定)未知數(shù)據(jù)120x0004未知數(shù)據(jù)220x00082-2-1-2) 通道信息內(nèi)容字節(jié)數(shù)值(字節(jié)反存)標(biāo)志20xc003本組信息長(zhǎng)度2XX需要單獨(dú)開(kāi)辟的通道

17、數(shù)2若無(wú)需申請(qǐng)則不存在通道號(hào)組通道數(shù)*22個(gè)字節(jié)存放一個(gè)通道號(hào)空閑字節(jié)20x00002-2-1-3) 加密信息內(nèi)容字節(jié)數(shù)值標(biāo)志20xc002本組信息長(zhǎng)度2XX加密位長(zhǎng)度41-40位,2-128位加密級(jí)別41-低,2-中,3-高服務(wù)器隨機(jī)數(shù)長(zhǎng)度4目前都是32字節(jié)RSA信息長(zhǎng)度4從隨機(jī)數(shù)結(jié)束開(kāi)始服務(wù)器端隨機(jī)數(shù)32XXRSA信息XXXX密鑰信息的類型41-RDP4或0x80000002-X.5092-2-1-3-1) RDP4類型密鑰內(nèi)容字節(jié)數(shù)值未知數(shù)據(jù)1801 00 00 00 01 00 00 00公鑰標(biāo)志20x0006長(zhǎng)度2length公鑰信息RSA1標(biāo)志452 53 41 31 -“RSA1

18、”公鑰模數(shù)+襯墊長(zhǎng)度448 00 00 00- =64+8未知數(shù)據(jù)2800 02 00 00 3f 00 00 00公鑰指數(shù)(exponent)401 00 01 00公鑰模數(shù)值(modulu)64XX公鑰襯墊值(pad)800 00 00 00 00 00 00 00 公鑰簽名標(biāo)志,長(zhǎng)度40x0008 length(=0x48)簽名模數(shù)值 64XX簽名襯墊值800 00 00 00 00 00 00 00 2-2-1-3-1-2) 公鑰信息數(shù)字簽名X509類型密鑰內(nèi)容字節(jié)數(shù)值證書(shū)個(gè)數(shù)4不少于2個(gè)無(wú)效證書(shū)XX若證書(shū)大于2個(gè),都 被忽略,無(wú)效CA證書(shū) XXXX服務(wù)器證書(shū) XXXXPadding值

19、16全是0對(duì)于win2003操作系統(tǒng),當(dāng)授權(quán)組件被更改時(shí),此處的密鑰變?yōu)閄509類型。對(duì)于客戶端,只提取服務(wù)器證書(shū)部分的相關(guān)信息,以得到服務(wù)器隨機(jī)數(shù)。由于對(duì)于密鑰的處理是采用通用的加密算法與標(biāo)準(zhǔn),因此在此不予深入的討論。3 通道申請(qǐng)模塊對(duì)于RDP連接,各種功能數(shù)據(jù)都是通過(guò)單獨(dú)的虛擬通道傳輸?shù)?。初始連接后,在進(jìn)一步的信息通信之前,需要開(kāi)辟相應(yīng)的通道。1) 過(guò)程說(shuō)明客戶端首先發(fā)送一個(gè)建立連接獨(dú)立空間請(qǐng)求,再發(fā)送一個(gè)用戶綁定請(qǐng)求,若服務(wù)器同意,將發(fā)送用戶綁定確認(rèn),且含有需要申請(qǐng)的虛擬通道總數(shù)totalchannel。隨后客戶端申請(qǐng)?zhí)摂M通道。虛擬通道號(hào)從1001+2=1003開(kāi)始到1001+total

20、channel結(jié)束,每次申請(qǐng)都應(yīng)返回一個(gè)申請(qǐng)結(jié)果。2) 建立連接獨(dú)立空間請(qǐng)求結(jié)構(gòu):內(nèi)容ISO數(shù)據(jù)層以下請(qǐng)求標(biāo)示高度值間距字節(jié)數(shù)XX122值XX0x040x00010x00013) 用戶綁定請(qǐng)求結(jié)構(gòu):內(nèi)容ISO數(shù)據(jù)層以下請(qǐng)求標(biāo)示字節(jié)數(shù)XX1值XX0x284) 用戶綁定確認(rèn)結(jié)構(gòu):內(nèi)容ISO數(shù)據(jù)層以下請(qǐng)求標(biāo)志虛擬通道總數(shù)字節(jié)數(shù)XX22值XX0x2e00totalchannel5) 申請(qǐng)?zhí)摂M通道號(hào)結(jié)構(gòu)內(nèi)容ISO數(shù)據(jù)層以下申請(qǐng)標(biāo)志虛擬通道總數(shù)虛擬通道號(hào)字節(jié)數(shù)XX122值XX0x38totalchannelNum,6) 通道申請(qǐng)確認(rèn)結(jié):內(nèi)容ISO數(shù)據(jù)層以下確認(rèn)標(biāo)志通道總數(shù)申請(qǐng)通道申請(qǐng)通道字節(jié)數(shù)XX2222

21、值XX0x3e00totallnumnum4 系統(tǒng)初始連接模塊:當(dāng)通道申請(qǐng)各部分通過(guò)后,開(kāi)始系統(tǒng)登錄的初始連接。從此數(shù)據(jù)包開(kāi)始,所以虛擬通道層以上的網(wǎng)絡(luò)數(shù)據(jù)都需要加密,詳細(xì)的加密功能實(shí)現(xiàn)請(qǐng)參見(jiàn)加密模塊。登錄的網(wǎng)絡(luò)信息結(jié)構(gòu)如下:內(nèi)容字節(jié)數(shù)值(字節(jié)反存)加密層及以下XXXX空閑字節(jié)40x00000000自動(dòng)登錄標(biāo)志4正常:0x33,自動(dòng):0x28域名長(zhǎng)度2若空為0,有值則乘2用戶名長(zhǎng)度2若空為0,有值則乘2密碼長(zhǎng)度2若空為0,有值則乘2登錄程序長(zhǎng)度2若空為0,有值則乘2登錄路徑長(zhǎng)度2若空為0,有值則乘2域名值域名長(zhǎng)度+22字節(jié)反存1字符,最后為2字節(jié)為0x0000用戶名值用戶名長(zhǎng)度+22字節(jié)反存1

22、字符,最后為2字節(jié)為0x0000密碼字符值密碼長(zhǎng)度+22字節(jié)反存1字符,最后為2字節(jié)為0x0000登錄程序名稱登錄程序長(zhǎng)度+22字節(jié)反存1字符,最后為2字節(jié)為0x0000登錄路徑值登錄路徑長(zhǎng)度+22字節(jié)反存1字符,最后為2字節(jié)為0x00005 圖形連接模塊:在圖形數(shù)據(jù)發(fā)送之前,服務(wù)器需要對(duì)此功能模塊驗(yàn)證,驗(yàn)證內(nèi)容是所有與圖形相關(guān)的信息,包括鼠標(biāo)設(shè)置、鍵盤輸入、字體類型、畫(huà)圖命令格式、圖形顯示的各種類型。根據(jù)已破解的信息顯示,RDESKTOP原來(lái)并沒(méi)有正確的賦值,因?yàn)樗姆祷刂凳菦](méi)有固定的,對(duì)于服務(wù)器發(fā)送來(lái)的信息沒(méi)有處理,而服務(wù)器在其關(guān)于圖形方面的參數(shù)設(shè)置詢問(wèn)沒(méi)有得到正確的回答時(shí),則以固定的服務(wù)

23、器端的參數(shù)進(jìn)行設(shè)置。5-1) 連接過(guò)程說(shuō)明:服務(wù)器端首先發(fā)送關(guān)于圖形方面的基本參數(shù)設(shè)置,客戶端應(yīng)該對(duì)這些設(shè)置進(jìn)行反饋。此后rdesktop的處理是順序發(fā)送同步信息,兩個(gè)控制信息包,一個(gè)輸入信息包,兩個(gè)字體信息包;同時(shí)順序接收一個(gè)同步信息包,兩控制信息包,一個(gè)未知信息包;但redsktop并沒(méi)有對(duì)接2收的信息包進(jìn)行處理。5-2)基本參數(shù)設(shè)2置信息包結(jié)構(gòu):內(nèi)容字節(jié)數(shù)值(字節(jié)反存)加密層及以下XXXX層后數(shù)據(jù)長(zhǎng)度2XX數(shù)據(jù)類型標(biāo)志211 00,表示是圖形信息連接確認(rèn)基本通道號(hào)2ea 03,固定基本通道號(hào)2ea 03,固定(share?)未知數(shù)據(jù)1201 00ASCII信息長(zhǎng)度2XX基本參數(shù)長(zhǎng)度2XX

24、ASCII信息長(zhǎng)度值+152 44 50 00,r-“RDP”,s-“MSTSC”參數(shù)信息2r-0b 00,s-0d空位230或00詳細(xì)各組參數(shù)組數(shù)內(nèi)容XX5-3) 詳細(xì)參數(shù)信息組類別:每個(gè)類型的數(shù)據(jù)前2字節(jié)為類型,然后是長(zhǎng)度,數(shù)據(jù)。以接收到優(yōu)先作例介紹。類型值說(shuō)明01r通用類型(general)02r位圖類型(bitmap)03r命令(order)04位圖緩存(bitmap cache)05控制(control)07活動(dòng)(active)08r指針(pointer)09r共享(share)0ar顏色緩存(color cache)0c未知0dr未知0e未知10未知12r未知14r未知16r未知4

25、0未知00r未知5-3-1) 通用類型(general-01)內(nèi)容字節(jié)數(shù)值(字節(jié)反存)系統(tǒng)主類型201 00,OS major type系統(tǒng)次類型203 00,OS minor type協(xié)議版本號(hào)202 00,protocol version空數(shù)據(jù)1200 00壓縮類型200 00不壓縮空數(shù)據(jù)221d 04更新屬性200 00共享屬性200 00壓縮級(jí)別200 00空數(shù)據(jù)3201 015-3-2) 位圖類型(bitmap-02)內(nèi)容字節(jié)數(shù)值(字節(jié)反存)最佳顏色深度2協(xié)商值1顏色深度201 00 2顏色深度201 003顏色深度201 00桌面寬度2width桌面高度2height空位1200

26、00允許調(diào)整大小201 00位圖壓縮201 00未知數(shù)據(jù)1200 00未知數(shù)據(jù)2201 00空位2200 005-3-3) 命令(order-03)內(nèi)容字節(jié)數(shù)值(字節(jié)反存)Terminal desc1160值Terminal desc2410 42 0f 00緩存X間隔201 00緩存Y間隔214 00未知數(shù)據(jù)1200 00最大命令級(jí)別201 00字體數(shù)目200 00容量標(biāo)志222 00命令支持格式32另見(jiàn)文本容量標(biāo)志2a1 06未知數(shù)據(jù)2600 00 40 42 0f 00桌面緩存大小440 42 0f 00未知數(shù)據(jù)3401 00 00 00未知數(shù)據(jù)4400 00 00 00命令支持格式說(shuō)明

27、:共32個(gè)標(biāo)志,只對(duì)已知標(biāo)志進(jìn)行說(shuō)明。字節(jié)位置,0-31值含義,1代表支持,0代表不支持0Dest blt1Pat blt2Screen blt3Required for memblt8Line19Line210Rect11Desktop save13Memblt14Triblt22Polyline27Text25-3-4) 位圖緩存(bitmap cache-04)內(nèi)容字節(jié)數(shù)值(字節(jié)反存)未使用數(shù)據(jù)1240值Entries258 02Max cell size200 01Entries22c 01Max cell size200 04Entries206 01Max cell size200

28、 105-3-5) 控制(control-05)內(nèi)容字節(jié)數(shù)值(字節(jié)反存)Control capability200 00Remote detach200 00Control interest202 00Detach interest202 005-3-6) 活動(dòng)(activer-07)內(nèi)容字節(jié)數(shù)值(字節(jié)反存)Help key200 00Help index key200 00Extended help key200 00Window active200 005-3-7) 指針(pointer-08)內(nèi)容字節(jié)數(shù)值(字節(jié)反存)Color pointer201 00Cache size219 00未

29、知數(shù)據(jù)1219 005-3-8) 共享(share-09)內(nèi)容字節(jié)數(shù)值(字節(jié)反存)基本通道號(hào)2ea 03未知數(shù)據(jù)127d e15-3-9) 顏色緩存(color cache-0a)內(nèi)容字節(jié)數(shù)值(字節(jié)反存)緩存大小206 00未知數(shù)據(jù)127d e15-3-10) 未知類型-d 收到:內(nèi)容字節(jié)數(shù)值(字節(jié)反存)未知數(shù)據(jù)11235 00 00 00 a1 06 00 00 40 42 0f 00未知數(shù)據(jù)21240 42 0f 00 44 e6 0a ba 93 53 19 ba未知數(shù)據(jù)31208 60 03 e1 6a 05 1a ba 4c e6 0a ba未知數(shù)據(jù)4124c a4 7d e1 08

30、 a0 7d e1 01 00 00 00未知數(shù)據(jù)51208 a4 7d e1 00 00 00 00 44 e6 0a ba未知數(shù)據(jù)61254 f2 19 ba 08 a0 7d e1 38 e6 0a ba未知數(shù)據(jù)71200 00 00 00 08 00 0a 00 01 00 19 005-3-11) 未知類型-12 收到:內(nèi)容字節(jié)數(shù)值(字節(jié)反存)未知數(shù)據(jù)1201 00未知數(shù)據(jù)2200 005-3-12) 未知類型-14 收到:內(nèi)容字節(jié)數(shù)值(字節(jié)反存)未知數(shù)據(jù)1202 00未知數(shù)據(jù)2200 005-3-13) 未知類型-16 收到:內(nèi)容字節(jié)數(shù)值(字節(jié)反存)未知數(shù)據(jù)11201 00 00

31、00 6e 01 00 00 01 00 00 00未知數(shù)據(jù)212d0 07 40 bf 01 b0 83 bf 00 00 00 00未知數(shù)據(jù)312a4 e6 0a ba 5c db 4f 80 e6 01 00 006打印機(jī)映射連接模塊:RDP協(xié)議當(dāng)前提供映射5個(gè)設(shè)備,在我們破解過(guò)程中并沒(méi)有區(qū)分出他們的區(qū)別,在此視為單一處理。打印機(jī)的連接在系統(tǒng)登錄前完成,以配置操作系統(tǒng)信息。6-1) 連接過(guò)程說(shuō)明包序號(hào)接收發(fā)送字符含義1RInDr設(shè)備初始連接通知,說(shuō)明可以連接申請(qǐng)2SCCDr客戶端連接申請(qǐng)3SCNDr客戶端名稱注冊(cè)4RSPDr服務(wù)器提供的設(shè)備接口說(shuō)明5RCCDr服務(wù)器設(shè)備申請(qǐng)確認(rèn)6SCPD

32、r客戶端設(shè)備提供的接口說(shuō)明7SDADr客戶端打印機(jī)映射申請(qǐng)8RdrDr服務(wù)器打印機(jī)設(shè)備映射成功確認(rèn)6-2) 設(shè)備初始連接通知:內(nèi)容字節(jié)數(shù)值(字節(jié)反存)層內(nèi)數(shù)據(jù)長(zhǎng)度40x0000000c標(biāo)志403 00 00 00,表示控制信息ASCII信息4InDr未知數(shù)據(jù)1201 00,可能是最少個(gè)數(shù)未知數(shù)據(jù)2205 00,可能是最多個(gè)數(shù)未知數(shù)據(jù)32ff ff未知數(shù)據(jù)4ff ff6-3) 客戶端連接申請(qǐng):內(nèi)容字節(jié)數(shù)值(字節(jié)反存)層內(nèi)數(shù)據(jù)長(zhǎng)度40x0000000c標(biāo)志400 00 03 00,表示控制信息ASCII信息4CCDr未知數(shù)據(jù)1200 01,申請(qǐng)最少個(gè)數(shù)未知數(shù)據(jù)2200 05,申請(qǐng)最多個(gè)數(shù)未知數(shù)據(jù)3

33、2ff ff6-4) 客戶端名稱注冊(cè):內(nèi)容字節(jié)數(shù)值(字節(jié)反存)層內(nèi)數(shù)據(jù)長(zhǎng)度4XX標(biāo)志400 00 03 00,表示控制信息ASCII信息4CNDr未知數(shù)據(jù)1441 02或 63 00未知數(shù)據(jù)22bf 00 或 72 00未知數(shù)據(jù)3400 00 00 00 主機(jī)名長(zhǎng)度4XX,字符2字節(jié)存儲(chǔ)主機(jī)名長(zhǎng)度XX6-5) 服務(wù)器提供的設(shè)備接口說(shuō)明:內(nèi)容字節(jié)數(shù)值(字節(jié)反存)層內(nèi)數(shù)據(jù)長(zhǎng)度4XX標(biāo)志403 00 00 00,表示控制信息ASCII信息4SPDr設(shè)備個(gè)數(shù)405 00 00 00設(shè)備1標(biāo)識(shí)201 00設(shè)備1信息長(zhǎng)度228 00,從標(biāo)識(shí)開(kāi)始計(jì)算設(shè)備1中未知數(shù)據(jù)4內(nèi)容見(jiàn)下表4組設(shè)備信息8每組只有標(biāo)識(shí)號(hào)變

34、化,1可能表示有效0x 00 08 00 01 00 00 00設(shè)備1中未知數(shù)據(jù):01 00 00 0002 00 00 0000 00 00 0001 00 05 00ff ff 00 0000 00 00 0003 00 00 0000 00 00 0000 00 00 006-6) 服務(wù)器設(shè)備申請(qǐng)確認(rèn):除標(biāo)志反位存儲(chǔ)外,其他都與6-2)中所說(shuō)相同。6-7) 客戶端設(shè)備提供的接口說(shuō)明:除標(biāo)志反位存儲(chǔ)、ASCII信息和設(shè)備1信息中第11字節(jié)值是5之外,其他都與6-2中所說(shuō)相同。6-8) 客戶端打印機(jī)映射申請(qǐng):內(nèi)容字節(jié)數(shù)值(字節(jié)反存)層內(nèi)數(shù)據(jù)長(zhǎng)度4XX標(biāo)志403 00 00 00,表示控制信息

35、ASCII信息4DADr設(shè)備個(gè)數(shù)401 00 00 00設(shè)備1標(biāo)識(shí)401 00設(shè)備1句柄4設(shè)備1 ASCII信息4空位4此后數(shù)據(jù)長(zhǎng)度4未知數(shù)據(jù)1長(zhǎng)度4未知數(shù)據(jù)10x0a驅(qū)動(dòng)打印機(jī)名長(zhǎng)度8空位4驅(qū)動(dòng)名稱XX打印機(jī)名稱XX6-9) 服務(wù)器打印機(jī)設(shè)備映射成功確認(rèn):內(nèi)容字節(jié)數(shù)值(字節(jié)反存)層內(nèi)數(shù)據(jù)長(zhǎng)度4XX標(biāo)志403 00 00 00,表示控制信息ASCII信息4drDr設(shè)備句柄401 00 00 00空位400 00 00 007 聲音處理連接模塊:RDP協(xié)議需要單獨(dú)的虛擬通道傳遞關(guān)于聲音的數(shù)據(jù)。為了能夠在本地播放聲音,需要進(jìn)行聲音處理模塊的連接,但只有要聲音回放時(shí)才開(kāi)始連接。連接的內(nèi)容是:客戶端對(duì)

36、這些信息進(jìn)行反饋,以在客戶端與服務(wù)器之間確定相應(yīng)的參數(shù)。7-1) 連接過(guò)程說(shuō)明:服務(wù)器首先發(fā)送一系列的關(guān)于聲卡的設(shè)置參數(shù),以及聲音數(shù)據(jù)的網(wǎng)絡(luò)格式信息,客戶端對(duì)本地聲卡進(jìn)行測(cè)試并發(fā)回可支持的設(shè)置參數(shù);服務(wù)器得到反饋后再發(fā)送測(cè)試數(shù)據(jù),測(cè)試成功則反饋連接成功。7-2) 聲卡設(shè)置參數(shù)詢問(wèn)結(jié)構(gòu):內(nèi)容字節(jié)數(shù)值(字節(jié)反存)層內(nèi)數(shù)據(jù)長(zhǎng)4XX標(biāo)志403 00 00 00,表示控制信息聲音處理標(biāo)志107 表示聲卡設(shè)置參數(shù)詢問(wèn)未知數(shù)據(jù)1100此后數(shù)據(jù)長(zhǎng)度2XX聲音數(shù)據(jù)標(biāo)志407 00 00 00,表示此后是聲卡參數(shù)聲音音量4f0 fa 8b 00聲音平衡量4E8 20 f3 77UDP端口?25a ae聲卡參數(shù)組數(shù)

37、2XX未知數(shù)據(jù)21ff狀態(tài)值205 00未知數(shù)據(jù)3176XX組聲卡參數(shù)XX*18XX聲卡參數(shù)結(jié)構(gòu):內(nèi)容字節(jié)數(shù)值(字節(jié)反存)聲道數(shù)21或2頻率4nAvgBttesPerSec4nBlockAlign2wBitsPerSample2cbSize27-3) 聲卡設(shè)置參數(shù)反饋結(jié)構(gòu):內(nèi)容字節(jié)數(shù)值(字節(jié)反存)層內(nèi)數(shù)據(jù)長(zhǎng)4XX標(biāo)志403 00 00 00,表示控制信息聲音處理標(biāo)志107 表示聲卡設(shè)置參數(shù)反饋未知數(shù)據(jù)1100此后數(shù)據(jù)長(zhǎng)度2XX聲音數(shù)據(jù)標(biāo)志403 00 00 00,表示此后是聲卡參數(shù)反饋聲音音量480 4d 80 4d聲音平衡量400 00 00 00UDP端口?204 0e?聲卡參數(shù)級(jí)數(shù)2XX

38、未知數(shù)據(jù)2100狀態(tài)值202 00未知數(shù)據(jù)3100XX組聲卡參數(shù)XX*18XX7-2) 聲卡測(cè)試結(jié)構(gòu):內(nèi)容字節(jié)數(shù)值(字節(jié)反存)層內(nèi)數(shù)據(jù)長(zhǎng)4XX標(biāo)志403 00 00 00,表示控制信息聲音處理標(biāo)志106 表示聲卡設(shè)置參數(shù)測(cè)試未知數(shù)據(jù)1123此后數(shù)據(jù)長(zhǎng)度2XX聲音數(shù)據(jù)標(biāo)志1216 d4聲音數(shù)據(jù)標(biāo)志2200 04測(cè)試數(shù)據(jù)XXXX7-2) 聲卡測(cè)試反饋結(jié)構(gòu):內(nèi)容字節(jié)數(shù)值(字節(jié)反存)層內(nèi)數(shù)據(jù)長(zhǎng)408 00 00 00標(biāo)志403 00 00 00操作標(biāo)志206 00 表示接收反饋其后數(shù)據(jù)長(zhǎng)度1204 00聲音數(shù)據(jù)標(biāo)志1216 d4聲音數(shù)據(jù)標(biāo)志2200 04五、各功能模塊說(shuō)明:任務(wù)標(biāo)志說(shuō)明:適用于所有非圖

39、形通道數(shù)據(jù)。00 00 00 0001 00 00 0002 00 00 0003 00 00 0000 00 03 00傳輸中傳輸開(kāi)始傳輸結(jié)束傳輸控制傳輸反饋1 licence身份誰(shuí)模塊:在加密、解密驗(yàn)證通過(guò)以后,服務(wù)器發(fā)送licence信息進(jìn)行系統(tǒng)的身份認(rèn)證。身份證認(rèn)證的加密、解密系統(tǒng)也是用RSA/RC4體系,但是與網(wǎng)絡(luò)通信中的加密、解密系統(tǒng)分開(kāi)的。licence認(rèn)證中的密鑰是臨時(shí)的、單獨(dú)的。1-1) 連接過(guò)程說(shuō)明:服務(wù)器端首先發(fā)送demand包,內(nèi)容是隨機(jī)數(shù)和一些系統(tǒng)相關(guān)的字符信息;客戶端需要回復(fù)requset包,內(nèi)容是隨機(jī)數(shù)、空閑值、主機(jī)名、用戶名;服務(wù)器再發(fā)送authreq包,內(nèi)容包

40、括token值和signature值;客戶端需要回復(fù)authresq包,內(nèi)容包括token值、hwid值和signature值。服務(wù)器通過(guò)后會(huì)發(fā)送result包,表明licence認(rèn)證通過(guò)。1-2) demand包:r內(nèi)容字節(jié)數(shù)值加密層480 02 86 00Licence標(biāo)志101,表示demand,licence認(rèn)證要求版本14.0-02,5.x-03本層長(zhǎng)度286 00服務(wù)器隨機(jī)數(shù)32XX未知數(shù)據(jù)1402 00 05 00公司信息長(zhǎng)度42c 00 00 00公司信息0x2c“Microsoft Corporation 0”,2字節(jié)表示1字符未知2長(zhǎng)度408 00 00 00未知數(shù)據(jù)284

41、1 00 30 00 32 00 00 00,“A02 0x0”未知數(shù)據(jù)380d 00 04 00 01 00 00 00未知數(shù)據(jù)485c f5 00 00 01 00 00 00未知數(shù)據(jù)540e 00 0e 00網(wǎng)址信息0x0e“M0”,1字節(jié)表示1字符1-3) request包:s內(nèi)容字節(jié)數(shù)值加密層480 00 00 00Licence標(biāo)志113,表示request,licence認(rèn)證要求回復(fù)版本14.0-02,5.x-03本層長(zhǎng)度28a 00未知數(shù)據(jù)1801 00 00 00 00 00 01 ff客戶端隨機(jī)數(shù)32全是0值(mod+pad)長(zhǎng)度448 00 00

42、00Modulus值64全是0值Padding值8全是0值用戶標(biāo)志20f 00用戶名長(zhǎng)度2XX用戶名長(zhǎng)度值1字節(jié)表示1字符,例“YYY”主機(jī)標(biāo)志210 00主機(jī)名長(zhǎng)度2XX主機(jī)名長(zhǎng)度值1字節(jié)表示1字符,例“YYY”1-4) authreq包:r內(nèi)容字節(jié)數(shù)值加密層480 02 26 00Licence標(biāo)志102,表示authreq,licence認(rèn)證密鑰版本14.0-02,5.x-03本層長(zhǎng)度226 00未知數(shù)據(jù)1646 53 f9 65 f1 7bToken長(zhǎng)度20a 00Token值0x0aXX,10字節(jié)Signature值0x10XX,16字節(jié)1-5) authreq包:s內(nèi)容字節(jié)數(shù)值加密

43、層480 00 00 00Licence標(biāo)志115,表示authreq,licence認(rèn)證密鑰版本14.0-02,5.x-03本層長(zhǎng)度23a 00標(biāo)志201 00Token長(zhǎng)度20a 00Token值0x0aXX,10字節(jié)標(biāo)志201 00Hwid長(zhǎng)度214 00Hwid值0x14XX,20字節(jié)Signature值0x10XX,16字節(jié)1-6) result包:r 不處理內(nèi)容字節(jié)數(shù)值加密層480 02 10 00Licence標(biāo)志1ff,表示result,licence認(rèn)證密鑰版本14.0-02,5.x-03本層長(zhǎng)度210 00未知數(shù)據(jù)1407 00 00 00未知數(shù)據(jù)2402 00 00 00

44、未知數(shù)據(jù)3404 00 00 002 加密解密模塊:在初始模塊中對(duì)網(wǎng)絡(luò)通信連接中所設(shè)定的加密信息提交給服務(wù)器。而RDP協(xié)議實(shí)現(xiàn)的加密形式是RSA/RC4。當(dāng)取得初始的加密、解密密鑰(在發(fā)送初始連接信息后得到的),在初始連接結(jié)束后,客戶端需要發(fā)送系統(tǒng)登錄的初始信息,用以驗(yàn)證客戶端加密、解密 的正確性。此后經(jīng)過(guò)licence認(rèn)證,通過(guò)認(rèn)證后,所有的加密數(shù)據(jù)都經(jīng)加密解密層處理。同時(shí),密鑰需要保存,因?yàn)榧用軘?shù)據(jù)包需要連續(xù)的正確加密或解密才能得到正確的數(shù)據(jù)。3 圖形處理模塊在圖形處理中,客戶端將所有的事件轉(zhuǎn)換為固定格式的網(wǎng)絡(luò)數(shù)據(jù)發(fā)送到服務(wù)器,服務(wù)器將處理的結(jié)果以圖片形式發(fā)回服務(wù)器。在圖形處理模塊內(nèi)部又分

45、了較多的層次,敘述下面:3-1) 第一級(jí)層次內(nèi)容字節(jié)數(shù)值層內(nèi)數(shù)據(jù)長(zhǎng)度2XX第一級(jí)類型標(biāo)記217 00 代表具體數(shù)據(jù),0000時(shí)跳過(guò)后4字節(jié)基本通道號(hào)2ea 03,固定基本通道號(hào)2ea 03,固定(share?)未知數(shù)據(jù)1201 00網(wǎng)絡(luò)包順序號(hào)2XX此后數(shù)據(jù)長(zhǎng)度2XX具體數(shù)據(jù)類型1見(jiàn)說(shuō)明數(shù)據(jù)壓縮類型100 不壓縮數(shù)據(jù)壓縮長(zhǎng)度200具體數(shù)據(jù)類型說(shuō)明:值含義說(shuō)明2圖形更新27鼠標(biāo)指針操作34響鈴38登錄信息47斷開(kāi)重連提示3-2) 圖形更新:前2字節(jié)是更新的類型值含義說(shuō)明0 畫(huà)圖命令1位圖2調(diào)色板3同步,鎖定3-2-1) 畫(huà)圖命令:其后是若干組畫(huà)圖命令內(nèi)容字節(jié)數(shù)值未知數(shù)據(jù)12XX畫(huà)圖命令組數(shù)2XX

46、未知數(shù)據(jù)22XX每組畫(huà)圖命令XX說(shuō)明:對(duì)于每一組命令,他們都取相應(yīng)的系統(tǒng)狀態(tài),根據(jù)具體的情況進(jìn)行處理。特別說(shuō)明的是,顏色值是固定的3字節(jié),根據(jù)深度值取相應(yīng)的就可以。3-2-2) 位圖:前2字節(jié)是圖片的數(shù)量。其后是圖片數(shù)據(jù),取出后畫(huà)圖片。每一張圖片的結(jié)構(gòu):內(nèi)容字節(jié)數(shù)值圖片水平左坐標(biāo)2XX圖片垂直上坐標(biāo)2XX圖片水平右坐標(biāo)2XX圖片垂直下坐標(biāo)2XX圖片水平點(diǎn)數(shù)2XX圖片垂直點(diǎn)數(shù)2XX圖片點(diǎn)深度值2XX圖片壓縮標(biāo)志200 表示不壓縮壓縮數(shù)據(jù)長(zhǎng)度2XX壓縮數(shù)據(jù)段內(nèi)容段據(jù)2-1XXXX壓縮數(shù)據(jù)段內(nèi)容:compress & 0x400 為真時(shí)size=壓縮數(shù)據(jù)長(zhǎng)度,其后只有數(shù)據(jù)內(nèi)容字節(jié)數(shù)值未知數(shù)據(jù)12XX

47、壓縮數(shù)據(jù)長(zhǎng)度2XX行長(zhǎng)度2XXfinal_size2XX壓縮數(shù)據(jù)內(nèi)容XXXX3-2-3) 調(diào)色板:用服務(wù)器傳過(guò)來(lái)調(diào)色板代替系統(tǒng)的調(diào)色板。當(dāng)256色時(shí)才有內(nèi)容字節(jié)數(shù)值未知數(shù)據(jù)12XX顏色組數(shù)2一般是256,即00 001未知數(shù)據(jù)22XX調(diào)色顏色值3倍每組值3字節(jié),分別為紅綠藍(lán)色值3-3) 鼠標(biāo)指針操作內(nèi)容字節(jié)數(shù)值操作類型2見(jiàn)說(shuō)明空位2XX鼠標(biāo)指針操作類型說(shuō)明:值含義說(shuō)明1取初始值3移動(dòng)6新?tīng)顟B(tài)7緩存3-3-1) 鼠標(biāo)指針操作取初始值處理:當(dāng)是00 00時(shí)設(shè)鼠標(biāo)為不可見(jiàn)狀態(tài)。內(nèi)容字節(jié)數(shù)值取初始值類型200 003-3-2) 鼠標(biāo)指針操作移動(dòng)處理:將鼠標(biāo)移動(dòng)到指定位置內(nèi)容字節(jié)數(shù)值鼠標(biāo)移動(dòng)目標(biāo)水平位置

48、2X值鼠標(biāo)移動(dòng)目標(biāo)垂直位置2Y值3-3-3) 鼠標(biāo)指針操作新?tīng)顟B(tài)處理:創(chuàng)建新?tīng)顟B(tài)到鼠標(biāo)狀態(tài)緩存,并設(shè)置狀態(tài)。內(nèi)容字節(jié)數(shù)值鼠標(biāo)緩存號(hào)2新的鼠標(biāo)狀態(tài)緩存號(hào)水平位置2X值垂直位置2Y值寬度2XX高度2XX掩碼長(zhǎng)度2XX數(shù)據(jù)長(zhǎng)度2XX掩碼值掩碼長(zhǎng)度XX數(shù)據(jù)值數(shù)據(jù)長(zhǎng)度XX3-3-4) 鼠標(biāo)指針操作緩存處理:設(shè)置鼠標(biāo)為系統(tǒng)已存的狀態(tài)號(hào)的狀態(tài)。內(nèi)容字節(jié)數(shù)值鼠標(biāo)緩存號(hào)2已存在的鼠標(biāo)狀態(tài)緩存號(hào)3-4) 響鈴:直接系統(tǒng)響鈴發(fā)聲處理3-5) 登錄信息:忽略,跳過(guò)3-6) 斷開(kāi)重連提示:忽略,跳過(guò)4打印數(shù)據(jù)模塊RDP協(xié)議提供本地打印機(jī)映射到服務(wù)器功能。在用戶通過(guò)終端連接服務(wù)器并映射本地打印機(jī)后,可在遠(yuǎn)程主機(jī)上使用本地的打印機(jī)。客戶端需要將本地打印機(jī)的型號(hào)

溫馨提示

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

評(píng)論

0/150

提交評(píng)論