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