6打印机映射连接模块:
RDP协议当前提供映射
5个设备,在我们破解过程中并没有区分出他们的区别,在此视为单一处理。打印机的连接在系统登录前完成,以配置操作系统信息。
6-1) 连接过程说明
包序号
|
接收发送
|
字符
|
含义
|
1
|
R
|
InDr
|
设备初始连接通知,说明可以连接申请
|
2
|
S
|
CCDr
|
客户端连接申请
|
3
|
S
|
CNDr
|
客户端名称注册
|
4
|
R
|
SPDr
|
服务器提供的设备接口说明
|
5
|
R
|
CCDr
|
服务器设备申请确认
|
6
|
S
|
CPDr
|
客户端设备提供的接口说明
|
7
|
S
|
DADr
|
客户端打印机映射申请
|
8
|
R
|
drDr
|
服务器打印机设备映射成功确认
|
6-2) 设备初始连接通知:
内容
|
字节数
|
值
(字节反存
)
|
层内数据长度
|
4
|
0x0000000c
|
标志
|
4
|
03 00 00 00,表示控制信息
|
ASCII信息
|
4
|
InDr
|
未知数据
1
|
2
|
01 00,可能是最少个数
|
未知数据
2
|
2
|
05 00,可能是最多个数
|
未知数据
3
|
2
|
ff ff
|
未知数据
4
|
ff ff
|
6-3) 客户端连接申请:
内容
|
字节数
|
值
(字节反存
)
|
层内数据长度
|
4
|
0x0000000c
|
标志
|
4
|
00 00 03 00,表示控制信息
|
ASCII信息
|
4
|
CCDr
|
未知数据
1
|
2
|
00 01,申请最少个数
|
未知数据
2
|
2
|
00 05,申请最多个数
|
未知数据
3
|
2
|
ff ff
|
6-4) 客户端名称注册:
内容
|
字节数
|
值
(字节反存
)
|
层内数据长度
|
4
|
XX
|
标志
|
4
|
00 00 03 00,表示控制信息
|
ASCII信息
|
4
|
CNDr
|
未知数据
1
|
4
|
41 02或
63 00
|
未知数据
2
|
2
|
bf 00 或
72 00
|
未知数据
3
|
4
|
00 00 00 00
|
主机名长度
|
4
|
XX,字符
2字节存储
|
主机名
|
长度
|
XX
|
6-5) 服务器提供的设备接口说明:
内容
|
字节数
|
值
(字节反存
)
|
层内数据长度
|
4
|
XX
|
标志
|
4
|
03 00 00 00,表示控制信息
|
ASCII信息
|
4
|
SPDr
|
设备个数
|
4
|
05 00 00 00
|
设备
1标识
|
2
|
01 00
|
设备
1信息长度
|
2
|
28 00,从标识开始计算
|
设备
1中未知数据
|
4
|
内容见下表
|
4组设备信息
|
8
|
每组只有标识号变化,
1可能表示有效
0x 00 08 00 01 00 00 00
|
设备
1中未知数据:
01 00 00 00
|
02 00 00 00
|
00 00 00 00
|
01 00 05 00
|
ff ff 00 00
|
00 00 00 00
|
03 00 00 00
|
00 00 00 00
|
00 00 00 00
|
|
6-6) 服务器设备申请确认:除标志反位存储外,其他都与
6-2)中所说相同。
6-7) 客户端设备提供的接口说明:除标志反位存储、
ASCII信息和设备
1信息中第
11字节值是
5之外,其他都与
6-2中所说相同。
6-8) 客户端打印机映射申请:
内容
|
字节数
|
值
(字节反存
)
|
层内数据长度
|
4
|
XX
|
标志
|
4
|
03 00 00 00,表示控制信息
|
ASCII信息
|
4
|
DADr
|
设备个数
|
4
|
01 00 00 00
|
设备
1标识
|
4
|
01 00
|
设备
1句柄
|
4
|
|
设备
1 ASCII信息
|
4
|
|
空位
|
4
|
|
此后数据长度
|
4
|
|
未知数据
1长度
|
4
|
|
未知数据
1
|
0x0a
|
|
驱动打印机名长度
|
8
|
|
空位
|
4
|
|
驱动名称
|
XX
|
|
打印机名称
|
XX
|
|
6-9) 服务器打印机设备映射成功确认:
内容
|
字节数
|
值
(字节反存
)
|
层内数据长度
|
4
|
XX
|
标志
|
4
|
03 00 00 00,表示控制信息
|
ASCII信息
|
4
|
drDr
|
设备句柄
|
4
|
01 00 00 00
|
空位
|
4
|
00 00 00 00
|
7 声音处理连接模块:
RDP协议需要单独的虚拟通道传递关于声音的数据。为了能够在本地播放声音,需要进行声音处理模块的连接,但只有要声音回放时才开始连接。连接的内容是:客户端对这些信息进行反馈,以在客户端与服务器之间确定相应的参数。
7-1) 连接过程说明:服务器首先发送一系列的关于声卡的设置参数,以及声音数据的网络格式信息,客户端对本地声卡进行测试并发回可支持的设置参数;服务器得到反馈后再发送测试数据,测试成功则反馈连接成功。
7-2) 声卡设置参数询问结构:
内容
|
字节数
|
值
(字节反存
)
|
层内数据长
|
4
|
XX
|
标志
|
4
|
03 00 00 00,表示控制信息
|
声音处理标志
|
1
|
07 表示声卡设置参数询问
|
未知数据
1
|
1
|
00
|
此后数据长度
|
2
|
XX
|
声音数据标志
|
4
|
07 00 00 00,表示此后是声卡参数
|
声音音量
|
4
|
f0 fa 8b 00
|
声音平衡量
|
4
|
E8 20 f3 77
|
UDP端口?
|
2
|
5a ae
|
声卡参数组数
|
2
|
XX
|
未知数据
2
|
1
|
ff
|
状态值
|
2
|
05 00
|
未知数据
3
|
1
|
76
|
XX组声卡参数
|
XX*18
|
XX
|
声卡参数结构:
内容
|
字节数
|
值
(字节反存
)
|
声道数
|
2
|
1或
2
|
频率
|
4
|
|
nAvgBttesPerSec
|
4
|
|
nBlockAlign
|
2
|
|
wBitsPerSample
|
2
|
|
cbSize
|
2
|
|
7-3) 声卡设置参数反馈结构:
内容
|
字节数
|
值
(字节反存
)
|
层内数据长
|
4
|
XX
|
标志
|
4
|
03 00 00 00,表示控制信息
|
声音处理标志
|
1
|
07 表示声卡设置参数反馈
|
未知数据
1
|
1
|
00
|
此后数据长度
|
2
|
XX
|
声音数据标志
|
4
|
03 00 00 00,表示此后是声卡参数反馈
|
声音音量
|
4
|
80 4d 80 4d
|
声音平衡量
|
4
|
00 00 00 00
|
UDP端口?
|
2
|
04 0e?
|
声卡参数级数
|
2
|
XX
|
未知数据
2
|
1
|
00
|
状态值
|
2
|
02 00
|
未知数据
3
|
1
|
00
|
XX组声卡参数
|
XX*18
|
XX
|
7-2) 声卡测试结构:
内容
|
字节数
|
值
(字节反存
)
|
层内数据长
|
4
|
XX
|
标志
|
4
|
03 00 00 00,表示控制信息
|
声音处理标志
|
1
|
06 表示声卡设置参数测试
|
未知数据
1
|
1
|
23
|
此后数据长度
|
2
|
XX
|
声音数据标志
1
|
2
|
16 d4
|
声音数据标志
2
|
2
|
00 04
|
测试数据
|
XX
|
XX
|
7-2) 声卡测试反馈结构:
内容
|
字节数
|
值
(字节反存
)
|
层内数据长
|
4
|
08 00 00 00
|
标志
|
4
|
03 00 00 00
|
操作标志
|
2
|
06 00 表示接收反馈
|
其后数据长度
1
|
2
|
04 00
|
声音数据标志
1
|
2
|
16 d4
|
声音数据标志
2
|
2
|
00 04
|
此博文原地址为:http://blog.chinaunix.net/u/2244/showart_2154208.html