因為360,火絨幹掉瞭win 10的電腦桌面
![](/d/file/5/13/202402/21gu0rzp2bd.jpg)
不知道差友們現在還有多少人還在用 Win 10 呢?
前兩天 Win10 20H2 的系統更新出事瞭,不少小夥伴更新完之後跑到知乎上大喊:
我桌面呢???
圖片源自知乎 @ 風箏
![](/d/file/5/13/202402/xzj21gwqmam.jpg)
這些丟瞭桌面的小夥伴一番摸索之後發現,自己電腦上的 explorer.exe 程序不見瞭。
![](/d/file/5/13/202402/wejmftp02om.jpg)
給不知道的小夥伴解釋一下,在 win11 之前, explorer 這個系統程序總管電腦裡的任務欄、桌面、開始菜單、以及文件管理器。
它沒瞭,桌面自然就沒瞭。
再一番追查之後,大傢發現這個系統組件居然是被自己裝的第三方殺毒軟件火絨給殺掉的!
![](/d/file/5/13/202402/2rkxcn5i2nn.jpg)
好好的,為啥原本該給系統當保安的火絨會突然開始反過來攻擊 “ 自己人 ” ,把更新之後的系統組件給刪瞭呢?
抱著好奇,世超接著往下翻,看看有沒有大佬來分析一下到底是怎麼回事。
結果不看不要緊,一看更迷惑瞭——這整個烏龍事件裡,不僅涉及到剛才我們談到的主角 Windows 和火絨,竟然還有一個看起來八竿子打不著的 360 。
不知道大傢有沒有註意過,從 Win 10 開始,底部任務欄默認狀態下會有一個搜索框。
![](/d/file/5/13/202402/f3e1j2plbxa.jpg)
顯然 Windows 並不滿足於任務欄搜索之前的功能,所以在裡面加入瞭不少資訊、興趣類的內容。
360 也看上瞭任務欄這個 “ 好地段 ” ,往本就不大的任務欄裡也塞入瞭自己的搜索欄。
圖片源自知乎@大賢者初春令月
![](/d/file/5/13/202402/olzdjk0wstu.jpg)
一山肯定不能容二虎,任務欄就這麼大, 360 再強插一腳進來很難不出現問題。
據有的小夥伴兒說,這兩個功能都啟用的時候,會有概率死機、崩潰。
Windows 自然不能放著這樣的事情不管,但它不知道出於什麼原因,沒有對 360 重拳出擊,反而是出瞭個補丁,來避讓 360 。
根據知乎用戶 @Henryzhao 分析, Windows 的這個補丁特地在任務欄裡做瞭一個叫 “ IsHijackingProcessRunning ” ( 劫持程序是否運行 )的函數檢查 360 進程運行情況。
大傢可以看一下截圖中的檢測函數代碼。
它掃描的 360 Safe 、 ZhuDongFangYu 這些,都是 360 系程序的經典進程。
![](/d/file/5/13/202402/s1ruysz0bux.jpg)
如果檢測到 360 的產品正在運行,就會主動讓 Windows 自己的任務欄資訊功能做出避讓,也就是代碼中的 SellFeedsCampain = 0 。
這樣做避免瞭出現 360 的搜索欄和 Windows 任務欄相互沖突的情況。
但是 Windows 的這段代碼,本身就是新加入的內容,實現的又是檢測其他進程這麼敏感的動作,加上名字裡 “ 劫持 ” 這個詞聽起來也很敏感,所有的因素疊加起來很自然就引起瞭火絨的註意。
最後的結果就是殺毒軟件火絨把 Windows 的這個補丁行為直接當成瞭病毒來處理,給殺掉瞭。
然後大傢的桌面就沒瞭。。。
不過火絨這邊的動作也非常快,很快就發瞭公告,更新完特征庫瞭。
所以大傢現在可以放心更新系統瞭。
![](/d/file/5/13/202402/5bsdszjkuvx.jpg)
回過頭來看,整個事情無非是 360 想要強行在系統任務欄裡貼賺流量,結果和微軟自傢搞的流量口子沖突瞭。
微軟想著給 360 騰位置,反而被火絨誤殺瞭。
說來也巧,這種系統給應用擦屁股的行為其實並不是第一次出現。
我們大傢熟悉的 iPhone 和微信,也有過這麼一檔子樂子。
![](/d/file/5/13/202402/chffohvzwlv.jpg)
蘋果之前就發現,微信的性能監控方案裡調用瞭一個系統功能 API —— stack _ logging _ enable _ logging 。
這個 API 在很早之前的 iOS 版本當中可以啟用堆棧日志,但是後來蘋果把這個功能遷移到瞭別的 API 上, stack _ logging 這個 API 就沒有任何實際意義瞭。
然而微信的程序員並沒有隨著蘋果在系統中做出的調整來調整自己的代碼,依舊會在微信中調用 stack _ logging 。
結果就導致蘋果的遙測後臺會收到大量的 “ 無效 API 調用 ” 報錯。
雖然這個報錯不會對 App 的正常使用造成任何影響,但估計全中國 2 億多的 iPhone 用戶都在跟蘋果 “ 報錯 ” ,把蘋果後端的工程師也給看無語瞭,所以後來的 iOS 更新當中,又特地把這個 API 作為一個 “ 空殼子 ” 加瞭回來。。。
![](/d/file/5/13/202402/xeiboek50ck.jpg)
這一次,蘋果工程師直接把 stack _ logging _ enable _ logging 的註釋改成瞭:這串 API 什麼用也沒有,鬼知道為什麼微信還在調用它。
然後把包含這個 API 更新的文件命名為瞭 “make tapi happy” ( 讓騰訊 API 開心 )
![](/d/file/5/13/202402/bjyb4u30pwz.jpg)
很明顯,這次 Windows 和 360 並沒有像蘋果和微信一樣獲得一個 “ 開心 ” 的結局,反而把火絨也卷瞭進來,鬧瞭一個大笑話。
這裡面有兩傢在遇到沖突的時候,沒有溝通好的原因。
假如, Windows 能夠及時告知 360 並制止它這樣的行為,而不是吭哧吭哧地給它打補丁擦屁股。
可能就不會有這樣的笑話瞭。
再退一步,如果 Windows 和 360 都不往任務欄裡加搜索、資訊這些牛皮癬一樣的內容,問題是不是就在源頭解決瞭呢?