閱讀目錄 css
1,WEBQQ的登錄協議html
2,傳說中的心跳包git
3,得到羣,好友,web
4實戰(盜號-外掛-廣告)服務器
要說怎麼忽然研究起WEBQQ,也是比較偶然的機會,由於前一份工做專一於B2C商城的開發,session
常常,本身寫點工具,模擬一個HTTP請求來進行秒殺之類的,而後聯想到QQ的農場,牧場app
有不少輔助的小工具,本身開始研究WEBQQ,時間大概是2個雙休,4天.工具
1,WEBQQ登錄協議post
工具:火狐+firebugui
1, 進入WEBQQ, http://web.qq.com/,
經過工具分析,能夠知道,經過WEB登錄,會首先GET一個請求過去
http://check.ptlogin2.qq.com/check?uin=236773862&appid=1003903&r=0.14233942252344134,咱們只詳細分析下這一個請求,看看,這個請求到底攜帶了什麼樣的數據
請求頭部這些內容,就是等會,模擬HTTP提交須要的,
這個GET請求返回ptui_checkVC('0','!W61','\x00\x00\x00\x00\x9b\x8f\xdb\xab');這樣的字符串,其中第一個字符串,’0’表明不須要驗證碼,’!w61’這個數據,是等會登錄須要的,
第3個參數沒用,
我輸入密碼登錄,監控到這樣一個請求
這個不用多說了,接着用C#進行模擬就好了,其中分清哪些是不變的就好了
String loginUrl = "http://ptlogin2.qq.com/login?u=" + qq + "&p=" + md5pass + "&verifycode=" + verifyCode + "&webqq_type=10&remember_uin=1&login2qq=0&aid=1003903&u1=http%3A%2F%2Fweb2.qq.com%2Floginproxy.html%3Flogin2qq%3D1%26webqq_type%3D10&h=1&ptredirect=0&ptlang=2052&from_ui=1&pttype=1&dumy=&fp=loginerroralert&action=6-25-303994&mibao_css=m_webqq&t=1&g=1";
不用多說了吧, md5pass這個是密碼加密後的一個參數
加密的方式,就是QQ號,密碼的明文,還有就是驗證碼,若是沒有驗證碼就是,’!w61’這個參數,至於如何加密的,其實也很是簡單,騰訊的加密確定在客戶端加密而後傳輸的,找到相應的JS文件,而後改寫成C#版本就好了,至於第三個參數,就是驗證碼或者是’!w61’了,
ptuiCB('0','0','http://web2.qq.com/loginproxy.html?login2qq=1&webqq_type=10','0','登陸成功!', 'Zr');
登錄成功後,返回這樣的一個格式,一旦登錄成功,我就能夠拿到COOKie了
有了COOKIE,能夠取出PTWEBQQ,和Skey,由於接着還會有一個POST包過去
http://d.web2.qq.com/channel/login2
其中這個POST請求須要PTWEBQQ,咱們構造一下,POST過去
String postData = String.Format("r=%7B%22status%22%3A%22online%22%2C%22ptwebqq%22%3A%22{0}%22%2C%22passwd_sig%22%3A%22%22%2C%22clientid%22%3A%22{1}%22%2C%22psessionid%22%3Anull%7D&clientid={2}&psessionid=null", this.ptwebqq, this.clientid, this.clientid);
String login3 = QQ.getHtml(channelLoginUrl, "post", postData);
其中clientid是個隨機數,本身定義就好了,那麼到此,登錄就完成了,咱們看一下界面
1,心跳包
顧名思義,心跳包,就是維持一個長鏈接,讓WEBQQ保持在線的一種機制,.這個心跳包很是簡單
http://d.web2.qq.com/channel/poll2只須要每隔幾秒,或者寫一個死循環也能夠,,
這個地址POST
這樣一段數據,就能夠了,其中必要的參數,在登錄的時候能夠所有拿到,這裏值得一說的是,當POST這個數據過去後,服務器會等大概30秒左右的時間,若是30秒,QQ沒有收到任何信息,那麼它會自動返回,若是有信息會攜帶信息返回
實際上,這個心跳包弄清楚後,後面基本就沒難度了,本身徹底能夠寫一個簡單的QQ,,難道這就是所謂的長鏈接??
1,得到羣和好友
得到羣和好友,而後模擬HTTP請求,就能夠聊天了。。。這裏簡單的說
對這個地址POST,而後會返回一個JSON,本身解析吧,後面已經沒有技術含量了,體力活了
1,實戰
我記得騰訊有不少遊戲。。。一樣的方法,先寫個簡單的3366外掛,其實很簡單,就是一個get請求過去,分數什麼的本身寫吧,,把外掛上傳,其實盜個什麼QQ號的,沒一點技術含量,,
本身嘗試了下,。。。在好比說
等等吧,盜來的QQ號,有什麼用??呵呵,我我的都是拿來上傳個人外掛,而後盜更多的號,其實研究WEBQQ或者PCQQ協議的人,都是爲了打廣告,我至今難於忘記,那個賣鐵觀音茶的廣告,幾乎每一個人的羣裏都會有這麼一個廣告。。,不光是QQ.新浪微博刷粉也能夠這樣搞,本人精力有限,連寫這篇文章,都是趕出來的,有興趣的同事,能夠找我要源碼,或者一塊兒研究均可以
BY gitdnn