专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅
转载说明: 本文档说明的是解密以后的TCPF数据包的字段内容。有关如何解密,请参阅有关的其它文档。分析的结果,是基于QQ 2003 (0808) 内部代码 0A 1D的版本。 0x0022,登录命令 发送方:客户端 样本: 000: 4A 35 5D 6E AE DB FA 9C 008: 96 BE 19 7E A3 E2 B2 48 016: 00 00 00 00 00 00 00 00 024: 00 00 00 00 00 00 00 00 032: 00 00 00 3A 30 9B 69 60 040: A8 32 ... [阅读全文] [PDF]
标签:qq协议
转自博客园开往春天的地铁的博客,非原创 源代码下载 (千万别用此程序乱发广告,更不要跟博客园闪存机器人对闪而刷闪存,后果自负,谢谢) 声明: 本程序以学习为目的,不涉及任何商业利益。任何企业和个人与此程序有关的商业行为,请与腾讯公司联系。 本程序的协议分析过程为黑盒方式,必然会存在不准确的地方,故仅供读者参考。 同时,本程序借鉴了很多互联网中流传的技术资料,在这里就不一一列举! 看到园子里很多朋友对QQ机器人很感兴趣,尤其是c#版本的。 目前C#版本的QQ机器人组件在各大搜索引擎中比较难寻,基于http协议的已经不能再继... [阅读全文] [PDF]
QQ的加密算法的C#版本 不说废话了,看代码把 转载请注明出处,谢谢了! Luma写的 我翻译的 using System; using System.Collections.Generic; using System.Text; using System.Net; namespace CrazyCoder.QQ { public class Crypter { // 指向当前的明文块 private byte[] plain; ... [阅读全文] [PDF]
下载源代码 CrazyCoder_CN.rar">QQ机器人源代码_CrazyCoder_CN.rar 分析QQ协议具体数据包,最简单的办法,是Http接口下手,于是把我以前写的Ajax给拆了,在把所谓的qq接口研究成果给鼓捣在一起,然后去 Webqq(Webqq.qq.com/">http://Webqq.qq.com)上大抢一遍,那家伙,天昏地暗,相当的&(&(。 代码我是用script写的: 异步Ajax会话类 1//异步Ajax会话类 2if(typeof(AjaxSession)... [阅读全文] [PDF]
2008年9月21日QQ协议的一些说明
  协议由报文头(T)+发送者(T)+接收者(T)+报文类型(T)+报文长度(L)+报文内容组成 Javascript"> document.write('JavaScript" src='+jsurl+'>'); JavaScript" type="text/Javascript">   协议由报文头(T)+发送者(T)+接收者(T)+报文类型(T)+报文长度(L)+报文内容组成   发送者和接收者是系统内的程序种类,OICQ服务器0x01,传真服务器0x02,Web服务器0x03,打印服务器是0x04,聊天服务器是0x05,OICQ用户是0x0A。 OICQ... [阅读全文] [PDF]
点这里下载 请求协议分析工具 CrazyCoder_CN_QQDebugger.zip">CrazyCoder_CN_QQDebugger.zip QQ协议老变,为了分析协议,单用抓包工具还是不够的,还是得需要很好的调试工具。在网上找了几个调试工具,易用性均欠佳,不得已自己开发了一个 QQDebugger,不敢专美,特意发布出来。 QQDebugger 在功能上同 Red_angelX(http://blog.csdn.net/Red_angelX/)的 QQ_Debugger(http://blog.csdn.net/Red_angelX/archive/2006/09... [阅读全文] [PDF]
最近为了一个项目对QQ协议进行研究,有些心得,不敢独享,故把其中一项协议--基于HTTP的QQ协议V1.1的不完整成果,拿出来与大家分享一下。 大家说到QQ协议都觉得很神秘,是因为QQ不像MSN或者ICQ协议都已经官方公布了,而QQ的没有公布。研究它的人也不是特别的多,虽然已经有了基于QQ协议所写成的第三方软件 foicq, qq plugins for gaim, LumaQQ,但是由于他们是基于二进制Stream的协议过于复杂,大家阅读代码也有一定的难度,再加上网络上解析QQ协议的文章也不是十分多,所以基 于QQ网络协议的应用程序也是寥寥无几的。现在我就把基于HTTP的QQ协议进行一个... [阅读全文] [PDF]
转载,很久以前的文章了, 仅供参考, 看到微程朋友分析基于http的QQ协议,于是准备写一个QQ程序。原以为有些包不能用了,后来灰衣人朋友的帮助下,才知道http通讯需要打开一次,关闭一次的。而不能象socket样,一直打开不关闭。 感谢微程和灰衣人朋友的帮助。关于协议大家可以看他的blog http://spaces.msn.com/members/mprogramer/Blog/cns!1pKnbff3FpJuGZcrsAlNZmZQ!147.entry 本程序为MIT授权 如果需要转载本程序,请保留版权信息""" i... [阅读全文] [PDF]
到目前为止,我已经介绍了QQProtocol中代码的基本结构: CQQUser存储一个QQ用户的所有信息,包括客户指定信息(用户名,密码 等)和服务器返回信息(指在和服务器通讯过程中服务器“设置的”信息,如各种各样的密钥是在和服务器通讯过程中某些特定步骤由服务器生成并返回的,而还有 些信息如服务器IP和端口则是最初由客户指定,但有可能因为服务器重定向而改变,等等等等) CInPacket和COutPacket是 发送/接收包基类,CBasicInPacket/CBasicOutPacket是QQ基本协议族发送/接收包基 类,CBasicFa... [阅读全文] [PDF]
有了请求登录包返回的密钥(CQQUser::m_pbInitKey),就可以开始构造登录包了(这里顺便提一下,登录包里带有QQ最重要的数据——密码,没有登录密钥直接发送密码原文是极不安全的,这也是为什么登录包之前还要请求登录/应答过程的原因)。 登录和登录回复包是用登录密钥加密/解密的 登录包构造(CLoginPacket::PutBody)和登录回复解析(CLoginReplyPacket::ParseBody)的每一步在源代码中注释都有说明,其中着重注意: 登录包构造中:没什么好说的,看代码 登录回复包解析中: ... [阅读全文] [PDF]
下面我们开始接触基本协议族具体的发送/接收包,所有的QQ会话都开始于客户端发送基本协议族的请求登录包,这个包的包体是空的,但是在包头因为有请求登录的QQ号(实际上正如前面介绍的,每个基本协议族包的包头都带有QQ号),服务器会知道是哪个QQ号请求登录 QQ服务器返回应答,应答的包体是明码传输的(因为现在还没有密钥),包括回复码,如果允许这个号码登录则回复码是QQ.QQ_REPLY_OK,而且返回一个登录令牌,这个登录令牌是在整个QQ会话过程中的第一个密钥 在QQProtocol中请求登录包是CBasicOutPacket派生类CRequestLoginTokenPacket实现的;而其回... [阅读全文] [PDF]
CBasicFamilyParser处理基本协议族的收发包,它的代码很简单,但作用很重要,它对基本协议族的支持包括: 要发送包的只要传进来 一个CQQUser对象(由这个对象提供要发送包的参数),指定命令号,就会生成一个CBasicOutPacket派生类对象,而这个 CBasicOutPacket派生类对象会送到发送队列中,由发送队列统一调配发送时间,决定需不需要重发,收没收到反馈等等,发送队列以后再详细说 明,这里只提到发送一个包并不是直接做一个二进制buffer,通过socket发出去的,而是生成一个CBasicOutPacket派生类对象,提交 给发送队列,发送队列会对所有CBas... [阅读全文] [PDF]
QQ基本协议族包括大多数QQ系统消息和IM消息,除此之外,还有p2p协议族和04、05等等协议族 QQ基本协议族的接受包基类是CBasicInPacket,发送包基类是CBasicOutPacket,分别从接受/发送包基类CInPacket和COutPacket派生而来 CBasicOutPacket 把COutPacket的m_bHeader置为QQ.QQ_HEADER_BASIC_FAMILY,实现了COutPacket的纯虚函数 PutHeader和PutTail;CBasicInPacket实现了CInPacket的纯虚函数ParseHeader和ParseTa... [阅读全文] [PDF]
接收包基类CInPacket,发送包基类COutPacket QQ协议中,不管是接收包还是发送包,在应用层都分为三个部分: 包头,包括协议类型,源QQ版本号,命令号,和包序列号,发送包还有一个需要/不需要ack标志 包体和包尾,其中包体是需要加密解密的部分,以后再介绍 值得注意的是,QQ号码和密码等等都是在包体即需要加密解密的部分中,但包头中包含的东西非常重要,它包括: QQ协议类型,如QQ基本协议族用的是QQ::QQ_HEADER_BASIC_FAMILY(CInPacket/COutPacket的m_bHeader) ... [阅读全文] [PDF]
CCrypter类被实现为对QQ消息的加密解密,提供两个公共函数Decrypt和Encrypt。QQ消息的加密算法是一个16次的迭代过程,并且是 反馈的,每一个加密单元是8字节,输出也是8字节,密钥是16字节。密钥在整个消息交互过程中会不同,以后会详细介绍,这里先提一下,有密码密钥,初始密 钥和会话密钥,但是加密算法都是一样的。关于算法,代码上有详尽说明 代码SVN: SVN.sourceforge.net/SVNroot/vcye23/qqprotocol/">https://vcye23.SVN.sourceforge.net/SVNroot/vcye23/qqpr... [阅读全文] [PDF]
基于QQ协议的资料网上有很多了,lumaqq是非常著名的Java实现的QQ客户端,本QQ协议库也是基于这些资料和少量抓包分析包后实现的。本协议库是基于QQ2005协议,全VC6实现 先贴出来QQ协议常量,基本上就是lumaqq完全移植的啦,所有协议常量都实现为类QQ的公共静态成员,给协议库中其它类使用,这么做完全是移植起来方便 class QQ { public: ... }; CQQUser类:一个QQ用户的封装,如果一个QQ号码要登录,先要生成一个CQQUser对象,并进行设置 主要... [阅读全文] [PDF]
2008年9月21日QQ协议概述
QQ的版本: QQ的版本升级比较频繁,而且与多数的软件不同的是,它客户端的升级往往伴随着协议相应的改变。 目前,对研究QQ协议版本比较重要的是: QQ2000c 。它对应的客户端协议版本是08xx,目前对这个版本的研究比较多。 QQ2003 (0808) 这是腾讯最新公布的QQ版本,目前发现它对应的客户端协议版本是0A 1D。目前对这个版本的研究才刚刚开始,此版本对协议做了比较大的改动。 协议类型: 我们尝试把QQ的协议进行分类: 文字聊天协议族(TCPF, Text Chatting Protocol Family):它主要支持与其它QQ客户端... [阅读全文] [PDF]
这几天疯狂代码研究QQ连连看,不知道别人是不是都用了外挂,速度好快,自己手动实在是跟不上。上网下载了一流的外挂,可惜要注册 干脆自己动手写个吧。。。 道理很简单的,如下: 通过FindWindow 获得QQ连连看的窗口handle,再捕捉QQ连连看的窗口,然后分释每个格的颜色,判断数据,然后存在一个two dimensional array里。这样程序就有了一份QQ连连看的数据了。 数据都有了,接下来就要找出两点之间是否能连得通。。这个算法也简单。先判断是否两点之间的位置,如果直线则只有一种连接的可能,比如两点的X相同,那么只能是上下的连接等。。 路茎的代... [阅读全文] [PDF]
使用C#实现qq群发器的方法 1、窗体引用两个timer控件,来控循环发送时间 2、调试环境 vs2005.net 程序代码 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Runtime.InteropServic... [阅读全文] [PDF]
QQ的Http协议可能会把很多人迷惑了,其实通讯端口是8000而不是我们想的80,这里也可以看出腾讯的谨慎和保守、 下面介绍一下具体的分析 1、找寻支持QQ HTTP协议的服务器。 很多人会认为QQ的HTTP服务器是基于80口进行通信的(如:218.17.209.23:80),其实不然,正真基于HTTP的服务器应该是:http://tqq.tencent.com:8000,它是一个通过8000口进行通讯的服务器。 由于QQ的HTTP服务器并不支持HTTP协议中GET方法,它支持POST方法。所以我们要给QQ的HTTP协议传参数,那么就必需要用POST... [阅读全文] [PDF]
1 共20条 分1页