快乐是福吧 关注:112贴子:1,886
  • 3回复贴,共1

手机JAVAQQ 1.4协议详细说明(转的 保存所用)

只看楼主收藏回复

1,获取通讯地址和端口
http访问这个地址:
http://conf.3g.qq.com/newConf/kjava/aubin2.jsp
获取当前可用的IP和端口以及通讯使用的协议。
文件内容类似下面

其中SERVERCONFIG_TYPE对用后面的SERVERCONFIG_URL。type是类型KQQTCP表示
第一个SERVERCONFIG_URL为TCP通讯的地址个端口socket://58.60.12.177:14000。QQHTTP表示是http通讯的好像1.1的协议就是。
后面的SMSSERVICE_HELPTXT之类的就是QQ登陆进度条界面的广告,用过javaQQ的都知道。


IP属地:四川1楼2015-01-03 13:18回复
    2,登陆
    发送:
    VER=1.4&CON=1&CMD=Login&SEQ=245&UIN=378779555&PS=3CEAFFE01068A5F9C0C5DD0000CBB067&M5=1&LG=0&LC=812822641C978097&GD=QU7YM68W72T5EJZF&CKE=
    VER为版本,CMD是命令类型(后面的发包全部都是命令)。SEQ为3位随机数(大于200小于999),
    1.1协议的是2位大于00小于99的随机数,我的版本QQ是第一次发包时随机一个200+2位随机数,
    每次发送命令后QQ返回的包里面的SEQ都和对应包相同,以后发包时每次在上一个包的SEQ上+1作为新的。
    我用易语言按照这个实现通过。
    提示 : QQTCP通讯的编码全部为UTF-8,用易语言写的TX注意发包和接受后转换下。
    UIN是QQ号,PS是密码用MD5加密的密文。易语言 设定密码为X,密文=到大写 (取数据摘要_MD5 (到字节集 (X)))
    LG,M5,LC,GD全部固定值测试通过。
    接受:
    登陆成功:
    VER=1.1&CMD=Login&SEQ=245&UIN=1625034920&RES=0&RS=0&HI=60&LI=300&SG=6522abd500000000642162f3c8f13928337d76f39fc025b6a2e11295d8eb631b&SSG=2618781619
    下一步可以发送更新状态的命令来更改上线隐身等。
    注意 返回的VER是1.1 其他的可以参考1.1的协议看看。RES=0代表你发送的数据服务器接受成功并不代表命令等正确。
    有验证码:
    VER=1.1&CMD=VERIFYCODE&SEQ=259&UIN=1747478650&RES=0&SC=1&NT=&VC=89504e470d0a1a0a0000000d4948445200000064000000280403000000fa56427000000030504c5445ffffff9f9f9f4f4f4f5f5f5f6f6f6f7f7f7f8f8f8fbfbfbfefefef0f0f0f2f2f2f3f3f3fcfcfcfafafafdfdfdf1f1f1fac7ca8040000022a49444154388ded943f4c137114c71f207057db4a3062ba99381d13834b3717069caa1112b62e0c4d1c186130b9cd38d9daaa7cdb7a270983b7185c482ed1c4d54143080e5d0c2b1b6cde627ceffd50dafb1798587cc3dde5f77b9fdffbbe3fbf234ab3d97b2bb75d221b4013ff2cd5f5af2db143db356ee7089a394855bd0d625f8c713a6b0fce748d20394cd8273b1549cfa738f793428fe4403b89a485b142e0536010ba1852908d688b5443bc6431c4ba79779f5f0dec38b2a3889d8f348097fc0a7c1a53443773916bb2709f1dda64012764eba61d4786836c62fb009e46a15b78a7fe49644457955505af44df1d2aa3b3f2081a68b464a3f5e2bad280238ca3e71675bfadad194662158eb4755c33071fa6d5e1bd28a32124de0f8952c12ed104fc6ff8b816745da2a9e639926c61b5452548fe9ccd6b2e5dc3975507eb41d34e7aab1decd3aa1f72fedc962e6a748c2ffcfd02bf96bc0c82a433bf37fdf2776d6a8d07a7c66bd3e8555ad9c8c03f2ae007ea3266759a34bd5945b5938d447d9ac21e16b8ce98e1f3b764f13ad0cb244aec6ca185379c80143b5241e5ac6b2536c96af80647588c80752e61dbc885d62113e181acf0b1be780dcce9131a32ddc678b858f94346e67144f45c42a9b2992cc442df0abb785b7afca420c8b8565906b99e998c8300de323bd30db83c2ca6ca94238cbe9a3b46e696b022cfe8cdf9b1f2887d365fc5a7f29c3f95e70039dda7671bc9b522ce52ba84857941d2edd0bd34f2dfae
    c4fe0081184f53b008ff0c0000000049454e44ae426082
    可见返回的MCD是VERIFYCODE,并且有VC段,试验证明需要输验证码才会出VC段,确定VC就是验证码。
    试验证明这段是一个PNG图片。
    把16进制的代码还原成字节集,写入文件后缀为PNG格式,就是验证码图片。
    本例图片就是:

    然后发送验证码:
    VER=1.4&CON=1&CMD=VERIFYCODE&SEQ=260&UIN=378779555&SID=&XP=C4CA4238A0B92382&SC=2&VC=puty
    注意:SC是验证码接收包的SC+1,XP固定不变。
    错误的验证码则继续接受验证码包,正确后返回2个包:
    VER=1.1&CMD=VERIFYCODE&SEQ=261&UIN=1747478650&RES=0&SC=2&RS=0
    RS=0为确认标识 为0就为成功。
    VER=1.1&CMD=Login&SEQ=261&UIN=1747478650&RES=0&RS=0&HI=60&LI=300&SG=a3125e629c6cb500000000ca8b01bc666218abec75d0118fdbf76003615a5089&SSG=415039481
    登陆成功!和上面的直接成功差不多。


    IP属地:四川6楼2015-01-03 13:30
    回复
      2025-06-30 04:50:14
      广告
      3:注销: VER=1.4&CON=1&CMD=Logout&SEQ=标识&UIN=QQ&SID=&XP=C4CA4238A0B92382
      4:获取在线好友: VER=1.4&CON=1&CMD=Query_Stat2&SEQ=标识&UIN=QQ&SID=&XP=C4CA4238A0B92382&CM=2&UN=0
      5:发送消息: VER=1.4&CON=1&CMD=CLTMSG&SEQ= 标识&UIN= QQ&SID=&XP=C4CA4238A0B92382&UN= 发送对象&MG=消息
      6:查看好友资料: VER=1.4&CON=1&CMD=GetInfo&SEQ=标识&UIN=QQ&SID=&XP=C4CA4238A0B92382&LV=2&UN=好友
      7:隐身: VER=1.4&CON=1&CMD=Change_Stat&SEQ=标识&UIN=QQ&SID=&XP=C4CA4238A0B92382&ST=40
      8:离开: VER=1.4&CON=1&CMD=Change_Stat&SEQ=标识&UIN=QQ&SID=&XP=C4CA4238A0B92382&ST=30
      9:在线: VER=1.4&CON=1&CMD=Change_Stat&SEQ=标识&UIN=QQ&SID=&XP=C4CA4238A0B92382&ST=10
      状态, 10 在线 30 离开 40隐身 20 好像是忙碌 手机QQ3.0上面没这个功能 有兴趣可以测试下
      10:查找好友: VER=1.4&CON=1&CMD=AddToList&SEQ=标识&UIN=QQ&SID=&XP=C4CA4238A0B92382&UN=好友
      11:验证: VER=1.4&CON=1&CMD=Ack_AddToList&SEQ=标识&UIN=QQ&SID=&XP=C4CA4238A0B92382&UN=好友&CD=2&RS=验证文本


      IP属地:四川7楼2015-01-03 13:59
      回复
        看不懂


        来自Android客户端8楼2015-02-20 20:03
        回复