`
qimo601
  • 浏览: 3439488 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

RDP协议详细解析(三)

阅读更多
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 00r->RDP”,s->MSTSC
参数信息
2
r->0b 00s->0d
空位
2
3000
详细各组参数
组数
内容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 00OS major type
系统次类型
2
03 00OS minor type
协议版本号
2
02 00protocol 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

分享到:
评论

相关推荐

    RDP协议RFC英文文档

    本文将详细解析文档中的关键知识点,包括RDP协议的背景介绍、更新内容以及这些变化的原因。 #### 二、RDP协议简介 RDP协议是一种面向连接的数据传输协议,旨在提供一种可靠的端到端数据传输服务。它通过一系列机制...

    NC环境中的RDP协议解析

    ### NC环境中的RDP协议解析 #### 一、NC环境基础介绍 ##### 1.1 基本概念与工作原理 网络计算机(Network Computer,简称NC),是一种依赖网络提供大部分资源来运行的终端计算机。它摒弃了传统PC中的硬盘、软盘...

    RDP协议开发源码

    开源项目FreeRDP是实现RDP协议的一个重要实现,它提供了一个跨平台的远程桌面客户端,支持多种操作系统,包括Windows、Linux、macOS等。 FreeRDP源码解析: 1. **项目结构**: FreeRDP的源码结构通常包含多个模块...

    windows 协议RDP

    结合提供的文档,"RDP解析"可能详细讲解了上述各部分的工作原理和交互流程。通过阅读这些文档,你可以深入了解RDP如何处理数据包,如何进行安全通信,以及如何优化远程桌面体验。虽然RDP协议分析可能涉及的技术细节...

    FreeRdp源码分析.7z

    RDP协议支持多种可选通道,如剪贴板、音频、打印等。在FreeRDP中,这些通道由独立的模块实现,每个模块负责特定的功能。在连接过程中,客户端会根据配置决定哪些通道需要开启,并调用相应的初始化函数来建立这些...

    linux下,远程桌面FreeRDP 源码

    1. RDP协议:FreeRDP实现了微软的远程桌面协议,这是一种用于远程桌面访问的标准,支持多种功能,如音频播放、打印、文件传输等。RDP协议在不断演进,FreeRDP需要跟进行业标准,确保与最新版本的服务器兼容。 2. ...

    FreeRDP-Configuration-Manual_FreeRDP_

    FreeRDP支持RDP协议的安全层,包括TLS和NLA(网络级身份验证)。这些安全措施确保了数据传输的隐私和完整性。 ### 8. 多平台支持 FreeRDP的跨平台特性使其成为移动设备和嵌入式系统的理想选择。例如,可以在...

    远程桌面RDP源代码.rar

    RDP协议由多个子组件组成,如输入、输出、会话管理等,这些都可能在这个文件中找到。 4. **orders.c**:RDP订单(Orders)是RDP中用于描述图形操作的一种编码方式,比如绘制文本、线条、矩形等。这个文件应该实现了...

    rdp-rs:RUST中的远程桌面协议

    另一方面,没有安全的开源RDP协议实现。 最后,我想构建一个高度安全,跨平台和高度可定制的客户端。 安装 要将rdp-rs用作项目中的库,请将以下内容添加到Cargo.toml : [dependencies] rdp-rs = "0.1.0" 您可以...

    rdp框架开发

    1. **协议理解与解析**:深入理解RDP协议的工作原理是开发的基础。这包括但不限于如何建立连接、数据传输方式等。 2. **安全机制**:RDP框架的安全性至关重要。开发过程中需要考虑加密算法的选择、认证机制的设计等...

    rdp文件中密码的生成

    RDP(Remote Desktop Protocol)是微软提供的一种远程桌面连接协议,允许用户通过网络访问和控制远程计算机。在处理RDP文件时,有时我们需要在其中设置密码以便安全地进行远程访问。RDP文件实际上是一个文本文件,...

    易语言源码易语言rdp加解密源码.rar

    3. **协议解析**:RDP协议有自己的数据结构和报文格式,源码会展示如何解析和构建这些报文,以便正确地与远程桌面服务进行交互。 4. **事件驱动编程**:易语言支持事件驱动编程模型,源码中可能包含事件的定义和...

    RDP英文文档

    RDP协议的核心在于其分层结构,主要包括数据封装、传输和会话管理等几个关键部分。在数据封装层,RDP将用户的键盘输入、鼠标移动和屏幕显示等操作转化为数据包进行传输。这些数据包经过压缩和加密处理,确保了数据的...

    wince6 RDP 源码

    同时,它还处理用户的输入事件,如键盘、鼠标操作,将这些事件编码成RDP协议数据包,然后发送回远程服务器。 在源码中,开发者可以找到以下关键模块: 1. 连接管理:建立和维护RDP连接,包括身份验证、会话初始化...

    编程+RDP协议+微软资源

    对于非开发者的用户信息,如果是在寻找关于Remote Desktop连接的常见问题解答,可以参考微软提供的“Remote Desktop Connection: frequently asked questions”文档,这将提供更面向用户的指导。 总的来说,RDS和...

    Windows XP RDP 升级到7.0补丁

    远程桌面协议(Remote Desktop Protocol,简称RDP)是微软操作系统内置的一种远程控制协议,它允许用户通过网络连接到另一台计算机并进行交互操作。在Windows XP系统中,原生支持的RDP版本为5.2,然而随着技术的发展...

    RDP远程登陆客户端开发教程.rar

    在C++和C#中实现RDP客户端功能涉及多个关键知识点,包括网络通信、协议解析和图形界面设计。 1. **网络通信基础**:RDP客户端首先需要与远程服务器建立TCP连接。这涉及到套接字编程,理解TCP/IP协议栈的工作原理,...

Global site tag (gtag.js) - Google Analytics