微信业务原理分析.docVIP

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
微信业务原理分析 微信业务原理分析 随着通信技术和移动互联网飞速发展,移动互联网应用也越来越丰富多彩,以微信为代表的IM类应用最为流行。微信作为一款手机聊天软件,通过网络快速发送图片、文字和视频等,支持多人群聊。微信存在多种不同的操作对应着不同的场景,通过捕获微信在移动网络中的用户行为特征,重点开展微信登陆、微信收发图片、文字、视频等重要操作场景的分析,分析微信的操作业务信令过程,指导并制定相应的业务评估指标 ,为运营商优化网络提供参考。 当前使用的IM系统大都组合使用了C/S和P2P模式。在登陆IM进行身份认证阶段是工作在C/S方式,随后如果客户端之间可以直接通信则使用P2P方式工作,否则以C/S方式通过IM服务器通信微信的通信原理如下图: 1、微信登陆 微信登陆用户常用的方式分为二种:一种为不需要输入密码的直接登陆,另外一种是用户输入用户名和密码。通过流程分析,两种登陆方式都有登陆动作特征。打开后台运行的微信,不属于微信登陆过程,因此该过程不计入微信登陆。微信登录使用了TCP 80端口或者TCP 443端口进行通讯。 1.1 微信登陆流程 打开 微信客户端,用户输入用户名和密码,点击登陆,完成登陆过程。IM服务器通过读取用户数据库来验证用户身份,如果验证通过则会进行后续的信息交互,包括获取用户列表、新信息、设备信息更新等。登陆过程基于TCP/IP协议,如下: 微信登陆成功,例如输入正确的密码:(后台运行的登陆再抓包测试) TCP三次握手过程 微信登陆动作 微信登陆过程都是在一个TCP流里实现,首先客户端发送微信登陆动作标识消息给服务器端,接着客户端接收服务器端回送回登陆动作标识消息,从客户端来看,一次微信登陆过程会有登陆动作的一发一收的完整过程。微信登陆过程重点还需针对TCP流的登陆特征字进行动作分析,识别登陆过程,并判断登陆过程的成功或者失败。 微信登陆失败,例如输入错误的密码: 微信登陆动作 微信登陆失败过程也是在同一个TCP流里实现,失败登陆过程也会有登陆动作的一发一收的完整过程,表面上与成功过程的特征字是一样的,从动作上无法识别出成功或者失败。由于数据是加密的,失败原因无法解析出来,因此从TCP流的登陆消息的数据头中识别出成功和失败的特点。特征码识别详细见下节分析。 1.2 微信登陆动作特征码识别 通过多次抓包测试,包括登陆成功和登陆失败,对特征字的分析提炼,微信登陆特征字的识别只需带有数据段的报文进行分析。对微信登陆业务的流程报文每个字节的值进行统计分析,遍历32个字节,数据段可识别报文发送的方向、报文的长度、报文的动作、对方微信号、本机用户微信号、后续所有payload。总结出以下微信登陆的动作过程识别。 登陆请求识别码为:00 10 00 01 00 00 00 b2 00 00 00 02,如下 登陆确认识别码为:00 10 00 01 3b 9a ca b2 00 00 00 02,如下 登陆成功和失败的区别可以从服务器端回送给客户端的动作识别消息中提取到差异。当微信登陆成功时,服务器会回送给客户端其在服务器端的对应微信号,而当登陆失败时,服务器端则回送给客户端所对应的微信号为0。 1.3 微信登陆建立成功后数据交互 微信登陆建立成功后,客户端会向服务端发起多个HTTP业务请求,请求依据系统及版本的不同有所差异,如下例子,包括有getcontactlabellist、iphonereg、getpackagelist、reportstrategy、getboundharddevices、oplog、mmsnssync等,不同用户不同场景下登陆对HTTP业务请求会稍有不同。而微信登陆失败则不会有后续的客户端会向服务端发起多个HTTP业务请求。 例子中发起了12个HTTP请求,登陆后进行了12对HTTP的交互,以上过程都是在TCP短连接中完成,短连接HOST为, 。 微信的连接包括两类连接:有短连接和长连接,短连接运行在80端口,HTTP BODY是二进制数据,提供用户验证、好友添加、好友获取、用户图像、行为日志上报等,如上的登陆后的交互信息。长连接提供接受\\发送文本消息、接受\\发送语音、接受\\发送图片、接受\\发送视频文件等。 1.4 业务登陆成功率 业务登陆成功率%:用户输入账号、密码点击登陆或者直接

文档评论(0)

y31245 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档