閱讀目錄
1,WEBQQ的登陸協議
2,傳說中的心跳包
3,獲得群,好友,
4實戰(盜號-外掛-廣告)
要說怎么突然研究起WEBQQ,也是比較偶然的機會,因為前一份工作專注於B2C商城的開發,
經常,自己寫點工具,模擬一個HTTP請求來進行秒殺之類的,然后聯想到QQ的農場,牧場
有很多輔助的小工具,自己開始研究WEBQQ,時間大概是2個雙休,4天.
1,WEBQQ登陸協議
工具:火狐+firebug
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