协议分析TMP

发布时间:2017-3-26 1:35:05 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"协议分析TMP ",主要涉及到协议分析TMP 方面的内容,对于协议分析TMP 感兴趣的同学可以参考一下。

协议分析TMP

最近闲来有事, 分析了一个非常低端(非常低端的意思是说你不应该对她是否能取代你现有的QQ客户端作任何可能的奢望,她只是一个实验性的东西)的手机QQ的协议, 是手机QQ3.0, 
     所用到的TCP/HTTP通信协议版本是1.4, 也不知道是哪一年release的了, 至少有七八年的历久了吧, 反正就是: 功能非常弱!

    主要的分析原因是想学学网络方面的编程经验(这是我第2次弄socket编程 :-) ), 以及学学怎么抓包分析.

主要用到的工具软件

        手机QQ3.0: http://www.ruan8.com/soft_5872.html

        kEmulator(Java模拟器):http://gamevina.us/kemulator-vh/

        Wireshark(协议分析):http://www.wireshark.org/download.html

        Java Decompiler(Java查看(和谐)工具):http://jd.benow.ca/

分析流程简要介绍

1.获取服务器信息

     网上分析这个版本手机QQ的用户不在少数, 我也了解到这个版本比较容易分析, 协议简单, 所以...

     首先, 打开这个网址:http://conf.3g.qq.com/newConf/kjava/aubin2.jsp

(注意使用unicode编码查看, 否则可能乱码) 然后你就会看到类似下面的东西:

SERERCONFIG_NUM=5& SERVERCONFIG_TYPE=KQQTCP,KQQTCP,KQQHTTP,KQQHTTP,KQQHTTP& SERVERCONFIG_URL=socket://58.60.12.177:14000,socket: //211.136.236.88:14000,http://tqq.tencent.com:8000,http: //mconn.tencent.com:14000,http: //kconn.tencent.com:21001&UPDATAECONFIG_NUM=1& UPDATECONFIG_VERSION=2.4.2&UPDATECONFIG_MUST=N& UPDATECONFIG_URL=http://mq.3g.qq.com/g/s?aid=mqq& UPDATECONFIG_HELPTXT=请升级到2.4.3版QQ2005(Java 版)&SMSSERVICE_NUM=2&SMSSERVICE_NAME=24小时在线,关注好友& SMSSERVICE_ADDRESS=10661700,1066170056& SMSSERVICE_TEXT=HQ,SQKJ%2c||QQNO||&SMSSERVICE_HELPTXT=不用手机上网,通过短信就能登陆QQ,累积在线时间真是方便,让你QQ等级不停增长!%0a当前操作需要通过短信操作完成,选择取定将发送一条短信,请根据收到的短信提示完成操作!, 关注此QQ好友,好友一上QQ马上就会有短信通知你手机!随时随地和TA在QQ上“偶遇”,资费10元/月。%0a当前操作需要通过短信操作完成,选择确定将发送一条短信,请根据收到的短信提示完成操作。

其中:

        SERERCONFIG_NUM表示目前可以使用的服务器的个数 
        SERVERCONFIG_TYPE表示服务器类型:KQQTCP表示TCP服务器,KQQHTTP表示HTTP服务器 
        SERVERCONFIG_URL:服务器地址 
        ......(不重要)

注意:各值以逗号分隔; 键值对间使用&符号连接.

至于手机QQ要使用哪个服务器, 现在还不知道, 反正是其中一个, 过滤试一下就知道了.

2.过滤通信协议

先打开Wireshark进行网络封包过滤: 选择一张活动网卡, 然后start.

开始过滤

应该马上就可以看到,  wireshark已经显示了很多数据包... 数据太多, 不便查看, 于是过滤显示一下,

以QQ的第一个tcp服务器为例: 在Wireshark的Filter Expression里面输入过滤表达式, 并点击Apply应用:

 Apply Filter Expr

用kEmulator运行手机QQ并登录:

QQLoginProcess

接下来, 如果QQ使用了第一个服务器的话, 那么Wireshark将会显示以下信息:

LoginFilter

没错, 你没有看错, 协议可以说全部是明文的, 完全就像是HTTP那样的...

比如VER=1.4代表版本号为1.4, CMD=Login表示命令为登录, UIN=***表示QQ...............

3.协议分析

    好了, QQ和服务器的所有通信都是基于这种HTTP的键值对方式, 下面列出一些常见的键值对:

VER=1.4表示当前使用的协议版本, 不过服务器返回的版本可能有所不一致
CON=1这个不知道是什么意思, 通过查看QQ的代码可见其貌似是固定值1
CMD=***当前的命令, 有Login, Logout, Query_Stat2等等.
SEQ=***当前命令的序列号, 以此来标识不同的命令序号, 每下一次发送时, 在上一次的基础上加1

上一篇:2016年第四届湘潭大学新生趣味程序设计竞赛
下一篇:imx6 uboot saveenv fail

相关文章

关键词: 协议分析TMP

相关评论

本站评论功能暂时取消,后续此功能例行通知。

一、不得利用本站危害国家安全、泄露国家秘密,不得侵犯国家社会集体的和公民的合法权益,不得利用本站制作、复制和传播不法有害信息!

二、互相尊重,对自己的言论和行为负责。

好贷网好贷款