QQ使用HTTP代理服务器登陆,登录失败,原因:服务器返回不成功
那是你之前登录过高版本的QQ了,建议你先卸载你当前的qq,然后重新安装高版本的QQ就可以了。
下载地址
http://wwwskycncom/soft/14821html
你说的一半对一半不对不是完全的从本地验证因为本地上次登陆使用的密码机器会记住等你下次登陆时如果输入错误机器会提醒着样会给服务器起到减轻负担的作用
如果输入错了次次都要服务器验证的话那么腾讯估计得最少在加5个服务器机组起到减轻负担的作用
所以先通过本地验证
然后在通过服务器验证
原因就是可以给服务器减轻负担!
一、弄清QQ登录服务器的原理
QQ登录取的服务器通常有以下三大类:UDP类型、TCP类型、会员VIP类型,只要勾选QQ登录界面中的“高级设置”,然后勾选“使用高级选项”即可看到(这里以QQ2005 Beta2为例),如图1:
图1
1UDP类型
UDP 8000端口类13个:速度最快,服务器最多。 QQ上线会向这些服务器发送UDP数据包,选择回复速度最快的一个作为连接服务器。 服务器名字均以SZ开头,域后缀是tencentcom,其IP分别为:
61144238145、61144238146、61144238156 、202104129251、202104129254、202104129252、202104129253 、61141194203 、20296170166 、2181895221、2191334515 、61141194224 、20296170164
2TCP类型
TCP HTTP连接服务器4个,使用HTTP 80 和443端口连接。这4个服务器名字均以tcpconn开头,域后缀是tencentcom,其IP为:
2181720923
2181895153
61141194227
2181895171
3会员VIP类型
会员VIP登陆服务器,使用HTTP 443安全连接
服务器IP 2181720942
二、突破端口限制的封锁
封锁QQ的方法有很多,下面首先看看最常用的“封锁端口法”。由于QQ用的是UDP协议,默认通讯端口是4000,所以只要在网关上制定过滤规则,把源端口是4000的UDP数据包过滤掉就可以实现对QQ的封杀了。
对付这种封锁,可以使用某些软件把QQ的通讯端口进行重定向,改变QQ的通讯端口,从而突破网关的限制。由于QQ默认采用4000端口传送消息,如果4000被占用的话,那么它就会自动改用4001端口,如果4001端口被占用,就改用4002端口,以此类推。所以,就算网关上把4000端口的数据包都过滤掉,但我们可以在启动QQ之前,先把从4000开始的若干端口都占用掉,那么QQ启动的时候,就会顺理成章的使用其后面的端口,如此就可以冲破网关限制用QQ了!
要实现以上的目的,需要使用一个工具“NukeNabber”,“NukeNabber”是一款端口监视器软件,这个软件可以自定义50个端口,也就是说如果我们在NukeNabber中填入4000-4049就可以把这些端口全部占用!那样再运行QQ就会自动使用4050端口,从而突破网关的限制!具体使用方法如下:
下载并安装好该软件后,运行NukeNabber,点击“File”菜单下的“Options”选项,再点击该窗口中的“Advanced”标签,在“Port to monitor:”栏中填入4000(图2),然后点击“Add/Modify Port”将其加入到NukeNabber中,该端口就被占用掉。用同样的方法把网关封锁的其他端口占用掉就可以达到自由使用QQ的目的了!
图2
三、使用QQ代理公布器设置代理
“QQ代理公布器XP”是一款发布网上的免费代理资源的程序,天天公布最新、最快的QQ代理。软件采用的是从网络上的代理数据库随机读取代理数据的方式运行,这样可以即时地得到有用的代理数据。有了这个工具,你就可以随时找到有效的代理服务器。
下载QQ代理公布器
安装完毕后,运行该软件(如图3),选择代理类型:可以选Socks5或Http类型。接下来选择是否测试代理:当你按“读数据”后,程序不能正确返回数据(程序死了,或出现异常),请取消测试代理。然后点击“读数据”,就可以读取相应的代理数据。
图3
复制其中的一组地址,然后打开QQ的“菜单”→“个人设置”→“系统设置”→“代理设置”→“类型”,在类型中选择“HTTP代理服务器”(图4),把前面复制的代理服务器地址和端口粘贴进去即可。你也可以在此处先测试一下代理服务器工作是否正常,点击“测试”按钮,如果显示为“代理服务器工作正常”,则说明可以用,否则,需要换另外的代理服务器地址!
图4
四、用Http通道突破防火墙限制上QQ、MSN
除了以上的方法外,我们还可以使用Http通道软件来突破防火墙的限制,利用唯一Http访问的权限获得其他Internet应用。http://wwwhttp-tunnelcom是一个专业提供Http通道服务的公司,通过他们的在线Tunnel Server,局域网内的用户可以使用被防火墙所屏蔽的ICQ、E-mail、PC Anywhere、MSN、 QQ、Napster等软件。 使用Http-tunnel的Tunnel Server必须使用Http-tunnel的客户端程序Http-Tunnel Client,可以在wwwhttp-tunnelcom下载。
提示:什么是通道呢?这里所谓的通道,是指一种绕过防火墙端口屏蔽的通讯方式。防火墙两端的数据包封装在防火墙所允许通过的数据包类型或是端口上,然后穿过防火墙与对方通讯,当封装的数据包到达目的地时,再将数据包还原,并将还原后的数据包转交到相应的服务器上。
1程序安装和设置
运行下载的安装程序,安装过程比较简单一路Next即可完成。安装完成后,会出“Configuration(配置)”窗口,设置本机的Internet连接,有三个选项:
(1) Auto detected(自动检测):你果你不知道你的机器连接,可以选择这个。
(2) No Proxy,only a firewall(直接上网,有防火墙):使用局域网和直接上网的用户选这个。
(3)Specify Proxy(指定代理服务器):如果你使用代理服务器上网,选这个,同时你还必须输入代理服务器的地址和端口,如果需要用户名和密码还需要一并输入。
设置好连接,可以单击“Test(测试)”按钮,测试一下,如果看到“Test successful(测试成功)”的提示,就代表你设置的已经完成。这时,程序就可以正常运行了,将它最小化后它会在任务栏的提示区内生成一个图标,单击可还原,如图5。
图5
2设置让QQ正常访问
由于QQ对外访问使用的端口是4000,所以网络管理员通常通过限制端口的使用来限制QQ的访问,下面看看如何设置QQ通过http-tunnel访问Internet。
(1)打开QQ,单击“QQ菜单”按钮,选择“个人设置”,然后点击“系统参数”。
(2)在弹出的QQ参数设置窗口中,选择“代理设置”, 然后勾选“使用自定义的网络设置”,选择“HTTP代理服务器”。 输入代理服务器地址:127001,端口号:1080。
(3)这里你可以点击“测试”按钮来确保代理服务工作正常,然后点击“确定”按钮,关闭所有窗口,重新登录即可使用QQ了。如图6:
图6
3设置MSN访问
MSN的访问设置与QQ差不多,具体设置步骤如下:
(1)选择“工具”菜单的“选项”。 然后点击“连接”选项,点击“高级设置”,在弹出的窗口中,在SOCKS代理中,服务器中输入“127001”,端口号“1080”。
(2)点击“测试”按钮会提示你连接成功,关闭所有窗口,重新登录即可使用MSN了。如图7:
图7
好了,通过以上的方法,相信你已经能够应对常见的网管限制了,除非是对你进行全“监控”,压根儿就不让你聊天!
这可能是QQ后台服务器数据记录异常或者说是服务器返回你的QQ状态异常。
根据实际经验,曾经遇到过一个QQ未开通任何增值服务,且不在任何设备上登录,但是别人QQ上仍然显示此用户一直手机在线。
这个现象并不是个别存在的,应该是属于服务器显示状态相关的数据有BUG。
一、 口令加密
每个oicq帐号的口令都保存在本地的一个文件中。登录oicq时,先将输入的口令与本地的
文件进行比较。如果口令与文件中保存的不符,将提示"输入的密码与上次成功登录的密码
不一致,是否到服务器验证?"。
OICQ 99c的口令文件为matrixcnt。OICQ 99b的口令文件为matricewh。
口令加密算法的函数原型为:
void CalcPassword(char password ,int len ,char outbuffer)
参数:
password为输入的明码口令
len: password长度
outbuffer:固定16个字节长度的加密后的口令。
说明:该函数用调试工具查到入口地址为15f:456718。在口令加密和用户之间通讯时都要
用到这个函数。已知能够计算的最长口令为20个字节,见下文用户之间加密通信。
Oicq99b的口令文件就是将口令进行一次CalcPassword计算后保存在每个oicq帐号目录中的
matrixewh,该文件正好为16个字节。因此有这个文件就可以使用暴力进行口令破解了。
Oicq99c的口令文件就复杂多了,第一次将明码的口令用CalcPassword进行计算,然后
将结果再作为口令进行计算,迭代计算很多次。计算次数用4个字节的双字表示。将4个字
节的次数和计算后的口令保存在每个oicq帐号的matrixcnt文件中,这个文件正好为20个
字节长度。因为迭代计算了很多次,使口令计算时间极大地延长了,使用暴力破解oicq99
c的口令几乎不太可能。
二、 聊天历史的查看
与每个人聊天的历史都存在自已的oicq号目录下,文件名为对方的oicq号msh(99b)或
msj(99c)文件中。
核心解密函数的原型为:
BOOL Decode(char src ,int srclen ,char decodekey, char outbuffer,int p
outlen)
参数:
src:存放加密数据的缓冲区。
Srclen:src字节数。
Decodekey:固定16个字节的密钥。
Outbuffer:输出明文缓冲区的地址。
Poutlen:解密后的长度存放地址。
说明:该函数入口地址:15f:456D33。这个函数以密钥进行解密。如果成功返回TRUE,否
则返回FALSE。
显而易见,解密的关键是如何得到16个字节的密钥decodekey。
查看聊天历史的密钥生成不需要口令。算法为:
1、 用当前使用的oicq号为口令,调用口令计算函数CalcPassword,得出一个临时密
钥keycode1。
2、 用keycode1为密钥,进行解密。数据为文件matrix2ewh(99b为matrixewh) 从0
起第17个字节,长度为32个字节,解出16个字节的密钥为keycode2。
3、 用keycode2为密钥,可以解开跟任何人聊天的历史。
例如要查看oicq号为123456的聊天历史记录,算法为:
BYTE keycode1<16>;
BYTE filebuffer<32>;
//读文件matrix2ewh,从0起第17个字长,长度为32的内容读出保存在filebuffer。
ReadToBuffer(filebuffer);
//用当前的oicq号计算keycode1
CalcPassword(’123456’, 6 , keycode1)。
//计算keycode2
BYTE keycode2<16>;
int len = 16;
Deocode(filebuffer , 32 , keycode1,keycode2,&len);
//现在keycode2就是能看任何聊天历史的密钥了。
//如看跟888888的聊天历史,将文件888888msj读到缓冲区largerbuffer
Decode(largerbuffer,largerbufferlen,keycode2,outbuffer,outlen),成功后
outbuffer中为解密后的聊天记录。
三、 与服务器通信的加密
与Decode相对应,是一个加密函数Encode。
void Encode(char src,int srclen,char encodekey,char outbuffer,int
poutlen)
参数:
src:明文缓冲区。
Srclen: 明文缓冲区的长度。
Encodekey:固定16个字节的加密的密钥。
Outbuffer:输出加密缓冲区。
Poutlen:输出长度的保存地址。
说明:该函数入口地址:15f:456b62。将明文进行加密,密钥为encodekey。用d
ecode函数和同样的密钥可以进行解密。
l 登录服务器:
发送的数据包为
{BYTE b1;固定为0x2
BYTE b2;固定为0x3
BYTE b3;固定为0XA
BYTE b4;固定为0X0
BYTE cmd; 登录服务器为0X15。
WORD seq; 顺序号,从高到低存放
DWORD oicq号;以从高到低顺利存放二进制的OICQ号。
BYTE key<16> ;随机产生的16个字节的密钥。
BYTE buffer<64>;64字节的加密内容。
BYTE endchar ;固定为0x3。
最核心的是buffer<64>的内容。用口令调用CalcPassword进行一次计算,然后作
为密钥对0长度的明文进行加密,得出16个字节的结果,再进行加密发送。例如口
令为’abc123’,算法为
BYTE passkey<16>
CalcPassword(’abc123’,6’,passkey)
BYTE keycode<16>
int keycodelen=16;
Encode(0,0,passkey,keycode,&keycodelen)
BYTE sndbuffer<51>;
memset(sndbuffer,0,51)
memcpy(sndbuffer,keycode,16)
//sndbuffer其余的内容为当前机器的ip等信息,与检查口令无关
BYTE result<64>
int sresultlen=64
Encode(sndbuffer,51,随机产生16个字节的密钥,result,&resultlen)
最后把16个字节的随机密钥和64字节加密后的口令一同发给服务器验证。如果能用sniffe
r侦听到别人与服务器的通信,就能进行口令破解。当然也可以通过服务器进行在线的口令
破解,只是速度很慢,没有实用价值。
l 如果登录成功,服务器返回16个字节的密钥--ServerKey。
l UPD数据包的格式为
BYTE b1;固定为2
BYTE b2;固定为1
BYTE b3;固定为0
BYTE b4;固定为0
BYTE cmd;登录为0X15
WORD seq;从高到低顺序,与发送的seq一致。
BYTE msg<56>;
BYTE endchar ;固定0x3。
用口令经过一次CalcPassword计算,得出16个字节的密钥,对msg进行解密。从第1个字节
开始的16个字节即为与服务器通信的密钥暂称为ServerKey。该密钥经常变化。
在本次登录中,以后所有跟服务器的通信都用这个ServerKey为密钥进行加密和解密。
四、 其它用户发来的加密消息的解密。
其它用户的发来的加密消息格式为:
BYTE b1;固定为0x0
BYTE b2;固定为0x3
BYTE b3;固定为0xA或0X2
BYTE salt; OICQ号加密用
DWORD EncodeOicqID;加密后的从高到低的oicq号。
DWORD seq;序号
BYTE msg<变长>
l 对方oicq号的解密。
将EncodeOicqID的4个字节分别与salt进行异或操作,然后取反。
如salt = 0XA0, EncodeOicqID = 0X 5F5EBD1F。
//分别进行异或操作
0X 5F5EBD1F XOR 0XA0A0A0A0 = 0X FFFE1DBF
//再取反
NOT 0X FFFE1DBF = 0X1E240,转为10进制就是123456。因此对方的oicq号为123456。
l 消息的解密。
先合成一个20字节的口令。前4个字节为从高到低的二进制对方的oicq号。后16个字节为服
务器发来的ServerKey。ServerKey的来源见第三节。
如对方的oicq号为123456,20字节的口令为
00 01 E2 40 + 16字节的ServerKey。
用口令算法对这20字节的口令进行计算,得16个字节的密钥,就可以解开对方发来的消息
。
五、 发给其它用户消息的加密
在登录后,服务器会通知好友的IP地址和端口,以及一个16个字节的密钥。就是当前的OI
CQ号加对方16个字节ServerKey通过CalcPass的计算结果。
向对方发送消息时,只要用这16个字节进行加密即可。
六、 一些结论
oicq 99c的加密是严密的,不易进行破解。除非得到某人的口令,否则不可能进行消息假
冒等。如果你有每秒能运算百亿次的巨型机,也许能解开对方跟服务器通信的16个字节的
ServerKey,而且必须要快。总之oicq 99c 是安全的,仍然在使用的早期用户间明文通信
协议不在本文考虑之内。
一:先把电脑杀杀毒,建议你重装QQ。
二:出错信息的网地址最好不要随便点击,最近出现一种病毒就是用那网地址感染的。
腾讯公司重要安全提醒:近期我们发现有不法分子冒充腾讯公司的名义给QQ用户发送邮件或消息,以为用户升级至QQ第二代密码保护(DNA)为饵,骗取用户QQ号码和密码保护资料。为了您帐号的安全,请明确:
= QQ第二代密码保护的官方网站为accountqqcom和dnaqqcom,请认准这两个网站域名
= 腾讯公司目前不提供人工代理升级至第二代密保的服务
请提高警惕,谨防受骗!
三:腾讯客服务:https://accountqqcom/cgi-bin/showMain
0条评论