RDP协议详细解析(三)
4 系统初始连接模块:当通道申请各部分通过后,开始系统登录的初始连接。从此数据包开始,所以虚拟通道层以上的网络数据都需要加密,详细的加密功能实现请参见加密模块。登录的网络信息结构如下:内容字节数值(字节反存)加密层及以下XXXX空闲字节40x00000000自动登录标志4正常:0x33,自动:0x28域名长度2若空为0,有值则乘2用户名长度2若空为0,有值则乘2密码长度2若空为0,有值则乘2登录程序长度2若空为0,有值则乘2登录路径长度2若空为0,有值则乘2域名值域名长度+22字节反存1字符,最后为2字节为0x0000用户名值用户名长度+22字节反存1字符,最后为2字节为0x0000密码字符值密码长度+22字节反存1字符,最后为2字节为0x0000登录程序名称登录程序长度+22字节反存1字符,最后为2字节为0x0000登录路径值登录路径长度+22字节反存1字符,最后为2字节为0x00005 图形连接模块:在图形数据发送之前,服务器需要对此功能模块验证,验证内容是所有与图形相关的信息,包括鼠标设置、键盘输入、字体类型、画图命令格式、图形显示的各种类型。根据已破解的信息显示,RDESKTOP原来并没有正确的赋值,因为它的返回值是没有固定的,对于服务器发送来的信息没有处理,而服务器在其关于图形方面的参数设置询问没有得到正确的回答时,则以固定的服务器端的参数进行设置。5-1) 连接过程说明:服务器端首先发送关于图形方面的基本参数设置,客户端应该对这些设置进行反馈。此后rdesktop的处理是顺序发送同步信息,两个控制信息包,一个输入信息包,两个字体信息包;同时顺序接收一个同步信息包,两控制信息包,一个未知信息包;但redsktop并没有对接2收的信息包进行处理。5-2)基本参数设2置信息包结构:内容字节数值(字节反存)加密层及以下XXXX层后数据长度2XX数据类型标志211 00,表示是图形信息连接确认基本通道号2ea 03,固定基本通道号2ea 03,固定(share?)未知数据1201 00ASCII信息长度2XX基本参数长度2XXASCII信息长度值+152 44 50 00,r->“RDP”,s->“MSTSC”参数信息2r->0b 00,s->0d空位230或00详细各组参数组数内容XX5-3) 详细参数信息组类别:每个类型的数据前2字节为类型,然后是长度,数据。以接收到优先作例介绍。类型值说明01r通用类型(general)02r位图类型(bitmap)03r命令(order)04位图缓存(bitmap cache)05控制(control)07活动(active)08r指针(pointer)09r共享(share)0ar颜色缓存(color cache)0c未知0dr未知0e未知10未知12r未知14r未知16r未知40未知00r未知5-3-1) 通用类型(general->01)内容字节数值(字节反存)系统主类型201 00,OS major type系统次类型203 00,OS minor type协议版本号202 00,protocol version空数据1200 00压缩类型200 00不压缩空数据221d 04更新属性200 00共享属性200 00压缩级别200 00空数据3201 015-3-2) 位图类型(bitmap->02)内容字节数值(字节反存)最佳颜色深度2协商值1颜色深度201 00 2颜色深度201 003颜色深度201 00桌面宽度2width桌面高度2height空位1200 00允许调整大小201 00位图压缩201 00未知数据1200 00未知数据2201 00空位2200 005-3-3) 命令(order->03)内容字节数值(字节反存)Terminal desc1160值Terminal desc2410 42 0f 00缓存X间隔201 00缓存Y间隔214 00未知数据1200 00最大命令级别201 00字体数目200 00容量标志222 00命令支持格式32另见文本容量标志2a1 06未知数据2600 00 40 42 0f 00桌面缓存大小440 42 0f 00未知数据3401 00 00 00未知数据4400 00 00 00命令支持格式说明:共32个标志,只对已知标志进行说明。字节位置,0-31值含义,1代表支持,0代表不支持0Dest blt1Pat blt2Screen blt3Required for memblt8Line19Line210Rect11Desktop save13Memblt14Triblt22Polyline27Text25-3-4) 位图缓存(bitmap cache->04)内容字节数值(字节反存)未使用数据1240值Entries258 02Max cell size200 01Entries22c 01Max cell size200 04Entries206 01Max cell size200 105-3-5) 控制(control->05)内容字节数值(字节反存)Control capability200 00Remote detach200 00Control interest202 00Detach interest202 005-3-6) 活动(activer->07)内容字节数值(字节反存)Help key200 00Help index key200 00Extended help key200 00Window active200 005-3-7) 指针(pointer->08)内容字节数值(字节反存)Color pointer201 00Cache size219 00未知数据1219 005-3-8) 共享(share->09)内容字节数值(字节反存)基本通道号2ea 03未知数据127d e15-3-9) 颜色缓存(color cache->0a)内容字节数值(字节反存)缓存大小206 00未知数据127d e15-3-10) 未知类型->d 收到:内容字节数值(字节反存)未知数据11235 00 00 00 a1 06 00 00? 40 42 0f 00未知数据21240 42 0f 00? 44 e6 0a ba? 93 53 19 ba未知数据31208 60 03 e1? 6a 05 1a ba? 4c e6 0a ba未知数据4124c a4 7d e1? 08 a0 7d e1? 01 00 00 00未知数据51208 a4 7d e1? 00 00 00 00? 44 e6 0a ba未知数据61254 f2 19 ba? 08 a0 7d e1? 38 e6 0a ba未知数据71200 00 00 00? 08 00 0a 00? 01 00 19 005-3-11) 未知类型->12 收到:内容字节数值(字节反存)未知数据1201 00未知数据2200 005-3-12) 未知类型->14 收到:内容字节数值(字节反存)未知数据1202 00未知数据2200 005-3-13) 未知类型->16 收到:内容字节数值(字节反存)未知数据11201 00 00 00? 6e 01 00 00? 01 00 00 00未知数据212d0 07 40 bf? 01 b0 83 bf? 00 00 00 00未知数据312a4 e6 0a ba? 5c db 4f 80? e6 01 00 00
?
?
此博文原地址为:http://blog.chinaunix.net/u/2244/showart_2154207.html