想必大家在日常使用電腦的過程中,一定會遇到某些軟件把自己註冊到硬盤列表裏的情況(我們暫且稱之爲“虛擬硬盤”)
![]()
我在復刻這一功能時,發現了一些不符合直覺的事情,於是寫下了這篇文章分享給大家
![]()
當你打開文件管理器時,虛擬硬盤已經在運行了
理想情況下,你所看到的雲盤圖標應該是靜態配置,只有你打開文件管理器後,再去點擊虛擬硬盤,它纔會開始運行
但實際上,只要文件管理器一打開,虛擬硬盤的代碼就已經開始執行了
即是不需要用戶交互就能運行
注意,這裏說的遠不只是加載虛擬硬盤的圖標或右鍵菜單那麼簡單,而是它可以運行任意代碼

文件管理器會自動調用虛擬硬盤代碼
我在入口代碼中加入了一個任務:每隔3秒寫一個文件
測試結果證實,只要打開文件管理器,後臺任務就會立刻開始執行
![]()
那麼,如果虛擬硬盤含有惡意代碼,它是不是可以調用外部應用,甚至執行更危險的操作?
是的,我示個例
在虛擬硬盤的入口代碼中加入:一被調用就打開計算器

打開文件管理器,就自動偷偷打開計算器
也就是說,只要虛擬硬盤願意,它可以自主聯網、打開程序、讀寫文件等等。
而這一切,只需要你打開一次文件管理器就能完成
![]()
右鍵菜單-擴展菜單是否存在相同問題?
我們寫一個自定義菜單來測試一下
同樣是純菜單,沒有後臺進程
![]()
用於測試的菜單
結果如下:
菜單甚至還沒顯示出來,擴展菜單的內部代碼(打開計算器)就已經執行了

擴展菜單內部執行 比打開菜單都快
這意味着什麼?
如果一個應用心懷不軌,它甚至不需要申請開機自啓,僅通過虛擬硬盤或右鍵擴展菜單中的任意一種方式,就能讓自己在後臺持續運行
![]()
在此之前,我一直以爲它的機制和安卓類似:只是向系統註冊一個菜單,只有用戶明確選中時纔會執行。從測試結果來看,兩者的原理完全不同
無論是虛擬硬盤還是右鍵菜單擴展,它們都可以在用戶尚未進行任何交互時就被文件管理器提前加載,其對應的代碼也因此獲得了執行機會
這也解釋了爲什麼擴展菜單多了後,右鍵菜單明顯卡頓等現象——因爲系統並不只是讀取一份靜態菜單,而是在後臺完成了更多工作
好了,本期分享就到這裏。如果你喜歡我的文章,別忘了點個贊,你的支持是我保持更新的動力
![]()
參考資料
https://learn.microsoft.com/zh-cn/windows/win32/shell/extending-explorer-bumper
更多遊戲資訊請關註:電玩幫遊戲資訊專區
電玩幫圖文攻略 www.vgover.com
