天天看點

告别加載dll出錯

  提到開機加載(load)項,大家不要以為就是系統啟動(run)項。最簡單的例子是,防毒軟體或者使用者手動删除病毒檔案後,系統資料庫中的自動加載資訊仍在,登陸系統時就會提示“加載*dll出錯,系統找不到指定的子產品”,這些dll就是病毒寄生在系統程序之下的附加元件。

  病毒本身被阻止運作,卻“挾系統以令使用者”,輾轉藏在系統程序後面繼續狐假虎威,大行其道;它們被發現并删除後,下次系統登陸、啟動服務、初始化使用者配置、啟動外殼explorer.exe時,依然會按系統資料庫的訓示運作rundll32.exe調用這些附加元件,這時系統找不到檔案實體,就會提示加載失敗。雖然不影響使用,但那“嗡”的一聲,有如晴天霹靂,讓人一開機就憋得慌!點選确定後也一直如坐針氈,總感覺自己中毒了。

  其實,隻要在系統資料庫中搜尋這個dll删掉,一般就能就地解決。問題是,很多dll在系統資料庫中根本搜尋不到,但開機時它就是要彈框!别慌,隻要去系統資料庫中如下固定位置掃蕩一遍,疏而不漏,總能找到蛛絲馬迹。以下位置最前四字母均為首字母縮寫,在系統資料庫利器Registry Workshop的位址欄中通用,可直接粘貼回車轉到,并加入收藏,收藏還可分類哦~Let's Go!

  (1)WinLoad

  HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows\load

  這項原本不存在,或者預設為空。如果病毒将自己的dll添加到這裡,可想而知系統啟動時就會自動加載它。

  (2)Notify

  HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Notify

  這裡是windows登陸“通知”,圖中的項都是正常項。以前Windows 正版增值計劃通知(WGA)提示Windows不是正版,就是通過wgalogon.dll在這裡添加了一個項,登陸時通知調用WgaTray.exe,在托盤彈出提示的。如果病毒也在這裡嵌入一個“通知”,開機時當然會有所表現并有所動作。

  (3)Userinit

  HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Userinit

  當“歡迎使用”或“正在加載個人配置”的視窗飄過後,我們打開任務管理器,可以看到這個Userinit.exe程序逗留了很久方去,它就是使用者個人配置初始化程式。其預設值是C:\WINDOWS\system32\userinit.exe,(帶英文半形逗號),如果這項被修改,加載個人配置時就會難産彈錯;如果被改成病毒程式,後果不堪設想。

  (4)LogonShell

  HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Shell

  Shell外殼指的是可視化的使用者資源管理界面,預設值Explorer.exe,即顯示資料總管、“我的電腦”、檔案夾、桌面、開始菜單、工作列、托盤的程式。當我們從任務管理器結束Explorer.exe,可看到桌面隻剩一張桌面,檔案夾界面全體消失,應用程式視窗仍在。

  如果開機進入桌面後出現這種情況,說明Explorer.exe程式被修改了或在系統資料庫此項被阻止啟動了。這時先可試着從資料總管運作explorer,不行的話從别人電腦裡拷貝explorer.exe到Windows檔案夾覆寫,同時還要進入這裡檢視Shell的預設值Explorer.exe有沒有被篡改,後面有沒有被加上“尾巴”即病毒附着在Explorer.exe上面的附加元件。

  (5)ExplorerAutoRun

  HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\Explorer

  圖中項為Windows某更新所産生的正常項,但注意這裡也可以被病毒嵌入附加元件。

  (6)ShellServiceObjectDelayLoad

  KLM\SOFTWARE\Microsoft\Windows\CurrentVersion\ShellServiceObjectDelayLoad

  這些是“外殼服務”,例如CDBurn是鮮為人知的Window自帶刻錄功能,SysTray是系統托盤顯示程式,這項沒了開機後一些托盤圖示就會消失。當然病毒附加元件也可在這裡濫竽充數。

  (7)ShellExecuteHooks

  HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellExecuteHooks

  這是“外殼挂鈎程式”,圖中正常項對應shell32.dll,包括系統圖示、工具欄等界面元素。如果病毒在這裡有眼線,它生前一定會随外殼運作,死後也會繼續彈框出錯。

  (8)計劃任務

  這種情況比較特殊,是指使用者自定義的計劃任務,因找不到檔案而彈出加載出錯。典型例子就是“自定義桌面”裡的“桌面清理向導”

  清理桌面任務是由system32目錄下的fldrclnr.dll負責的,很多系統精簡了這個檔案,如果使用者又不小心勾上了“每60天運作桌面清理向導”,60天後開機肯定會彈出“加載fldrclnr.dll出錯”,這時無論你怎樣折騰系統資料庫,都是竹籃打水。

  以上八家,圍剿完畢,加載dll紛紛原形畢露,删之,就能徹底告别那當頭一棒的“加載失敗”框了!把這些常見位置加入Registry Workshop的收藏夾,以後就再也不怕它彈了!更多隐秘期待諸君自己積累。

繼續閱讀