QQ的号码输入框不具备TabStop属性,因此无法自动定位,按多少Tab也没有用Shift+Tab也不能将输入定位到号码输入框,至少QQ的2006,2007是不可以的.因此SendKeys方法是没有用的,也就是说六楼的脚本不对任意QQ号有效.但是对于号码框先前保存的QQ号码,也就是上次登陆的号码,于是只输入密码的话可以有效.但是这样一是会暴露密码明文,二是一旦改变QQ号码,此法将不再有效.但是自动登陆也并非没有办法,腾迅存在一个官方登陆接口,QQ的自动登陆功能也是基于这个接口.
QQ在传输密码的时候,先做一次MD5加密,再做一次BASE64变换,这样可以得到正常的文本信息以便网络传输。对于一个形如“abcd”的密码,加密转换后得到的可用于传输密文就是按照 BASE64(MD5(abcd))的方式转化来的,计算这个表达式,我们可以得到值4vxxTEcn7pOV8yTNLn8zHw==。这样再利用QQ.exe本身支持的命令行参数,就可以实现自动登陆。命令行的形式如下:QQPath\QQ.exe /START QQUIN:123456 PWDHASH: 4vxxTEcn7pOV8yTNLn8zHw== /STAT:40。其中40是表示登陆的状态是隐身登陆,10的话则代表上线登陆。QQPath代表的是QQ的安装路径,这个值随不同机器而异。123456代表的是QQ号码,4vxxTEcn7pOV8yTNLn8zHw==就代表加密转换后的密码“abcd”。将此格式换成真实的信息,就可以实现自动登陆了。
因此,只要做出这样的脚本就可以实现自动登陆了,这里我提供一个脚本作为验证,是我的一个QQ号码,大家可以登陆上去看一看,反正密码是什么也不会泄露
On Error Resume Next
Set Shilyx = CreateObject("WScript.Shell")
QQPath = Shilyx.RegRead("HKLM\SOFTWARE\Tencent\QQ\Install")
Shilyx.Run """" & QQPath & "\QQ.exe"" /START QQUIN:303501987 PWDHASH:WQbDAvPc/eA0ooWlBsq72g== /STAT:40"
直接在系统运行中输入以下内容会有相同效果:
%ComSpec% /c echo CreateObject("WScript.Shell").Run """" + CreateObject("WScript.Shell").RegRead("HKLM\SOFTWARE\Tencent\QQ\Install") + "\QQ.exe"" /START QQUIN:303501987 PWDHASH:WQbDAvPc/eA0ooWlBsq72g== /STAT:40">C:\_Q.vbs & WScript C:\_Q.vbs && del C:\_Q.vbs
这一个可以保证在五月之前有效
产生这种脚本的程序,我这里有一个,不知可否上传?
这里有
相关介绍
http://hi.baidu.com/shilyx/blog/item/43a0b6a15212e08b471064c0.htm
Last edited by my3439955 on 2007-6-9 at 12:14 AM ]