一時不慎中了病毒后的第一反應往往是不分青紅皂白直接打開殺毒軟件將自己的硬盤掃蕩一遍,雖然在殺毒軟件正常運行的狀態下,出現殺不掉病毒的情況已經越來越少見了。但是隨著病毒感染技術的不斷翻新,成功查殺完畢并重啟系統后卻可能發現因為殺毒軟件無差別刪除了感染的dll文件而讓系統造成了莫名的錯誤。若是因為幾個小文件出錯就重裝系統未免也太小題大做,但是如果放任這些奇怪的錯誤提示也太過討厭,我們應該拿什么來拯救這些躺著也能中槍的dll文件呢?
查看中招的dll文件
系統中的dll文件被殺毒軟件誤殺后,通常不會像exe文件那樣直觀的表現出來,而是在使用相關功能時出現未知的狀況,比較常見的問題如播放器無法正常加載視頻、Flash頁面無法被加載、瀏覽器無法點擊打開新的頁面等,而此前沒有類似經歷的用戶總是會習慣性地檢查軟件自身的問題,而不會想到是系統中的dll被干掉了。所以假如剛剛對系統進行全面查殺后,出現了以前從沒遇到過的未知錯誤,最好先打開殺毒軟件的清理日志檢查是否有dll被強制隔離或刪除(如圖1),并且查詢該dll文件在系統中的作用。
圖1中被隔離的pnidui.dll文件是Windows 7/Vista系統中顯示托盤圖標的顯示文件,如果將該文件徹底刪除,那么無論如何設置,屏幕右下方的托盤也無法再顯示網絡連接的圖標了(如圖2)。
尋回dll文件
當系統中的各類文件出現遺失或被改動的時候,最保險的辦法自然是使用Windows安裝盤進入系統的“故障恢復控制臺”模式,將相應的文件復制到系統目錄中,不過早已經習慣了圖形界面的我們也許已經記不住控制臺中有多少個DOS命令了。
由于dll命令被系統誤殺的情況太常見了,所以網絡上有許多網站專門提供系統dll文件供用戶下載,不過因為不同版本號系統下的文件并不兼容,而下載網站上提供的文件信息又不是太完整,所以最好的辦法是通過第三方工具來下載并修復。比如“dll文件智能修復”就可以自動檢測用戶的當前系統,并且在用戶輸入修復的dll文件名后,即可自動連接到網絡數據庫中查找相應的文件進行修復(如圖3)。
Dll文件的加載與注銷
用戶使用工具或是安裝光盤修復的dll文件通常都會自動加載,但是也可能出現意外的情況導致dll無法正常工作(除了殺毒軟件誤殺了dll文件外,用戶非法關機也可能造成這一情況)。
當系統提示相應的dll無法被正常加載時(如圖4)或是經常出現系統內存不能為讀的錯誤提示窗口,用戶只需對dll進行注銷并重新注冊即可解決問題:
在“運行”窗口下輸入:
regsvr32.exe 文件名.dll /u(在系統中注銷該dll文件)
regsvr32.exe 文件名.dll /s(在系統中重新注冊該dll文件)
如果用戶需要重新注冊的dll文件實在太多,那么可以在命令提示符窗口下運行重置所有的dll 文件的命令:
for %1 in (%windir%\\system32\\*.dll) do regsvr32.exe /s %1
當然,如果使用該命令后系統內存不能為讀的錯誤提示依舊存在,那么用戶恐怕真的需要打開機箱查看一下自己的內存條了。
提示
如果在Win 7/Vista中的默認權限使用上述命令,得到DllRegister的調用失敗的提示,那么用戶只需鼠標右擊命令提示符并選擇“以管理員身份運行”,再重新輸入上述命令即可。