|
|
|
qq挂级程序,qq免费挂机源程序! |
|
|
| http://www.iyit.net 日期:2005-7-7 14:58:35 来源:易特网络技术 点击: |
2005-06-26更新:wap.qq.com修改频繁,js代码已经失效,各位可根据现有代码中的流程自行升级。我可能不再更新代码了。提醒一下某些同学:转载请注明出处! 2005-06-19更新:腾讯在登录处加了验证码,所以需要先获取验证码和sessionid,然后再登陆。js代码已经更新,php和asp的尚未修改。 2005-06-17更新:把js版本的完善了一下,现在的功能:登录、隐身、获取在线状态、离线。基本挂级需要的流程都有了,大家参考一下。其他语言的等以后有时间再补上。 2005-06-16更新:有心的同学用wap浏览器(winwap,opera等等),登陆wap.qq.com,然后分析提交和返回的数据,根据sessionid,登陆、聊天、更改在线状态等等等等都可以实现,做挂级程序应该是比较简单的了。再就是可以根据qq的协议自己写程序出来。 ——————————————— 近来看到好多网站提供qq挂级服务,本想通过嗅探器看看qq登录的登录过程,无奈加密了的,没法看。我用opera登录http://wap.qq.com,在这里登录,这个过程就简单了:先向http://211.139.167.71/waptest/twf/qqportal/rela/updateuserinfo.jsp提交了这些数据:qq=号码&pwd=密码&fromwhere=register,这个页面验证密码正确与否,然后转向了不同的页面。登录成功后,qq就一直在线了。这样就实现了传说中的qq挂级?至于在线时长有没有增长我没有验证。
我用下面的php、js、asp代码分别模拟登录过程,原理是一样的。
php代码:
<php $qq = "100000"; //qq号码 $pwd = "123456"; //密码 $ch = curl_init(); curl_setopt($ch, curlopt_url, "http://211.139.167.71/waptest/twf/qqportal/rela/updateuserinfo.jsp"); curl_setopt($ch, curlopt_followlocation, 1); //这行是设定curl是否跟随header发送的location, 重要 curl_setopt($ch, curlopt_post, 1); //curl_setopt($ch, "connection", "keep-alive"); curl_setopt($ch, curlopt_returntransfer,1); curl_setopt($ch, curlopt_postfields, "qq=".$qq."&pwd=".$pwd."&fromwhere=register"); $return = curl_exec($ch); curl_close($ch); echo strstr($return, "postfield") ? "登录失败" : "登录成功"; ?>
asp代码:
<% dim objxmlhttp, qq, pwd qq = "100000" pwd = "123456" set objxmlhttp = server.createobject("msxml2.xmlhttp.5.0") objxmlhttp.open "post", "http://211.139.167.71/waptest/twf/qqportal/rela/updateuserinfo.jsp", false objxmlhttp.setrequestheader "content-type", "application/x-www-form-urlencoded" objxmlhttp.setrequestheader "connection", "keep-alive" objxmlhttp.send("qq="&qq&"&pwd="&pwd&"&fromwhere=register") if instr(objxmlhttp.responsetext, "验证失败") then response.write "登录失败" else response.write "登录成功" end if set objxmlhttp = nothing %>
js代码:(代码加亮有点问题,导致判断新消息的地方正则错误,请直接下载源文件 qq_js.htm 注意:js版只能本地运行)
<html> <head> <title>test</title> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> </head> <body> <p><span id="msg"></span><p><input type="button" onclick="doit()" id="btn" value="登录" /> <script type="text/javascript"> var qq = "100000"; var pwd = "123456"; var validatekey = ""; var sessionid = ""; var online = false; var re; //创建xmlhttp对象 if (window.xmlhttprequest) { var x = new xmlhttprequest(); } else { var msxml = new array('msxml2.xmlhttp.5.0', 'msxml2.xmlhttp.4.0', 'msxml2.xmlhttp.3.0', 'msxml2.xmlhttp', 'microsoft.xmlhttp'); for(var n = 0; n < msxml.length; n ++) { try { var objxmlhttp = new activexobject(msxml[n]); break; } catch(e) { } } } //发送请求 sendreq(方法、地址、数据、回调函数); function sendreq(method, url, data, callback) { with (objxmlhttp) { open(method, url, false); setrequestheader("content-type", "application/x-www-form-urlencoded"); setrequestheader("connection", "keep-alive"); send(data); } settimeout(callback, 0); } //获取sessionid function getsessionid() { sessionid = objxmlhttp.responsetext.match(/jsessionid=([^?]+)?/i)[1]; //获取登录页面 sendreq("get", "http://211.139.167.71:80/waptest/server;jsessionid=" + sessionid + "?productid=qqportal&actionid=register&fromwhere=index", "", "getkey();"); } //获取validatekey function getkey() { validatekey = objxmlhttp.responsetext.match(/value="([^"]{32})"/i)[1]; //登录 sendreq("post", "http://211.139.167.71:80/waptest/twf/qqportal/rela/updateuserinfo.jsp;jsessionid=" + sessionid, "qq=" + qq + "&pwd=" + pwd +"&validatekey=" + validatekey + "&fromwhere=register", "checklogin();"); } //检查登录是否成功 function checklogin() { if (objxmlhttp.responsetext.indexof("postfield") > 0) { setmsg("密码错误或者号码不正确"); } else { sessionid = objxmlhttp.getresponseheader("set-cookie").match(/jsessionid=([^;]+);/i)[1]; //修改qq状态为隐身 sendreq("get", "http://211.139.167.71/waptest/twf/qqportal/qqchat/wait.jsp;jsessionid=" + sessionid + "?changestatus=40&random=" + math.random()+ "&fromwhere=qqchatchangestatus", "", "setmsg('wait...');"); online = true; setstatus(); setbtn(); re = setinterval("changestatus();", 10000); } } //更改在线状态 function changestatus() { sendreq("get", "http://211.139.167.71/waptest/server;jsessionid=" + sessionid + "?productid=qqportal&actionid=qqchatchangestatus&saveurl=0&changestatus=40&random=" + math.random(), "", "setmsg('wait');"); sendreq("get", "http://211.139.167.71/waptest/twf/qqportal/qqchat/function.jsp;jsessionid=" + sessionid + "?qqlogout=1", "", "setstatus();"); } //当前在线状态 function setstatus() { if (objxmlhttp.responsetext.match(/[d+]((d+))/i)) { setmsg("qq隐身,并有" + objxmlhttp.responsetext.match(/[d+]((d+))/i)[1] + "条新消息"); online = true; } else if ( objxmlhttp.responsetext.match(/qqlogout=first">(.*)\[\d+\]/i)) { //setmsg(objxmlhttp.responsetext.match(/qqlogout=first">(.*)[d+]/i)[1]); setmsg("qq隐身"); online = true; } else { setmsg("qq离线"); online = false; } setbtn(); } //下线 function logout() { sendreq("get", "http://211.139.167.71/waptest/server;jsessionid=" + sessionid + "?productid=qqportal&actionid=qqchatchangestatus&saveurl=0&changestatus=20&random=" + math.random(), "", "setmsg('qq离线');"); clearinterval(re); online = false; setbtn(); } function setbtn() { if (online) { btn.value = "断开"; btn.onclick = logout; } else { btn.value = "登录"; btn.onclick = doit; } } function setmsg(str) { document.getelementbyid("msg").innerhtml = str; } function doit() { sendreq("get", "http://211.139.167.71:80/waptest/wapqq.jsp", "", "getsessionid();"); } </script> </body> </html>
|
上一篇:狂删qq文件减小资源占用
下一篇:qq会员有福了 免费答题赢黄钻
[发送给好友] [打印本页] [关闭窗口] [返回顶部] 转载请注明来源:http://www.iyit.net |
|
| 特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。 |
| 责任编辑: 黑鹰 |
投稿作者: 易特网络技术 |
| 信息来源: 易特网络技术 |
录入时间: 2005-7-7 14:58:35 |
| 浏览次数: |
投稿信箱: shtghy@163.com |
|
|
|
|
|