4 系统初始连接模块:
当通道申请各部分通过后,开始系统登录的初始连接。从此数据包开始,所以虚拟通道层以上的网络数据都需要加密,详细的加密功能实现请参见加密模块。登录的网络信息结构如下:
内容
|
字节数
|
值
(字节反存
)
|
加密层及以下
|
XX
|
XX
|
空闲字节
|
4
|
0x00000000
|
自动登录标志
|
4
|
正常:
0x33,自动:
0x28
|
域名长度
|
2
|
若空为
0,有值则乘
2
|
用户名长度
|
2
|
若空为
0,有值则乘
2
|
密码长度
|
2
|
若空为
0,有值则乘
2
|
登录程序长度
|
2
|
若空为
0,有值则乘
2
|
登录路径长度
|
2
|
若空为
0,有值则乘
2
|
域名值
|
域名长度
+2
|
2字节反存
1字符,最后为
2字节为
0x0000
|
用户名值
|
用户名长度
+2
|
2字节反存
1字符,最后为
2字节为
0x0000
|
密码字符值
|
密码长度
+2
|
2字节反存
1字符,最后为
2字节为
0x0000
|
登录程序名称
|
登录程序长度
+2
|
2字节反存
1字符,最后为
2字节为
0x0000
|
登录路径值
|
登录路径长度
+2
|
2字节反存
1字符,最后为
2字节为
0x0000
|
5 图形连接模块:
在图形数据发送之前,服务器需要对此功能模块验证,验证内容是所有与图形相关的信息,包括鼠标设置、键盘输入、字体类型、画图命令格式、图形显示的各种类型。
根据已破解的信息显示,
RDESKTOP原来并没有正确的赋值,因为它的返回值是没有固定的,对于服务器发送来的信息没有处理,而服务器在其关于图形方面的参数设置询问没有得到正确的回答时,则以固定的服务器端的参数进行设置。
5-1) 连接过程说明:服务器端首先发送关于图形方面的基本参数设置,客户端应该对这些设置进行反馈。此后
rdesktop的处理是顺序发送同步信息,两个控制信息包,一个输入信息包,两个字体信息包;同时顺序接收一个同步信息包,两控制信息包,一个未知信息包;但
redsktop并没有对接
2收的信息包进行处理。
5-2)基本参数设
2置信息包结构:
内容
|
字节数
|
值
(字节反存
)
|
加密层及以下
|
XX
|
XX
|
层后数据长度
|
2
|
XX
|
数据类型标志
|
2
|
11 00,表示是图形信息连接确认
|
基本通道号
|
2
|
ea 03,固定
|
基本通道号
|
2
|
ea 03,固定
(share?
)
|
未知数据
1
|
2
|
01 00
|
ASCII信息长度
|
2
|
XX
|
基本参数长度
|
2
|
XX
|
ASCII信息
|
长度值
+1
|
52 44 50 00,
r->“
RDP”,
s->“
MSTSC”
|
参数信息
|
2
|
r->0b 00,
s->0d
|
空位
|
2
|
30或
00
|
详细各组参数
|
组数
|
内容
XX
|
5-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)
内容
|
字节数
|
值
(字节反存
)
|
系统主类型
|
2
|
01 00,
OS major type
|
系统次类型
|
2
|
03 00,
OS minor type
|
协议版本号
|
2
|
02 00,
protocol version
|
空数据
1
|
2
|
00 00
|
压缩类型
|
2
|
00 00不压缩
|
空数据
2
|
2
|
1d 04
|
更新属性
|
2
|
00 00
|
共享属性
|
2
|
00 00
|
压缩级别
|
2
|
00 00
|
空数据
3
|
2
|
01 01
|
5-3-2) 位图类型
(bitmap->02)
内容
|
字节数
|
值
(字节反存
)
|
最佳颜色深度
|
2
|
协商值
|
1颜色深度
|
2
|
01 00
|
2颜色深度
|
2
|
01 00
|
3颜色深度
|
2
|
01 00
|
桌面宽度
|
2
|
width
|
桌面高度
|
2
|
height
|
空位
1
|
2
|
00 00
|
允许调整大小
|
2
|
01 00
|
位图压缩
|
2
|
01 00
|
未知数据
1
|
2
|
00 00
|
未知数据
2
|
2
|
01 00
|
空位
2
|
2
|
00 00
|
5-3-3) 命令
(order->03)
内容
|
字节数
|
值
(字节反存
)
|
Terminal desc1
|
16
|
0值
|
Terminal desc2
|
4
|
10 42 0f 00
|
缓存
X间隔
|
2
|
01 00
|
缓存
Y间隔
|
2
|
14 00
|
未知数据
1
|
2
|
00 00
|
最大命令级别
|
2
|
01 00
|
字体数目
|
2
|
00 00
|
容量标志
|
2
|
22 00
|
命令支持格式
|
32
|
另见
|
文本容量标志
|
2
|
a1 06
|
未知数据
2
|
6
|
00 00 40 42 0f 00
|
桌面缓存大小
|
4
|
40 42 0f 00
|
未知数据
3
|
4
|
01 00 00 00
|
未知数据
4
|
4
|
00 00 00 00
|
命令支持格式说明:共
32个标志,只对已知标志进行说明。
字节位置,
0-31
|
值含义,
1代表支持,
0代表不支持
|
0
|
Dest blt
|
1
|
Pat blt
|
2
|
Screen blt
|
3
|
Required for memblt
|
8
|
Line1
|
9
|
Line2
|
10
|
Rect
|
11
|
Desktop save
|
13
|
Memblt
|
14
|
Triblt
|
22
|
Polyline
|
27
|
Text2
|
5-3-4) 位图缓存
(bitmap cache->04)
内容
|
字节数
|
值
(字节反存
)
|
未使用数据
1
|
24
|
0值
|
Entries
|
2
|
58 02
|
Max cell size
|
2
|
00 01
|
Entries
|
2
|
2c 01
|
Max cell size
|
2
|
00 04
|
Entries
|
2
|
06 01
|
Max cell size
|
2
|
00 10
|
5-3-5) 控制
(control->05)
内容
|
字节数
|
值
(字节反存
)
|
Control capability
|
2
|
00 00
|
Remote detach
|
2
|
00 00
|
Control interest
|
2
|
02 00
|
Detach interest
|
2
|
02 00
|
5-3-6) 活动
(activer->07)
内容
|
字节数
|
值
(字节反存
)
|
Help key
|
2
|
00 00
|
Help index key
|
2
|
00 00
|
Extended help key
|
2
|
00 00
|
Window active
|
2
|
00 00
|
5-3-7) 指针
(pointer->08)
内容
|
字节数
|
值
(字节反存
)
|
Color pointer
|
2
|
01 00
|
Cache size
|
2
|
19 00
|
未知数据
1
|
2
|
19 00
|
5-3-8) 共享
(share->09)
内容
|
字节数
|
值
(字节反存
)
|
基本通道号
|
2
|
ea 03
|
未知数据
1
|
2
|
7d e1
|
5-3-9) 颜色缓存
(color cache->0a)
内容
|
字节数
|
值
(字节反存
)
|
缓存大小
|
2
|
06 00
|
未知数据
1
|
2
|
7d e1
|
5-3-10) 未知类型
->d 收到:
内容
|
字节数
|
值
(字节反存
)
|
未知数据
1
|
12
|
35 00 00 00 a1 06 00 00 40 42 0f 00
|
未知数据
2
|
12
|
40 42 0f 00 44 e6 0a ba 93 53 19 ba
|
未知数据
3
|
12
|
08 60 03 e1 6a 05 1a ba 4c e6 0a ba
|
未知数据
4
|
12
|
4c a4 7d e1 08 a0 7d e1 01 00 00 00
|
未知数据
5
|
12
|
08 a4 7d e1 00 00 00 00 44 e6 0a ba
|
未知数据
6
|
12
|
54 f2 19 ba 08 a0 7d e1 38 e6 0a ba
|
未知数据
7
|
12
|
00 00 00 00 08 00 0a 00 01 00 19 00
|
5-3-11) 未知类型
->12 收到:
内容
|
字节数
|
值
(字节反存
)
|
未知数据
1
|
2
|
01 00
|
未知数据
2
|
2
|
00 00
|
5-3-12) 未知类型
->14 收到:
内容
|
字节数
|
值
(字节反存
)
|
未知数据
1
|
2
|
02 00
|
未知数据
2
|
2
|
00 00
|
5-3-13) 未知类型
->16 收到:
内容
|
字节数
|
值
(字节反存
)
|
未知数据
1
|
12
|
01 00 00 00 6e 01 00 00 01 00 00 00
|
未知数据
2
|
12
|
d0 07 40 bf 01 b0 83 bf 00 00 00 00
|
未知数据
3
|
12
|
a4 e6 0a ba 5c db 4f 80 e6 01 00 00
|
此博文原地址为:http://blog.chinaunix.net/u/2244/showart_2154207.html