能否寫一個socket程序,連上QQ伺服器?

例如如果知道QQ伺服器的ip和埠號,那麼就自己寫一個socket程序,連接上伺服器,然後一直不釋放鏈接,這樣子能否成功?服務端有什麼辦法可以防止這種行為?服務端如何識別是不是真實的客戶端?還有,即使服務端調用close之類的函數關閉socket,但是如果那個假的客戶端不進行close,根據tcp的四次揮手,那麼資源還是無法釋放的,這種問題一般是如何解決的?


伺服器發出 fin 後如果不在一段時間內收到客戶端的 ack,連接就關閉了,不留痕迹。


你可以用 netcat 先連上,把觀察到的現象準確描述出來,然後我們再來說其餘的。


上次干這個的坐牢了,珊瑚蟲QQ,作者北京理工大學計算中心老師陳壽福,被判三年,應該出來了吧。有人@他談談感想,感謝下馬總嗎。


你想說的是DoS攻擊么


寫服務端程序的應該是需要防止類似樓主行為的,比如應該有個登陸認證的機制,沒有登陸成功的客戶端在一定時候後會超時斷開,如果發給伺服器的包包含正確的認證信息,伺服器端應該可與建立通訊,這本身就是合法的連接,但是伺服器端為防止惡意的連接,也會做些行為限制或者判斷的工作,如果完全是惡意的連接,我覺得像QQ這麼成熟的伺服器應該有應對的辦法。比如可以區分出沒經過認證的和合法的連接,把流量引導到不同的集群等等,總之,這些對騰訊應該都是小兒科。


可以啊,但是closesocket伺服器關你也沒地方說理去啊~


2004年 我所在的創業公司推出了 QQ掛機服務
後來騰訊修改了策略 每天只有3小時掛機時間了。然後我們公司就遭遇到大量退貨,然後就掛了。

「能否寫一個socket程序,連上QQ伺服器?」 答案是可以的。

後來我們合作的封包處理技術授權來源,跑去做騰訊某網遊的外掛(因為加密封包一致) 結果他和他的商務負責人被騰訊告了,好像判了一年半。

所以你想要幹什麼 先要看看1目標是誰,2丫到底惹不惹的起,3它會不會願意搞死你。


1.TCP FIN_WAIT 超時
(感謝 @吉林小伙,此處不是TIME_WAIT)
2.SYN cookies

記不住的話去看圖:
TCP狀態轉換圖 - 李大嘴 - 博客園
TCP Operational Overview and the TCP Finite State Machine (FSM)


應該是可以的,想起以前上大學那會能看隱身的QQ,當年因為這玩意,高一申請的QQ被盜了。。。


PS:敬告大家不要想這個,上大學那會看了一本小書,也正是因為這本小說,才走上碼農這條路,書名叫:瘋狂的程序員。那個男主角絕影(boss絕),就是因為幫一個大叔寫了遊戲外掛,被公司(據說是騰訊,遊戲據說是DNF)給搞了,做了幾年牢,一身好功夫都給廢了!!!


只能說GRDQE

傳送門:

瘋狂的程序員 (豆瓣)

個人空間(絕影CSDN博客,被關了。。。)

瘋狂的程序員作者絕影現狀怎麼樣,被抓了真的不? - 編程 - 知乎


可以!
因為QQ客戶端就是用socket連的.如果你能搞清楚所有的協議,那自然可以正常和QQ伺服器建立連接並通訊.
至於你客戶端不close, 服務端應該在FIN_WAIT2那裡,這個狀態也有時限啊,超時了就釋放資源了,不過你這種連接數量足夠大,是可以起到攻擊效果的


不知道你想做什麼用途,我只知道python有個qqbot包,可以掛qq,發消息什麼的


qq是udp的,自己有一套心跳控制和協議包結構,理論上如果你知道它的心跳和一些關鍵包的數據定義,是可以的。


推薦閱讀:

如何藉助伺服器,使兩個客戶端之間建立網路連接?
聽說一個IP可以綁定多個域名,那麼服務端是怎麼實現的?
服務端是如何主動推送信息到客戶端的?
用 thrift 或 gRPC 之類的框架做 app 和伺服器的通信合適嗎?

TAG:騰訊QQ | 編程 | 伺服器 | 網路編程 | TCPIP |