QQ抢车位助手(结尾)
生活随笔
收集整理的這篇文章主要介紹了
QQ抢车位助手(结尾)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
有一段時間沒寫隨筆了,這篇文章是 搶車位助手的開發(fā)的最后,不再做其他功能了,最新版我已經(jīng)上傳
我看到,主要困擾大家的還是登陸的問題,這回我把“登陸部分”的源碼提供給大家,呵呵,其實很簡單的
通過搶車位助手開發(fā)第一篇文章,大家知道,獲取驗證碼圖片的地址是?? http://ptlogin2.qq.com/getimage?aid=15000102
以及登陸post地址是 http://ptlogin2.qq.com/login
以及登錄時騰訊的加密算法Js文件地址 http://imgcache.qq.com/ptlogin/js/comm.js
好了,具備以上條件,我們來寫一個登陸的例子
窗體部分我省略,看一些關(guān)鍵部分
第一個問題,怎么用騰訊的方式加密我們的密碼呢?
不難發(fā)現(xiàn)這個JS文件? http://imgcache.qq.com/ptlogin/js/comm.js 中的? md5_3 和 md5 方法,都是用來加密的
通過對JS的分析,可知,騰訊首先
1》 使用md5_3方法加密用戶輸入的密碼,得到結(jié)果1
2》?結(jié)果1+驗證碼(驗證碼轉(zhuǎn)換成小寫),得到結(jié)果2
3》使用md5加密結(jié)果2,得到最終騰訊認為合法的密碼
現(xiàn)在問題來了,怎么調(diào)用這個JS文件呢,呵呵,做過winform開發(fā)的兄弟都知道,有個webBrower,先拿WebBrower加載上騰訊的這個JS文件唄
這樣的好處就是,不管騰訊今后改多少次加密算法(md5_3,md5),我都不用改我的 密碼加密算法,只要調(diào)用就可以了
加載騰訊的加密算法對應(yīng)的網(wǎng)頁
1private?void?Form1_Load(object?sender,?EventArgs?e)
2{
3????????????getPic();
4????????????this.webBrowser1.Navigate("http://ui.ptlogin2.qq.com/cgi-bin/login???link_target=blank&appid=15000101&s_url=http%3A//php.qzone.qq.com/index.php%3Fmod%3Dportal%26act%3Dlogin&f_url=loginerroralert&target=top&qlogin_jumpname=jump&qlogin_param=u1%3Dhttp%3A//php.qzone.qq.com/index.php%3Fmod%3Dportal%26act%3Dlogin",?false);
5}
下一個問題,驗證碼怎樣加載
加載驗證碼
?1
?2????????private?void?getPic()
?3????????{
?4????????????HttpHelper?httpHelper?=?new?HttpHelper();
?5????????????Stream?s?=?httpHelper.GetStream("http://ptlogin2.qq.com/getimage?aid=15000102&0.43878429697395826",?Global.Cookies);
?6????????????if?(s?==?null)
?7????????????{
?8????????????????MessageBox.Show("外掛獲取登陸碼錯誤,請檢查您的網(wǎng)絡(luò)!",?"提示信息");
?9????????????????Application.ExitThread();
10????????????????return;
11????????????}
12????????????pictureBox1.Image?=?Image.FromStream(s);
13????????????s.Close();
14????????}
有一個問題大家要注意,為什么登陸時就提示“系統(tǒng)繁忙呢”,那是因為你沒保存獲取驗證碼之后,騰訊的那個Cookie對象
這個對象很重要,整個程序都要一直緩存這個對象,才能保證你其他操作的正常,例如獲取好友信息
OK,最后上傳最關(guān)鍵的密碼加密算法,我并沒重寫騰訊的JS,只是調(diào)用它的JS罷了,呵呵
人家留著接口,咱就免費用唄
登陸方法源碼
?1??/**////?<summary>
?2????????///?登錄
?3????????///?</summary>
?4????????///?<param?name="loginEmail">用戶名</param>
?5????????///?<param?name="loginPassword">密碼</param>
?6????????///?<returns></returns>
?7????????public??bool?Login(string?username,?string?userPWD,?string?strTemp,?System.Windows.Forms.HtmlDocument?doc,?out?string?errorTxt)
?8????????{
?9????????????HttpHelper?httpHelper?=?new?HttpHelper();
10????????????string?strRetVal?=?"";
11????????????HtmlDocument?doc1?=?doc;
12????????????if?(doc1?==?null)
13????????????{
14????????????????errorTxt?=?"加載必要控件失敗,請重新開啟軟件";
15????????????????return?false;
16????????????}
17????????????strRetVal?=?(string)doc1.InvokeScript("md5_3",?new?object[]?{?userPWD?});
18????????????strRetVal?+=?strTemp.ToUpper();
19????????????strRetVal?=?(string)doc1.InvokeScript("md5",?new?object[]?{?strRetVal?});
20????????????string?postData?=?"u="?+?username?+?"&p="?+?strRetVal?+?"&verifycode="?+?strTemp?+?"&aid=15000101&u1=http%3A%2F%2Fphp.qzone.qq.com%2Findex.php%3Fmod%3Dportal%26act%3Dlogin&fp=loginerroralert&h=1&ptredirect=1&ptlang=0&from_ui=1&dumy=";
21????????????string?result?=?httpHelper.GetHtml("http://ptlogin2.qq.com/login",?postData,?true,?cookie);
22????????????errorTxt?=?result;
23????????????result?=?httpHelper.GetHtml("http://php.qzone.qq.com/index.php?mod=portal&act=login",?cookie);
24
25????????????bool?isLogin?=?result.Contains("g_iLoginUin?=?"?+?username);
26????????????if?(!isLogin)
27????????????{
28????????????????if?(result.Contains("完成跳轉(zhuǎn)"))
29????????????????{
30????????????????????isLogin?=?true;
31????????????????}
32????????????????if?(!isLogin)
33????????????????{
34????????????????????isLogin?=?result.Contains("g_iLoginUin="?+?username);
35????????????????}
36????????????}
37
38????????????return?isLogin;
39????????}
好了,大概就是這樣,時間原因,我把登陸實例源碼 以及最新版的“搶車位助手.exe”上傳上來,大家一起學(xué)習(xí)吧
QQ搶車位助手下載
測試登陸源碼下載
忘了提醒大家,如果用助手,停車周期不宜設(shè)置的太短,騰訊現(xiàn)在加了檢測的機制,如果你周期太短,頻繁換車位再停車就會出驗證碼,停車外掛就幫不了你了,
我一般設(shè)置4個小時(240分鐘)
我的QQ:5948710
我共寫了3篇搶車位助手的外掛,現(xiàn)將三篇的地址都發(fā)上來,方便大家的查看
我看到,主要困擾大家的還是登陸的問題,這回我把“登陸部分”的源碼提供給大家,呵呵,其實很簡單的
通過搶車位助手開發(fā)第一篇文章,大家知道,獲取驗證碼圖片的地址是?? http://ptlogin2.qq.com/getimage?aid=15000102
以及登陸post地址是 http://ptlogin2.qq.com/login
以及登錄時騰訊的加密算法Js文件地址 http://imgcache.qq.com/ptlogin/js/comm.js
好了,具備以上條件,我們來寫一個登陸的例子
窗體部分我省略,看一些關(guān)鍵部分
第一個問題,怎么用騰訊的方式加密我們的密碼呢?
不難發(fā)現(xiàn)這個JS文件? http://imgcache.qq.com/ptlogin/js/comm.js 中的? md5_3 和 md5 方法,都是用來加密的
通過對JS的分析,可知,騰訊首先
1》 使用md5_3方法加密用戶輸入的密碼,得到結(jié)果1
2》?結(jié)果1+驗證碼(驗證碼轉(zhuǎn)換成小寫),得到結(jié)果2
3》使用md5加密結(jié)果2,得到最終騰訊認為合法的密碼
現(xiàn)在問題來了,怎么調(diào)用這個JS文件呢,呵呵,做過winform開發(fā)的兄弟都知道,有個webBrower,先拿WebBrower加載上騰訊的這個JS文件唄
這樣的好處就是,不管騰訊今后改多少次加密算法(md5_3,md5),我都不用改我的 密碼加密算法,只要調(diào)用就可以了
加載騰訊的加密算法對應(yīng)的網(wǎng)頁
1private?void?Form1_Load(object?sender,?EventArgs?e)
2{
3????????????getPic();
4????????????this.webBrowser1.Navigate("http://ui.ptlogin2.qq.com/cgi-bin/login???link_target=blank&appid=15000101&s_url=http%3A//php.qzone.qq.com/index.php%3Fmod%3Dportal%26act%3Dlogin&f_url=loginerroralert&target=top&qlogin_jumpname=jump&qlogin_param=u1%3Dhttp%3A//php.qzone.qq.com/index.php%3Fmod%3Dportal%26act%3Dlogin",?false);
5}
下一個問題,驗證碼怎樣加載
加載驗證碼
?1
?2????????private?void?getPic()
?3????????{
?4????????????HttpHelper?httpHelper?=?new?HttpHelper();
?5????????????Stream?s?=?httpHelper.GetStream("http://ptlogin2.qq.com/getimage?aid=15000102&0.43878429697395826",?Global.Cookies);
?6????????????if?(s?==?null)
?7????????????{
?8????????????????MessageBox.Show("外掛獲取登陸碼錯誤,請檢查您的網(wǎng)絡(luò)!",?"提示信息");
?9????????????????Application.ExitThread();
10????????????????return;
11????????????}
12????????????pictureBox1.Image?=?Image.FromStream(s);
13????????????s.Close();
14????????}
有一個問題大家要注意,為什么登陸時就提示“系統(tǒng)繁忙呢”,那是因為你沒保存獲取驗證碼之后,騰訊的那個Cookie對象
這個對象很重要,整個程序都要一直緩存這個對象,才能保證你其他操作的正常,例如獲取好友信息
OK,最后上傳最關(guān)鍵的密碼加密算法,我并沒重寫騰訊的JS,只是調(diào)用它的JS罷了,呵呵
人家留著接口,咱就免費用唄
登陸方法源碼
?1??/**////?<summary>
?2????????///?登錄
?3????????///?</summary>
?4????????///?<param?name="loginEmail">用戶名</param>
?5????????///?<param?name="loginPassword">密碼</param>
?6????????///?<returns></returns>
?7????????public??bool?Login(string?username,?string?userPWD,?string?strTemp,?System.Windows.Forms.HtmlDocument?doc,?out?string?errorTxt)
?8????????{
?9????????????HttpHelper?httpHelper?=?new?HttpHelper();
10????????????string?strRetVal?=?"";
11????????????HtmlDocument?doc1?=?doc;
12????????????if?(doc1?==?null)
13????????????{
14????????????????errorTxt?=?"加載必要控件失敗,請重新開啟軟件";
15????????????????return?false;
16????????????}
17????????????strRetVal?=?(string)doc1.InvokeScript("md5_3",?new?object[]?{?userPWD?});
18????????????strRetVal?+=?strTemp.ToUpper();
19????????????strRetVal?=?(string)doc1.InvokeScript("md5",?new?object[]?{?strRetVal?});
20????????????string?postData?=?"u="?+?username?+?"&p="?+?strRetVal?+?"&verifycode="?+?strTemp?+?"&aid=15000101&u1=http%3A%2F%2Fphp.qzone.qq.com%2Findex.php%3Fmod%3Dportal%26act%3Dlogin&fp=loginerroralert&h=1&ptredirect=1&ptlang=0&from_ui=1&dumy=";
21????????????string?result?=?httpHelper.GetHtml("http://ptlogin2.qq.com/login",?postData,?true,?cookie);
22????????????errorTxt?=?result;
23????????????result?=?httpHelper.GetHtml("http://php.qzone.qq.com/index.php?mod=portal&act=login",?cookie);
24
25????????????bool?isLogin?=?result.Contains("g_iLoginUin?=?"?+?username);
26????????????if?(!isLogin)
27????????????{
28????????????????if?(result.Contains("完成跳轉(zhuǎn)"))
29????????????????{
30????????????????????isLogin?=?true;
31????????????????}
32????????????????if?(!isLogin)
33????????????????{
34????????????????????isLogin?=?result.Contains("g_iLoginUin="?+?username);
35????????????????}
36????????????}
37
38????????????return?isLogin;
39????????}
好了,大概就是這樣,時間原因,我把登陸實例源碼 以及最新版的“搶車位助手.exe”上傳上來,大家一起學(xué)習(xí)吧
QQ搶車位助手下載
測試登陸源碼下載
忘了提醒大家,如果用助手,停車周期不宜設(shè)置的太短,騰訊現(xiàn)在加了檢測的機制,如果你周期太短,頻繁換車位再停車就會出驗證碼,停車外掛就幫不了你了,
我一般設(shè)置4個小時(240分鐘)
我的QQ:5948710
我共寫了3篇搶車位助手的外掛,現(xiàn)將三篇的地址都發(fā)上來,方便大家的查看
http://www.cnblogs.com/bnjbl/archive/2009/06/24/1509856.html
QQ搶車位外掛(起始篇)--小研究成果展示
http://www.cnblogs.com/bnjbl/archive/2009/07/04/1516650.html
QQ搶車位外掛(續(xù))
http://www.cnblogs.com/bnjbl/archive/2009/08/05/1539288.html
QQ搶車位助手(結(jié)尾)?? (本篇)
轉(zhuǎn)載于:https://www.cnblogs.com/bnjbl/archive/2009/08/05/1539288.html
總結(jié)
以上是生活随笔為你收集整理的QQ抢车位助手(结尾)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 常用图像数据集:标注、检索
- 下一篇: PPT怎么插入图案填充效果