騰訊所有版本都存在的乙個拒絕服務bug詳細分析

2021-12-29 20:12:21 字數 1034 閱讀 1969

qq「莫名其妙」的崩潰問題分析,不對之處還望指出

據說qq老有崩潰問題,好不容易被我逮到一次豈能錯過。問題是都崩潰這麼久了為啥這個bug還不改掉?我很困惑。最近指令碼玩慣了,windbg快生鏽了,就用用吧!

先把dump拷貝出來

開啟dump

引用了乙個空指標導致的崩潰.看看堆疊。

問題出在preloginlogic.dll裡,edi為空啊.

看到這裡初步斷定這是乙個自動更新校驗的執行緒,在校驗的時候掛掉了.

qqvip呼叫preloginlogic.dll裡的函式createdrcsprocessor,傳了3個結構,而createdrcsprocessor又呼叫了common.dll的若干函式

同乙個場景發生的事:

看來可能是terminatethread或suspendthread引起的問題了.而一般靠dump」確定」這類問題真的很不靠譜.  

當我們不清楚自己執行緒(事實上也很難清楚)在幹嘛的時候請不要terminatethread、suspendthread請使用同步物件. 當應用程式希望關閉執行緒時,只要設定這個同步物件,等待執行緒退出。之後,執行緒把這個同步物件作為它週期性監測的一部分,定期檢查,或者如果這個同步物件的狀態改變的話,就可以執行清理操作並退出了.  

修復方案:

他們懂

騰訊的乙個筆試題

觀察下面一段 class classa virtual void functiona class classb class classc public classa,public classb classcaobject classa pa aobject classb pb aobject cla...

騰訊的乙個程式設計題

problem description 威威貓不是乙隻普通的貓,普通的貓喜歡吃魚,但威威貓最喜歡吃雞腿。他每天都在不停的吃啊吃,吃了乙隻又乙隻雞腿。現在他遇到了乙個難題,如果他的體重太胖那麼他的主人就不給他吃雞腿了,所以他需要你的幫助。威威貓的身體由n個器官構成,由於他的身體很特殊所以他的增長也很特...

乙個奇葩的sql導致拒絕更新

背景 乙個業務對外開放介面,開發人員可以呼叫入口摻入一些值給服務端 問題如題,系統中遇到乙個sql update xxa set column1 1 wherecolumn2 1 or sleep 10 and 1 1 xxa中的表結構為自增主鍵id,column 2上有唯一索引 這個語句的執行結果...