声明
MyQQ is a cross-platform library for communication which uses a TencentQQ-like protocol to communicate with friends on the Internet. It can work well now and maintained by Xiaoxia.
Current Version: 3.30
Protocol Verison: 2011 Beta2
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!WARNING!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
myqq3是个实验品,仅供研究和探讨,勿用于其他用途。它的不稳定性以及时效性可能会导致灾难性的后果!!!
Win32 & Win64 Package 下载
myqq3.30
Source Code:
See http://code.google.com/p/myqq3/
Update History:
Version 3.30(2011-04)
1. Update to qq2011beta2 Protocol.
2. See SVN Changes.
Version 3.21(2010-06)
1. 修正了一些东西。
Version 3.20(2009-10-27)
1. QQInternational Beta1 Protocol.
2. Random packet seqno.
Older Version
MyQQ3.19 http://xiaoxia.org/1222.html
还是跟大家说一下吧。之前我用过这个软件一段时间。后来腾讯就把我的QQ给封了。永不解封,登陆时会提示联系工作人员的。我也打过电话给TX。也不给解封。极度郁闷,这个软件是挺好用,也好玩,可是TX变态,会封号。TMDTX!
仅学习研究使用 🙂 不适合一般用途。
腾讯维护的是一个social network 而不是软件本身
难道你是在3Q大战的时候被封的?
求Q被封
登录的时候要联系客服什么的,然后后面还有个电话对吧,这个去腾讯客服中心提交问题就能解封。
牛逼啊
想当年,用MyQQ3.0 把一个新的QQ挂到了两个太阳。谁知道某一天用不到了。
后来用QQ客户端登陆,一看,挂了。号码被GANG掉了。挺怀念这段时光的。
关注中~
是2010协议的吗?和libqq比起来怎么样?
不好意思,不支持2010,只支持2011,谢谢!
哦,这个更先进了啊,期待稳定版
这个回复我喜欢。哈哈。
我想问一下怎么由session key得到登陆网站用的clientkey
clientkey在EA返回包
谢谢
希望能解决win下控制台发布群信息的BUG。 (只能e 群内部ID)
q后列出群列表,e 序号,可以进入该群。不用输入id。
哇靠 复活了
哇靠。你这么关注啊。
偶刚刚搜索。唔。反正百度搜索东西来着跳进来了。。
太好了。小虾出新版的啦!
围观下吧 不敢用…
我想说… 太多毛病了
ADD无效
昨天测试
今天封号了
抱歉!ADD命令不可用,它只能工作于QQ2009SP1,但该协议已经过期。
更严重的是,腾讯好像严打非官方客户端 俺一个小白号封号了
如果大虾一直做下去,就不怕协议过期咯咯咯。。。
另外。。。如果协议不完善要注明是testing版,别当release稀里糊涂放出来导致咱们都不好看。。。
这个程序一直都是testing 🙂
呵呵,Testing好。Release会不能登录的:-)
打从心里佩服你,看好你。 我要是有你这么厉害就好了,能独自完成QQ协议分析,写出第三方客户端。
高手啊 神人啊
大牛,前来膜拜……
呵呵,醉醺醺的扭过
多谢指点,昨天看你的视频,听见说“终于把这个md5给破出来了”,敢问是真的吗?
md5是可以暴力破解的,需要时间比较长。
你可以去找一些专门进行md5破解的网站,一般都会有一个庞大的字典库。
用PHP写了一个MD5批量生成的工具~原理就是提供一密码字典(或者直接生成) 然后生成对应的MD5 ~不过穷举10位以内的组合都要运行好半天。
非常崇拜小虾 不知道能否交个朋友 有问题像你请教!
可以的,你也是学生吗 🙂
我是90年的,我们年纪差不多吧,来凑个热闹。顺便说下,我在win7下编译通过了,但是登陆的时候提示网络错误。压缩包里原有的EXE登陆是正常的。不知为何原因。
请问 myqq怎么向其他qq发送表情 和 传送图片,代码中如何修改.
没研究过……
那改变颜色字体呢. 总是发送黑色字体给别人不是很好看
不难的。你可能需要了解一下协议。
貌似 带图片标识字符串的QQ消息+文件传输=表情/图片发送
能否说下你的联系方式,方便的话发到我的邮箱 [email protected], 有点问题 想咨询下你. 非常感激
这个真的会封号?
不清楚啊!!!我自己测试还没发现
被封号了路过
看到这句话我心都要碎了,估计我号明天就要挂了,5555555555
小心为上
弄得我也不敢登录了
悲剧了~我刚测试完了~~才看到你的评论、、、
请教个问题,你们那儿用锐捷不,Linux下怎么解决锐捷的问题?我们这几个人尝试了多种方法都没成功!可以的话给点你们的方法或者解决思路!
没,在学校用移动的无线网络。你可以试试用wine吧
linux下锐捷可以用mentuhost替代,google上有下载。成功连接过的路过……
嗯 还有个xrgsu吧,也可以用
mentohus是那玩意儿改进后的产物
用mentuhost啊, 我们学校的是锐捷3.95版本的, 没有问题, 完美上网.
你好,请问下你是用什么编译的。。似乎我有dev c++ 编译错误很多!
IDE: codelite
Compiler: mingw32 gcc
上面的源码。。可运行通过么?感觉像3.19版本的?
能把你完全版的发下我不?
邮箱:[email protected]
QQ:411216438
我也是学生,最近有点迷上,所以希望能研究下!万分感谢@
小虾,能不能把你的源码发下给我。我看了上面myqq3的源码,似乎跟myqq3.19是一样的。
不知道你改了哪里。。或是有点东西没有在里面。。我想是否可以把完全的源码发下给我呢!
邮箱:[email protected]
QQ:411216438
万分感谢!因为比较感兴趣,所以想研究下@
最新的代码都在SVN上啊,任何人都可以浏览和下载的。
求xiaoxia有空给myqq增加一API接口~~吼吼~~
发现最近精神好得不得了 一般要三四点才想起睡觉~要放假了,抱着电脑过的日子不长了,纠结中……
今天花了一天的时间封装它!想做个UI~~~~~~要是能提供一个专门的lib就好了!也方便我们大家二次开发!!!!
本来就有一个makefile生成lib的。其实我已经有项目用这个做程序了。。。
我把它做成dll和so文件。可是那结构体怎么导出来呀!你的项目是用的什么gui呀?能加入么?我想用gtk来做ui
我用的也是GTK。。。项目在 github.com/gqqdev/gkiu
现在只是核心稳定下来了,一个关键功能还是没好,好了后就打算开始向虾哥的代码膜拜 XD
那个呀!我看过了!我有一个正在用gio写的QQ核心!没写完,正在写
最近有打算用python写一个web qq协议的客户端
哈哈,gkiu支持python的插件哦
另外。。gkiu主要的亮点是,gui也是按插件提供的,所以如果没事干,可以用OpenFetion那样的NB界面(类twitter的)。。。
我怎么装不上去呢?
你好,小虾。我也是一个学生,可以请教你一个问题么?我在互联网上一直没有找到答案,老师也说不知道如何实现……
就是类似于3q大战时360推出的web qq端用dev c++如何实现啊,不要太多功能。仅需要出现网页就好》希望你能帮助我。谢谢。
另外,可以和你交个朋友么,你的myqq3.17我还一直收藏,在noip集训的时候我们就是用它来聊天的(学校机子太破,而且这个也不太容易发现,可以混在我们的题目中,嘿嘿)
Tx的产品就是一堆IE Core的组合,没有多少技术含量,你也可以用一个IE控件来拼凑一个webqq程序。
有密保的号,好像不能用。
能不能写一个基于腾讯TM协议的?QQ协议老更新,然后就不能用了,TM稳定些,TM2009到现在没更新,一直能用。
以前有,但现在没了。
配置文件qqconfig.txt里的QQHttpProxyServerList是用来设置HTTP代理的吧,但是设了还是提示Failed to send the packet. command: 91
网络错误.
QQNetwork = HTTP_PROXY
谢谢,没仔细看配置文件,另外是PROXY_HTTP,不是HTTP_PROXY,但还是连不上,不知道是不是我的HTTP代理问题。
哪个版本?
删掉登录服务器里的IP地址,使用域名地址登录,应该能够解决这个网络出错的问题。
这个办法确实可以。我今天用PROXY_HTTP连接上了。
小虾···想请教一个问题,给个即时通讯么?
什么问题? 发到我邮箱吧 xiaoxia at xiaoxia.org 我好友列表溢出了
请问下次可以考虑用VS2010,或2005编写吗?用DEV-C修改编写太慢了,还乱码,每个Code 文件还要重新编码,麻烦。谢谢!
请用codelite!
不好意思,现在用ubuntu系统
我用C::B,我表示我能用!!
new workspace,new project,add all files that in scr folder to the codelite scr folder,how to do then,please?
然后我编译 得到这个:
———-Build Started——–
———-Building project:[ myqq – Debug ]———-
/home/sandsea/Desktop/Q/trunk/src/debug.c
63:3: warning: format not a string literal and no format arguments
86:3: warning: format not a string literal and no format arguments
/home/sandsea/Desktop/Q/trunk/src/myqq.c
159:2: warning: format not a string literal and no format arguments
218:2: warning: format not a string literal and no format arguments
/home/sandsea/Desktop/Q/trunk/src/webqq.c
79:58: error: macro “DBG” passed 4 arguments, but takes just 1
78:5: error: ‘DBG’ undeclared (first use in this function)
78:5: note: each undeclared identifier is reported only once for each function it appears in
———-Build Ended———-
webqq.c不要放进去。libqq.c也不要放进去。
请问一下,为什么在windows下用dev-c重新编译一下,连接的时候就出现网络错误?
嗯?哪个版本的源代码呢,配置文件里设置是否正确呢
3.30版本。我和3.19的对比了一下,没有区别?
配置文件用的是可以登录的配置文件。
IP地址失效了吧。删掉登录服务器里的IP地址,使用域名地址登录,应该能够解决这个网络出错的问题。
小虾你好,我是coco软件开发组的负责人,李金龙。很希望可以认识你并成为朋友。
美国vps登陆为何显示网络错误
修改登录地址,删除那些IP,使用域名地址登录。
求完整命令行说明:)
1、使用help
2、看代码
T_T 偶想问的是启动参数……
一般都是
myqq 号码 密码 是否隐身
哦,Thanks
你好,qqclient结构中的auto_accept有用吗?为什么我设置为1还是不能被允许自动加为好友呢?是不是这个功能还有其他地方需要设置?
如何设置才能实现不需要验证直接加为好友的功能呢
加好友的功能是不能用的。
不是加好友,是设置一下不需要验证码别的号码就可以加好友,这个可以设置吗?
网络错误啊?不能用了?
prot_login_touch_reply(113): redirecting to 119.147.45.192
qqconn_connect(192): connecting to 119.147.45.192:8000
prot_login_request_reply(211): process verify password
prot_login_get_info_reply(370): Hello, 失败者
packetmgr_check_packet(376): [2506515223] resend packet cmd: 30
prot_login_send_info_reply(527): login result = 44
网络错误.
qqclient_detach(199): process = 4
qqclient_logout(216): joining keepalive
qqclient_keepalive(151): end.
Pingback引用通告: vps(虚拟服务器)挂QQ(桌面版+shell版) - 飞翔的翅膀pp的资源库
3.19的版本.. 为什么编译会有
til.o crc32.o qqconn.o -lpthread -s -o ../myqq
utf8.o: In function `utf8_to_gb’:
utf8.c:(.text+0x50): undefined reference to `libiconv_open’
utf8.c:(.text+0x80): undefined reference to `libiconv’
utf8.c:(.text+0xb3): undefined reference to `libiconv_close’
utf8.o: In function `gb_to_utf8′:
utf8.c:(.text+0x10d): undefined reference to `libiconv_open’
utf8.c:(.text+0x13d): undefined reference to `libiconv’
utf8.c:(.text+0x170): undefined reference to `libiconv_close’
collect2: ld returned 1 exit status
make: *** [../myqq] Error 1
这样的错误呢..
我确定 libiconv 已经安装了
3.19到linux编译少连接了iconv库???
用3.30试试。
在linux.mak 加入了-liconv
依然是那个 undefined reference to 的问题.. 好猎奇..
诶, 刚刚试了 3.30版本 同样滴问题.
我用debian这样,centos就不这样,真奇怪
的确很奇怪.. 好累.. 终于编译成功了..
在windows下提供的bin可以登录
但在linux 下就会出现网路错误.. config修改过几次
你是不是在SVN上获取到3.30的代码
是这个呢!
http://xiaoxia.org/upfiles/2011/05/myqq3.30.zip
我也是网络错误哎
我正要做一个黑莓的QQ客户端,打算专注聊天,其他什么都不要。。是不是手机QQ协议稳定一些呢?TM的协议怎么没见过呢?请小虾指点迷津啊
手机qq协议稳定些。tm跟qq电脑客户端的是差不多的,也稍微稳定。
gcc qqsocket.o qqcrypt.o md5.o debug.o qqclient.o memory.o config.o packetmgr.o qqpacket.o prot_login.o protocol.o prot_misc.o prot_im.o prot_user.o list.o buddy.o group.o qun.o prot_group.o prot_qun.o prot_buddy.o loop.o utf8.o myqq.o util.o crc32.o qqconn.o -lpthread -s -o ../myqq
done.
make: Leaving directory `/root/qq/src’
这是什么意思?
正常的编译过程。
哦,谢谢
不用谢:-)
我从svn上下载了代码,在windows下编译能成功,但是登陆的时候会出现网络错误,请指教一下吧!谢谢
已经解决那个问题了 是int溢出的问题
顺便问一下这个版本能添加好友吗?我添加好友不成功
能具体说说么?哪里的int?
希望你能把你修复的版本更新到svn上。给我你的gmail帐号?
我想在你的3.30(反正就是svn上的那个)的基础上进行二次开发,既然你使用GPL协议,那应该没啥问题吧,不过还是来给你打个招呼
当然我的作品也会开源,而且会注明使用了你的技术
请问你进行二次开发的项目是?
一个跨平台的简单GUI,不会太复杂,稍微提高一下操作效率
(话说我比较喜欢C++的啊……..)
linux编译后,在提示激活的消息后会进入死循环提示“bad descriptor”。而且有的用户名会出现乱码并提示libconv不可用。
如果有时间我会修复LINUX下的这些bug,但不知道怎么提交源码到google code……
修复好之后,给我你的google code帐号,让后把你加入到开发者列表即可!
一点也不会编程 只会在网上找答案照着做
最开始我是在这里找到http://www.right.com.cn/forum/viewthread.php?tid=50409并使用 后来知道有你的原版
所以尝试玩玩编译 什么都不懂只能网上找答案 http://blog.cn00.net/post/vps-gua-qq.html
http://xiaoxia.org/upfiles/2011/05/myqq3.30.zip 和 google code 的 starkwong r24都会网络错误
后来我使用r13 Version information.Apr 24, 2011 gdxxhg 就可以了,就是登陆时常常要激活, T X 可能检测出协议不正常(我都不懂这些)
另外myqq能否增加一个断网重连后自动再连接,垃圾电信adsl拨号用户会48小时断网一次.虽然路由会自动重拨,但ip变了没用.
我是路由tomatoduanwan的,挂载FTP,开启mldonkey和使用wget.比现在xp下高效省电实用.
你好,myqq因为用的是不完整的pc客户端协议,所以不稳定性很大。如果有兴趣,可以组织一些人开发一个webqq协议的版本,可能会稳定很多。
另外blog能否增加修改功能 有时打错了点东西。。
这个目前估计不行吧,因为访客没有帐号,要是能够修改,把别人的评论都给修改了咋办呢!
您好,看了您的工作成果非常感动,我想把这QQ移植到windows mobile 6.5
使用.net compact framework 3.5,请问有可能吗?对于非托管代码没什么概念啊。望指点迷津,谢谢啦!
好象已经有人编写过.net版本了,你可以在网上找找。
6位QQ登陆 程序自动关闭 以前的版本也这样
登陆日志 如下:
16:20:43 [qqsocket.c]qqsocket_init(48): WSA Startup.
16:20:58 [qqclient.c]qqclient_login(177): login
16:20:58 [qqsocket.c]netaddr_set(154): Get IP: 121.14.80.220
16:20:58 [qqconn.c]qqconn_connect(192): connecting to 121.14.80.220:8000
16:20:58 [qqclient.c]qqclient_keepalive_proc(162): keepalive
16:20:59 [prot_login.c]prot_login_touch_reply(115): redirecting to 119.147.45.253
16:20:59 [qqconn.c]qqconn_connect(192): connecting to 119.147.45.253:8000
16:20:59 [prot_login.c]prot_login_request_reply(173): result = 0x3
16:20:59 [prot_login.c]prot_login_request_reply(214): process verify password
16:20:59 [qqpacket.c]get_data(125): packet p->pos(50)+36760 > p->len(103)
可能你的号码有特殊保护,myqq的不完整协议暂时无法支持。
为什么不提供一个简单的GUI呢,命令行很不习惯啊,XIA哥
你可以自己做啊,我做的GUI你肯定也是不喜欢的。
XIA哥,你随便搞个GUI就行了,不用好看
命令行确实不习惯啊
呃,现在很少有时间来给myqq写gui了,安排了别的事情还没有完成。我现在也用gtalk,越来越少用qq。
看了这上面的qq2010登录协议, http://www.xueit.com/webdeveloper/show-9319-1.aspx
一共分为6步, 而myqq中好像只有5步, 缺少了发送0x00E3命令的发送包。 不知道为什么。
而Myqq登录后经常会出现这样的错误。
11:12:41 [prot_im.c]process_sys_im(289): sysim(type:1): 您所在的网络可能存在危害其他QQ用户的行为,您的号码被迫下线。您重新登录时可能会被要求输入验证码,建议您换一个安全的环境上网。
不知道和少发这个命令有没有关系?
MyQQ没有使用过2010的协议。只有2009和2011的。出错基本上和协议不完整有莫大的关系。
小虾牛人 膜拜交流 会E语言吗?
不会!!!我是菜虾来的。
Failed to send the packet. command: 91
请问下 出现这个错误 为什么 最近哪个版都试验了
你好!出现这个问题很大可能是网络问题引起的。可能是因为你所在的网络无法连接到配置文件里指定的服务器地址,你可以尝试更换一个登录地址。
19:06:54 [qqclient.c]qqclient_detach(224): process = 4
19:06:54 [qqclient.c]qqclient_logout(241): joining keepalive
19:06:54 [qqclient.c]qqclient_keepalive_proc(170): end.
19:06:54 [packetmgr.c]packetmgr_recv(313): end.
19:06:54 [packetmgr.c]packetmgr_end(339): packetmgr_end
23:40:32 [qqclient.c]qqclient_login(177): login
23:40:32 [qqconn.c]qqconn_connect(192): connecting to 58.60.15.39:8000
23:40:32 [qqclient.c]qqclient_keepalive_proc(162): keepalive
23:40:38 [packetmgr.c]packetmgr_check_packet(379): [171868446] resend packet cmd: 91
23:40:44 [packetmgr.c]packetmgr_check_packet(379): [171868446] resend packet cmd: 91
23:40:50 [packetmgr.c]packetmgr_check_packet(379): [171868446] resend packet cmd: 91
23:40:56 [packetmgr.c]packetmgr_check_packet(379): [171868446] resend packet cmd: 91
23:41:02 [packetmgr.c]packetmgr_check_packet(363): [171868446] Failed to send the packet. command: 91
23:41:03 [qqclient.c]qqclient_detach(224): process = 4
23:41:03 [qqclient.c]qqclient_logout(241): joining keepalive
23:41:03 [qqclient.c]qqclient_keepalive_proc(170): end.
23:41:03 [packetmgr.c]packetmgr_recv(313): end.
23:41:03 [packetmgr.c]packetmgr_end(339): packetmgr_end
小侠好,我在google code 上下的代码 在LINUX 还有WINDOWS下 编译后都是会报上面的错误 反而 用你上面http://xiaoxia.org/upfiles/2011/05/myqq3.30.zip 下载的东西 里面的可执行文件WIN32中的myqq.exe就可以正常登录 当然编译后也是报网络错误 我看EXE是今年4月25日生成的 里面的代码都是09年的呢 请问有没有最新的代码 google上的代码 编译出来也是错误
你测试的号码是多少,几位数的?
8 位9位的都有
哦,似乎很多人都说这个问题,也希望解决了的朋友快点出补丁吧。
另外,你能填写一个正确的Email地址么???
我也遇到这个问题,用http://xiaoxia.org/upfiles/2011/05/myqq3.30.zip 下载的东西里面的可执行文件WIN32中的myqq.exe也不可以正常登录。请问正常登录情况下log里面是什么内容?可以比较一下,看看哪里有问题。谢谢。
你分析对了,是登录服务器里的IP地址已经不可用。
这个问题可能跟网络有关。我现在都可以用了。
可能是跟服务器有关系。好像myqq会在服务器列表里面选一个来登陆,如果服务器没有回应,可能就出现网络问题。需要再测试确认一下。
用域名地址应该没问题,把IP都删掉。
用域名应该就没有问题了。基本上确定是服务器的问题。
– -求你早期的QQ协议 破解文章 冒失是百度的空间?
要早期的干什么呢?我不清楚了,你可以网上搜搜吧
不过自己编译的可执行文件在推出是老是非法操作,虾子能否看看是什么原因?
提示什么信息?
提示“遇到问题需要关闭”。好像是pthreadgc2.dll的问题。截屏我已经回复给那个blog邮箱了,供您参考。
虾子,你水平这么高,不如参与libqq-pidgin项目(http://code.google.com/p/libqq-pidgin/)。这个项目是真正可以使用的,只是QQ目前还是问题多多,需要优化。这样子可以同时用QQ和gtalk了。而且还可以锻炼一下团队协作能力。现在libqq-pidgin项目的作者更新比较慢,或者你在libqq-pidgin项目的基础上另起一个项目,搞好一点,做团队的领导者。团队协作很重要,因为一个人再厉害,力量毕竟有限的,只有团结一批人,才能够实现你远大的目标。一点建议,不要介意,呵呵
libqq-pidgin跟myqq是差不多的,用的协议也是差不多的,遇到的有待解决的问题也是差不多的,继续维护和完善的难度很大。
协议不完善不是一个人能解决的问题,如果大家都能贡献一份力量当然很好了。但是代码复杂了也不好维护。
所以我在想一个好的方法来解决这一个问题,我在筹备myqq4,也希望有志者加入来参与一下讨论。
算我一份,呵呵。我们应该先确定一下myqq4的目标,然后逐步实现就可以了。你现在考虑myqq4准备大概实现哪些功能?
ok~ 我加你到讨论组里去吧,你可以把你的想法通过邮件发送到 myqq.developers AT xiaoxia.org
也加我进去吧,学习加力所能及的一些事
小侠,请问我用smartsniff怎么监听QQ使用http proxy时所发送的IP包?
选择对应的网卡,设置必要的filter,http代理应该设置tcp 80端口。
公司的proxy是8081端口的,我又看到QQ里面设置的默认TCP端口是443,不知道这两个端口应该设置哪个?因为对http proxy不是很了解,所以还希望您指点一下。
要设置8081来抓包,http代理需要支持CONNECT命令。
CONNECT之后,就是正常的tcp通信了。
遇到什么问题随时可以找我帮忙看看的。
搞定了。多想指点。
搞定了,多谢指点,呵呵
不说别的,看你回复的态度,真是佩服
相互交流,相互进步 🙂
VF_REJECT = 0x02,
VF_QUESTION = 0x03,
请问 xiaoxia 这是什么意思
验证方式吧,reject是直接被拒绝了,question是需要回答问题,你需要提交一个answer才能得到添加权限。
今天无聊又下了一份在vps在编译,登录提示网络错误。。 Failed to send the packet. command: 91
你好啊,服务器ip地址问题,参照之前的评论,修改一下连接地址。
Failed to send the packet. command: 58
Failed to send the packet. command: 58
Failed to send the packet. command: 58
Failed to send the packet. command: 58
Failed to send the packet. command: 58
Failed to send the packet. command: 58
时间长了就会出现这个 不能发送 QQ_CMD_KEEP_ALIVE = 0x0058
为什么会出现这个问题呢 谢谢
会不会是掉线了?尝试加快发送心跳包的频率会否有好转呢? 你使用的是哪一个版本?
如果有能给个联系方式吗?
本人学习比较忙,没有时间给人写软件,谢谢!!!
在linux下编译时,出现如下错误,请问该如何解决,谢谢。
(下载自http://xiaoxia.org/upfiles/2011/05/myqq3.30.zip )
myqq.c:214:12: error: conflicting types for ‘getline’
函数名冲突,把getline函数名改为别的即可,或者你下载一个SVN上的版本。
svn checkout http://myqq3.googlecode.com/svn/branches/myqq3/
来支持下 最近对QQ蛮感兴趣的
qq protocol? or qq programming? or just chating using qq?
手机QQ协议,电脑端QQ没能力
我也没能力帮你了,最近我手机也在公交车上被偷了 🙁
经常遇到登录某一个号码,如果需要有验证码, 就会不停地获取验证码,直至失败。
我下载了一个2011beta2的QQ客户端,抓了个BA发送包如下:
[NO.3 2011-11-07 14:35:19 393 SEND]
02 22 27 00 BA 21 AD 68 FB C2 9F 02 00 00 00 01
01 01 00 00 64 EF 37 6B A5 66 08 E7 AA 30 61 F2
86 E2 B0 14 30 EF 99 30 9F A9 6A 7B 91 23 6E 0F
42 20 9C CC 21 01 2A C2 73 DE 85 DD 62 1F 8E D8
80 91 49 1D D6 61 81 8F 7F 18 C5 99 64 12 2F 2B
2B 07 40 42 BA 76 BB 0A C5 38 E8 22 6F 07 63 73
6B 0E 31 C6 AE 06 15 E8 9C B8 0F 49 9B 51 FB 0B
32 26 5C E5 FA 55 16 D5 08 CE 06 25 FE 57 09 58
C7 95 38 C0 E5 CC 9C 16 AC A0 54 91 A5 27 D3 94
D1 D3 4C A2 FA 05 11 96 D3 2D E5 BA DD DD 2C EE
96 69 D3 25 A1 75 FD 24 5A 91 27 C4 18 CD 8F 37
04 BC 66 13 CC 81 B8 7E 3B 4C 57 4D 1F EE DA 10
BD 7C 75 AA 67 0C 03
但在MYQQ中,同样的发送包长度却小于上面的包,抓包如下:
02 22 27 00 ba 0a 01 99 35 a5 71 02 00 00 00 01 01 01 00 00 64 ef
只填充了put_data( buf, unknown_packet_flags, 11 );这一句后面就没有了。
但有的QQ也能成功获取验证码登录, 不知道为什么?
不好意思, 抓包长度错了,长度应该是正确地, 但是还是存在不停获取验证码的情况。
在prot_login_request_reply中, next = get_byte( buf );始终为1,直到错误退出。
会不会是跟你的网络环境有关?你使用的是哪一套协议或者哪个版本的myqq?
SVN上的, 协议版本号是0X2227,2011beta2, 这两天分析了下腾讯2011beta2的包.
修改了协议,prot_login_request函数
if( code )
put_byte( buf, 4 );
else
put_byte( buf, 0x13 );//这里原来为3
并加上这么一段数据到BA包最后
static uchar BA_data2[] = {0x4A, 0xB8, 0x34, 0xE3, 0x16, 0xE3,
0xDA, 0xBF, 0xEF, 0x0B, 0xF6, 0x91, 0xF7, 0xD0, 0xF4, 0x42,
0x23, 0x4E, 0x6A, 0x12, 0x52, 0xDD, 0x4D, 0xDF, 0x31, 0x4A,
0x34, 0x49, 0xBE, 0x05, 0x33, 0x6C, 0x51, 0x89, 0x11, 0x90,
0x6D, 0x4A, 0xBC, 0x30, 0xDE, 0xFF, 0x47, 0x31, 0xB3, 0xB2,
0x95, 0x3D, 0xEB, 0x80, 0x0E, 0x11, 0xC6, 0x23, 0xD3, 0x22
};
put_word(buf, sizeof (BA_data2));
put_data(buf, BA_data2, sizeof (BA_data2));
现在能正常登陆,由于测试了N个QQ都没有出现需要验证码的情况,所有暂时还不知道需要验证码的时候对不对。
哦,对了, 之前下载的2011beta2不能使用,腾讯要求升级才能使用。 升级以后,抓包后分析了一下,修改发送包static uchar unknown_packet_flags[] = {0x02,0x00,0x00,0x00,0x01,0x01,0x01,0x00,0x00,0x64,0xef};
如果想判断 隐身的好友, 是否容易实现啊 ?
不容易。以前的版本的bug比较多,不过现在应该比较完善了。除非你真的有耐心去找协议的bug。
qq协议的结构变化莫测,所以一个版本的协议也永不长久。如果你有google帐号,我可以加你到committer里,更新一下SVN上的代码。
侠,你好
请问有没有办法可以使QQ客户端收到myqq发送的时候有表情呢?
case 02: //face
len_str = get_word( buf );
buf->pos += len_str; //
get_byte( buf ); //FF
len_str = get_word( buf );
if( len_str == 2 ){
get_byte( buf );
if( outlen-i > 15 )
i += sprintf( &tmp[i], “[face:%d]”, get_byte( buf ) );
如果把tmp 转发给一个正常的QQ 客户端 现在也只是FACE%D 这个是怎么转换的呢
如果只发送一个 /吓 这两个东西给QQ正常客户端也只是上面的 /吓 并不会出现表情 不知道 这个怎么转换的,先谢谢了哈
你好,SVN上的myqq没有实现支持tx的表情功能 🙂
是的啊,所以我想把这个东西转换一下,如果那个微笑的表情是 face79 就是说有没有什么格式的数据发送给正常的QQ 把face79 对应一个转换变成别人能收到的 微笑呢
很感谢你的MyQQ。学校的电脑室不能安装QQ。我也讨厌官方的客户端和WebQQ,它占用太多资源。
但是在英文的系统下显示不了任何中文,只看到一堆问号。不知是否有什么办法?(学校的电脑都是英文的Windows7 32bit)
你好!!!
可能跟myqq显示中文使用的是gbk,而不是unicode有关。
装一个UCDOS
好像 0xdd c->s发出去的用来解 0xdd s->c 的 randomkey 都是全0 哦 可能这样比较容易被腾讯认为是 非法的终端。另外请问下你们有没有什么交流群? 是否能让我加一个 嘿嘿
如果你对这个有兴趣,可以加入一些开源项目的开发中。例如openq或者myqq。
老大是不是在更新http://code.google.com/p/myqq3/,我现在更新发现只有几个文件,呵呵
A myqq3-read-only\myqq4.project
A myqq3-read-only\.hgignore
A myqq3-read-only\source
A myqq3-read-only\source\main.cpp
A myqq3-read-only\myqq4.txt
U myqq3-read-only
而且里面基本上是空的。
svn checkout http://myqq3.googlecode.com/svn/branches/myqq3/
myqq3里面有点小bug
line 575 DBG ((“got qun: %d”, number ));
line 581 DBG ((“got buddy: %d”, number ));
里面的“%d”应该改为“%u”,会对调试有点小影响。
谢谢指出!!!这个应该是在初期版本就没有注意到的问题,后来基本换成%u,但是有的地方可能没有更新过来。
Unknown message type : 2d
myqq3里对于不能识别的协议,目前只能打印出调试信息来。
想实现跟好友发图片的功能, 也就是类似在聊天框中粘贴图片的功能, 是否容易实现呢?
不容易,图片传输需要了解另外一套文件传输协议。
小侠对图片传输有了解吗?或者之前有没有哪个开源的QQ代码实现了这个功能?大家可以一起研究一下。听说EVA QQ有这个功能,不知道是不是真的。
以前用过eva的确可以传文件,但是现在不知道还行不行了。文件传输有点复杂,虽然我没实践过,但是也感觉不简单。因为是tx自己用udp实现的可靠传输协议。我还搞不明白,为何我在局域网用http下载文件有10MB/s,用它的UDP文件传输协议才6MB/s呢。
是不是传输的同时有压缩?
看错了。我以为是数据量,原来是速度。影响速度的可能是协议不同。应该是它的应用层协议比http慢一些。
xia,我是用java写的,想请教下,我发送的包是02 21 07 00 91 … 03的byte[]数组,但是服务器就是没反应,这会是怎么回事啊?
服务器地址有问题或者你的数据包有误
服务器地址是什么啊?我想的是UDP,sz的,端口8000,但是没用,然后我登了扣,在dos下看了IP,是TCP,我用的这个,能连上,获得session,但包发过去还是没反应;至于数据包,应该不会错,还是,顺序错了,反过来?03 … 91 00 07 21 02?
我用cmd下获得的IP,执行结果:
receiveMessage大小:166
ClientDecoder处,receiveMessage:
400 Bad Request
400 Bad Request
nginx
可以抓包检查一下。
普通的数据包,02是开始的标记,03是尾部标记。
哦 ,那要用什么软件才能抓到啊?
Xiaoxia:
我用QQAnalyzer抓包试了下,用扣扣登陆,抓到的包是UDP,8000端口,而在CMD下看到的IP是TCP,80端口,这是什么原因啊?
我把代码里的地址换成TCP的地址,发送包,只抓到一个我发送的包,而换成UDP的地址,一个包都抓不到,这是什么原因啊?
取决于登录方式,udp和tcp都行的。
哦,那我要怎么来标识登陆方式是什么呢?是靠端口号?如果我用UDP方式,地址是多少啊?
udp和tcp的传输层协议不同。应用层协议也有点差别。tcp多发一个包长度。你抓包看看吧。
OK,搞出来了,十分感谢你的帮助。
wireshark? tcpdump? smartsniff?
不知道方不方便,我想耽误你一点时间问你几个问题,因为也是刚开始玩这个,还几个忙点一直越不过去,呵呵,我也是学生的,我的扣扣:1329392274 ,如果不方便也没关系
这个机器人不能群聊,一直是失败是啥原因
SVN 里面的也不能群聊
这个贴我看了很多遍了。
这个贴提供的源码能编译,但登录的时候,却是[1151264686] resend packet cmd: 91错误。。我改用域名登录,不知道该改,改了几趟都是网络错误。
而在SVN那里下载的,却是编译不了。。。。
mingw32-make: Entering directory `D:/svn/branches/myqq3/src’
gcc -c -Wall -O -Werror -I”../lib/pthread” -o qqsocket.o qqsocket.c
gcc -c -Wall -O -Werror -I”../lib/pthread” -o qqcrypt.o qqcrypt.c
gcc -c -Wall -O -Werror -I”../lib/pthread” -o md5.o md5.c
gcc -c -Wall -O -Werror -I”../lib/pthread” -o debug.o debug.c
gcc -c -Wall -O -Werror -I”../lib/pthread” -o qqclient.o qqclient.c
In file included from qqclient.c:34:
protocol.h:8: warning: malformed ‘#pragma pack(push[, id], )’ – ignored
protocol.h:17: warning: #pragma pack (pop) encountered without matching #pragma
pack (push, )
mingw32-make: *** [qqclient.o] Error 1
mingw32-make: Leaving directory `D:/svn/branches/myqq3/src’
我是新手,刚刚学习,不知道该从那里入手,能发一个配置好的到我邮箱。
你可以发你的网络部分的配置上来看看~
我用默认的那个,会说网络错误
# 登录方式
# TCP or UDP or PROXY_HTTP
QQNetwork = UDP
# 禁止使用色彩。true表示禁止色彩文字
NoColor = false
配置:
下面为QQ服务器列表,每个服务器用|来隔开,IP和端口用:来给开。
电信服务器
#QQTcpServerList = 219.133.60.173:80|219.133.38.232:80|219.133.40.177:80
最多允许添加16个
QQTcpServerList = 219.133.60.173:443|219.133.49.125:443|58.60.15.33:443
QQUdpServerList = 219.133.49.171:8000|58.60.14.37:8000|219.133.60.36:8000|sz6.tencent.com:8000|sz7.tencent.com:8000|sz8.tencent.com:8000|sz9.tencent.com:8000
HTTP代理服务器
QQHttpProxyServerList = 148.233.239.24:80
log记录
13:09:04 [qqsocket.c]qqsocket_init(48): WSA Startup.
13:09:49 [qqclient.c]qqclient_login(158): login
13:09:49 [qqconn.c]qqconn_connect(192): connecting to 58.60.14.37:8000
13:09:49 [qqclient.c]qqclient_keepalive(117): keepalive
13:09:56 [packetmgr.c]packetmgr_check_packet(376): [1151264686] resend packet cmd: 91
13:10:02 [qqclient.c]qqclient_detach(199): process = 4
13:10:02 [qqclient.c]qqclient_logout(216): joining keepalive
13:10:02 [packetmgr.c]packetmgr_recv(308): end.
13:10:02 [qqclient.c]qqclient_keepalive(151): end.
13:10:02 [packetmgr.c]packetmgr_end(334): packetmgr_end
你不是说用域名地址登录吗?你怎么没有把IP删除呢???
如果改成PROXY_HTTP登记录,我的配置如下:
# 登录方式
# TCP or UDP or PROXY_HTTP
QQNetwork = PROXY_HTTP
# 禁止使用色彩。true表示禁止色彩文字
NoColor = false
下面为QQ服务器列表,每个服务器用|来隔开,IP和端口用:来给开。
电信服务器
#QQTcpServerList = 219.133.60.173:80|219.133.38.232:80|219.133.40.177:80
最多允许添加16个
QQUdpServerList = sz6.tencent.com:8000|sz7.tencent.com:8000|sz8.tencent.com:8000|sz9.tencent.com:8000
HTTP代理服务器
QQHttpProxyServerList = sz6.tencent.com:8000
LOG日志是这样的
13:15:37 [qqsocket.c]qqsocket_init(48): WSA Startup.
13:16:07 [qqclient.c]qqclient_login(158): login
13:16:07 [qqsocket.c]netaddr_set(154): Get IP: 183.60.48.168
13:16:07 [qqconn.c]qqconn_connect(192): connecting to 0.0.0.0:0
13:16:07 [qqsocket.c]qqsocket_connect2(137): qqsocket connect failed.
13:16:07 [qqconn.c]qqconn_connect(194): can’t not connect server 0.0.0.0
13:16:07 [qqclient.c]qqclient_detach(199): process = 4
13:16:07 [qqclient.c]qqclient_logout(216): joining keepalive
13:16:08 [packetmgr.c]packetmgr_recv(308): end.
13:16:08 [packetmgr.c]packetmgr_end(334): packetmgr_end
代理不是这样设置的。
不使用代理,使用UDP和域名地址登录吧。顺便ping一下那个域名看能不能通 😛
用UPD登录,并把IP的地址去掉。但还是提示网络错误。
而我看LOG日志,是曾经连接到的了。(小易是我QQ的昵称)
好头晕啊。。。。
16:38:25 [qqsocket.c]qqsocket_init(48): WSA Startup.
16:38:50 [qqclient.c]qqclient_login(158): login
16:38:50 [qqsocket.c]netaddr_set(154): Get IP: 112.90.86.202
16:38:50 [qqconn.c]qqconn_connect(192): connecting to 112.90.86.202:8000
16:38:50 [qqclient.c]qqclient_keepalive(117): keepalive
16:38:51 [prot_login.c]prot_login_touch_reply(113): redirecting to 112.90.86.241
16:38:51 [qqconn.c]qqconn_connect(192): connecting to 112.90.86.241:8000
16:38:52 [prot_login.c]prot_login_request_reply(211): process verify password
16:38:53 [prot_login.c]prot_login_get_info_reply(370): Hello, 小易
16:38:53 [prot_login.c]prot_login_send_info_reply(527): login result = 44
16:38:53 [qqclient.c]qqclient_detach(199): process = 4
16:38:53 [qqclient.c]qqclient_logout(216): joining keepalive
16:38:53 [packetmgr.c]packetmgr_recv(308): end.
16:38:53 [qqclient.c]qqclient_keepalive(151): end.
16:38:53 [packetmgr.c]packetmgr_end(334): packetmgr_end
恩,到这地步,看来是协议不完善的问题了。不支持你的号码登录?
但在win32的目录,编译好的那个myqq.exe却又能登陆,也能接收和发送信息啊
me too.
但那个win32编译好的,登录和发送信息都没问题
现在是不是一用就异常? 我用MYQQ登录上去3秒钟就异常了。。。。
用编译好的WIN32的MYQQ,收发信息也没什么问题。
但编译原码的,登录也登录不了。
这么神奇~~你看看这里的评论,看能不能找到解决方案,我记得之前有人提到这个问题,也给出了问题原因。
再来顶你一下 。。 O(∩_∩)O
你是不是下错了,网上有两个版本的MYQQ3.3 一个是完整版 一个是不完整版。。。。
不过我这个编译了是能登录,不过有登录过程也有问题,随时出现错误,而且账号随时容易被冻结
我终于知道为什么用你的MYQQ登录之后会被封了,看了你的源代码之后知道你很多地方漏了RANDOM_KEY过程,直接使用16位0作为KEY,估计腾讯有专门的检查机制,相同的KEY用多了就需要激活,如果相同的KEY的出现达到一定次数,就会视为数据异常,将QQ号的登录转人工处理或者其他方式处理,估计一眼就能看出来使用第三方登录工具登录的
你能不能发个编译后能登录的MYQQ给我呢?我现在还没做成。
邮箱:[email protected],,,,谢谢啊~!
你好,我最近在使用qqdicebot4这个软件,他是基于你的myqq而做的机器人。但是这个机器人不能在2开头的9位数的qq群中回复,这是为什么?
是不是这个数字大于 2^32 / 2 了?
有可能是int最大值问题,也有可能是协议问题。
手机版QQ使用TCP协议,与UDP协议有多少不同?
myqq的各版本中,TCP协议均会报【网络错误】,只有UDP协议正常。
TCP连接何时可用?
谢!
按理来说,这个UDP、TCP不受QQ协议的影响,只是连接方式不同。
提示的“网络错误”,应该是TCP的服务器地址有问题了。如果是连接的服务器用了IP,可以试试改为域名。
xiaoxia,我对myqq很感兴趣,我也在分析tm的协议,我用svn上下载的源码编译,登入myqq发消息时都会提示超时,实际上是能别人是能收到消息的,能把我加入到讨论组中去么?
你好,xiaoxia,请教一个问题就是在发送0X30包的时候,总是收到提示:您的网络环境可能发生了变化,为了您的帐号安全,请重新登录 请问是发送的数据包有什么问题吗
这个还是一个谜,但是就目前经验来看,是跟有些协议数据包没有发送给服务器有关的。
同时也跟号码是否在常用IP登录有关。
不好意思 ,一点发送没反应,就多点了几次,麻烦吧重复的删除掉吧
这wordpress就是反应有点慢,会有这个问题的。
/_\ 代码好像很不规范
So sorry!
因为过去高中写的代码,不大注重代码的艺术 😛
怎么我用Myqq3.30编译出来的exe发送的协议版本却是1663的啊,压缩包里面自带的exe协议版本却2226的
这么神奇的事情都会发生?你是说svn上的吗?还是这里下载的?
URL ‘http://myqq3.googlecode.com/svn/trunk/myqq3-read-only’ doesn’t exist
下载来用,64位显示网络错误。
我是华南理工大学教育网,会不会只是我的网络问题……
我后来用了一个vpn也不能登登录。
想不明白。
时间太久了,IP地址都失效,改域名试试。MyQQ3.30已被抛弃……
那myqq4.0还有希望吗?
小虾,你好,用了你这机器人,是海沙改版的,可以用上API,但是POST到API的QQ群ID号却是不对的。不知是哪里获取QQ群ID号的?谢谢指点,下面是两段代码,POST到网站用的,就这里的群号是错的,有的还是负数。
void CallBackmsg(char* msg)//POST信息到网页,开发:海沙
{
char* Sendmsgurl, tapys[]=”POST”,*callbackmsg,tmp[22];
uint uid;
int is_qun=0;
char sestr[10]=”&KeyChar=”,char_Null[]=”NULL”;
if(strstr(msg,sestr))
{
mid_value( msg, “qunid=”, “&sendid=”, tmp, 20 );
}else{
mid_value( msg, “sendid=”, “&robotid=”, tmp, 20 );
}
uid=strtol(tmp,NULL,10);
free(tmp);
NEW( char*, Sendmsgurl, 256 );
NEW( char*, callbackmsg, KB(10) );
Sendmsgurl=config_readstr( g_conf, “CallbackURL” );
if(Sendmsgurl==char_Null)*Sendmsgurl=NULL;
if(*Sendmsgurl!=NULL)
{
callbackmsg=http_request_form(tapys,Sendmsgurl,msg,strlen(msg));
if(*callbackmsg!=NULL){
if(strstr(msg,sestr))is_qun=1;
Sendmsg_to(is_qun,uid,callbackmsg);
}
}
free(Sendmsgurl);free(callbackmsg);
_endthread();
}
void socket_listen()//作者:海沙
{
struct sockaddr_in cliet;
char *header,*post_msg,*temp;
int listen_sock,iLen,sac,len,Port,is_qq_qun,qq_num;
Port=strtol(config_readstr( g_conf, “Port” ),NULL,10);
if(Port>0){
listen_sock = qqsocket_create( 1, NULL, Port );
listen(listen_sock,5);
printf(“Listening PORT:[%d]\n”,Port);
iLen=sizeof(cliet);
while(1)
{
sac=accept(listen_sock,(struct sockaddr*)&cliet,&iLen);
NEW( char*, header, KB(10) );
len=recv(sac,header,KB(10),0);
if(len>0)
{
NEW( char*, temp, 50 );
NEW( char*, post_msg, KB(10) );
mid_value( header, “a” , “\n”, temp, 50 );
is_qq_qun=strtol(temp,NULL,10);
post_msg=strstr(header,”\n”);
post_msg+=strlen(“\n”);
mid_value( post_msg, “a” , “\n”, temp, 50 );
qq_num=strtol(temp,NULL,10);
post_msg=strstr(post_msg,”\n”);
post_msg+=strlen(“\n”);
free(temp);
if(qq_num<=10000)
{
send(sac,"QQ Number Is Error!",sizeof("QQ Number Is Error!"),0);
}else{
Sendmsg_to(is_qq_qun,qq_num,post_msg);
send(sac,"ok",sizeof("ok"),0);
}
}
free( header );free( post_msg );
qqsocket_close( sac );
}
qqsocket_close( listen_sock );
}
_endthread();
}
谁改的谁维护呗,与xiaoxia何干……
xiaoxia同志,我的Q是470997. 敬请加我。谢谢。
最新版的有没有的下载?
下载的文件中,似乎缺少pthreadGC2.lib,只有对应的dll。make的时候,只有dll不行吧。
如果是运行的话,只需要dll即可。
小虾还在维护这个?
用3.30的代码,登录时QQ服务器反馈:
尊敬的用户,您当前使用的产品版本过旧,为保证您正常使用,请您到官网下载并安装最新的版本。谢谢!下载地址:http://im.qq.com/qq/dlqq.shtml
xiaoxia,有没有更新的代码啊? SVN上的我取不下来,总是出错。。。
我的Q: 470997
多谢!!!
终于在VC6下编译可以运行了。。。
但是登录似乎不顺畅,总是网络错误,总得试多次才能登录。。。
Pingback引用通告: MyQQ:可以在终端里面上的QQ | ubuntu 啦
QQ账号:253605712
QQ密码:
是否隐身登陆?(y/n)n
loginGet IP: 111.30.131.174connecting to 111.30.131.174:8000登陆中…
keepaliveredirecting to 123.151.13.82connecting to 123.151.13.82:8000process verify passwordDenied.尊敬的用户,您当前使用的产品版本过旧,为保证您正常使用,请您到官网下载并安装最新的版本。谢谢!下载地址:http://im.qq.com/qq/dlqq.shtml您的QQ需要激活(http://jihuo.qq.com).
嗯嗯,没办法了~~
话说当年因为用这个,我和女友3个qq被腾讯封了。当时被气疯了。