【协议分析】PC QQ协议聊天内容破解

本文介绍了QQ通信协议的基础,强调了UDP和TCP协议在QQ中的使用,特别是聊天内容解密的关键——SessionKey的获取过程。通过登录验证报文Login verify的加密解密流程,展示了如何利用用户密码通过MD5运算获取解密密钥,从而解密聊天记录。作者提醒,此技术分析仅出于技术兴趣,不应用于非法目的。
摘要由CSDN通过智能技术生成
背景
QQ,一个通信工具,号称拥有N亿,现在注册QQ已经是10位数了,如果QQ注册的号码是不断递增的话,那么QQ应该已经被注册了至少10亿次。在中国,只要你是经常上网的网民,手中必须得有一个QQ号,当然你也可以没有,但你的朋友、同学、亲戚、同事全都有,大家都通过QQ进行沟通,你不用,要沟通多不方便啊。
作为一个通信工具,必定涉及到网络通信协议。由于腾讯基于QQ这个产品承载了很多业务,要将协议全部分析完全就需要相当大的工作量了,而且没有这个必要。今天就拿QQ中最基本的聊天协议进行分析一下。
协议
QQ协议首选的传输层协议是UDP,如果UDP不可用,那么会再尝试使用TCP进行传输。UDP使用的端口是8000(0x1F40),TCP使用的端口是443(0x1BB)。
QQ协议中每个通信包都有一个协议头部,如图:

使用结构体可以这样表示:
typedef struct _QQ_DATA_HEAD
{
uchar ucFlag;
ushort usVer;
ushort usCmd;
ushort usSeq;
uint  uiSender;
} QQ_DATA_HEAD, *PQQ_DATA_HEAD;

在进行协议还原的时候,我们最关心的就是协议头部的命令字&
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值