抓取二进制数据

博客展示了使用Python爬取图片的情况,运行结束后文件夹中出现名为favicon.ico的图标,并给出了转载链接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

爬取图片:

import requests

r = requests.get("https://github.com/favicon.ico")
with open('favicon.ico', 'wb') as f:
    f.write(r.content)

运行结束之后,可以发现在文件夹中出现了名为 favicon.ico 的图标,如图 3-5所示:

图 3-5 图标

转载于:https://www.cnblogs.com/moguxican/p/11160416.html

<think>嗯,用户问的是关于RDP协议按字节分析二进制数据流。我得先回忆一下RDP协议的基础知识。RDP是远程桌面协议,用于远程控制计算机。它的数据流是二进制的,所以需要解析字节结构。 首先,用户可能需要了解RDP协议的数据包结构。通常协议数据单元(PDU)由包头和有效载荷组成。包头可能包含类型、长度等信息,有效载荷是具体的数据。例如,连接初始化阶段可能有不同的PDU类型,比如Client X.224 Connection Request PDU和Server X.224 Connection Confirm PDU。 接下来,需要解释如何按字节解析。比如,X.224 TPKT头,前三个字节可能是版本和长度。比如第一个字节是版本,接下来两个字节是长度,使用大端序。然后X.224 COTP(连接导向传输协议)的字节,比如第一个字节是长度,第二个字节是PDU类型,如连接请求是0xE0。 然后,RDP协商过程的数据流可能包括Security Exchange、Client Info等。每个部分都有特定的结构。例如,Security Exchange中的Client Random可能是一个32字节的随机数,后面跟着加密数据。 还要提到实际分析工具,比如Wireshark可以包,但用户可能需要手动解析二进制数据。这时候需要参考RDP的官方文档或协议规范,比如MS-RDPBCGR,了解每个字段的偏移量和含义。 用户可能的应用场景包括安全分析、漏洞研究或协议开发。需要注意字节序、字段长度、标志位的位置。例如,某些标志位可能用位域表示,需要按位解析。 另外,加密部分的数据可能需要解密后才能分析,这涉及到RDP的加密协议,比如TLS或CredSSP。这部分可能比较复杂,因为需要解密密钥。 最后,给出一个示例解析可能会帮助用户理解。比如,抓取一个RDP数据包,按字节分解每个部分,说明每个字节代表的含义,如版本号、长度、PDU类型等。 总结下来,回答的结构应该是先介绍RDP协议和数据流结构,然后分步骤讲解如何按字节解析,结合具体例子,最后提到工具和注意事项,确保用户能够逐步理解和应用。</think>RDP(远程桌面协议)的二进制数据流分析需要结合协议规范逐字节解析。以下是结构化分析步骤: 1. **协议分层** RDP协议栈采用分层结构: $$OSI层 \rightarrow TPKT \rightarrow X.224 \rightarrow RDP层$$ 每层通过特定字节标识: - TPKT头:3字节(版本+长度) - X.224 COTP:包含PDU类型标识 2. **关键字节结构分析** ▌示例数据包头解析(16进制): ``` 03 00 00 13 0E E0 00 00 00 00 00 01 00 08 00 03 00 00 00 ``` - **TPKT层**(前3字节): - `03`:TPKT版本3 - `00 13`:总长度19字节(大端序) - **X.224层**(后续字节): - `0E`:COTP长度14字节 - `E0`:连接请求PDU类型 3. **RDP核心协议解析** 典型协商过程字节特征: ``` Security Header (4字节): 00000000 03 00 00 2c // TPKT头部 00000004 02 f0 80 // X.224 Data PDU 00000007 64 00 // Security header flags 00000009 01 00 00 00 // 加密方法标识 ``` 4. **动态通道协商** 通道创建请求结构: ``` Channel PDU Header (8字节): Flags (1): 0xA0 (CHANNEL_FLAG_FIRST|CHANNEL_FLAG_LAST) ChunkSize (3): 00 08 00 ChannelId (2): 03 EB (动态分配) ``` 5. **图形指令解析** 位图数据压缩标记示例: ``` 00 00 // 压缩类型RDP6 F9 03 // 压缩后长度1017 00 00 00 00 // 目标位置坐标 ``` **分析工具建议:** 1. 使用Wireshark的RDP解析插件 2. 结合Microsoft官方文档[MS-RDPBCGR] 3. 注意字节序转换(特别是16/32位字段) **实际案例分析:** 当观察到`0xCA 0xFE`字节序列时,可能表示RDP安全Cookie交换阶段。需结合上下文判断: - 位于握手阶段:通常是加密参数协商 - 位于会话中期:可能涉及重新认证过程 **重点注意事项:** 1. 加密数据段需解密后才能解析 2. 注意协议版本差异(RDP 5.1到10.0的演进) 3. 动态虚拟通道使用单独协议栈 建议通过协议状态机模型进行逆向分析,结合包工具实时验证字节流变化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值