Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學

揪出 DLL 搞鬼真凶:用 ListDLLs 追蹤共用模組解決程式故障

編輯:XP 系統基礎知識

Windows 中幾乎所有程式都仰賴 DLL (動態連結庫),DLL 異常會導致軟體故障。但一個程式常調用幾十上百個 DLL,如何找出「罪魁禍首」?

案例回放

一次非法操作後,XP「搜尋小幫手」變白板、「控制台→使用者帳戶」顏面盡失、「開始→說明及支援」點擊無反應。三個程式同時「毀容」,推測受同一 (或幾個) DLL 影響。

查找與比對:四步驟鎖定共用 DLL

步驟 1:確認程式所屬進程

  • 搜尋小幫手:開啟後按 Ctrl+Alt+Del 開啟工作管理器,右鍵選「前往進程」 → 原屬 Explorer.exe (資源管理器)
  • 說明及支援:屬 Helpctr.exe
  • 使用者帳戶:觀察開關變化或用 tasklist 比對 → 屬 mshta.exe

步驟 2:用 ListDLLs 擷取各進程載入的 DLL 清單

下載 ListDLLs (Sysinternals 經典工具),將 listdlls.exe 放入 C:\Windows。

重開機後,依序執行:

# 1. 基準線:未開啟搜尋小幫手時 Explorer.exe 載入的 DLL
listdlls -r explorer.exe > C:\explorer1.txt

# 2. 開啟搜尋小幫手後
listdlls -r explorer.exe > C:\explorer2.txt

# 3. 比對差異 → 搜尋小幫手專用 DLL
fc C:\explorer1.txt C:\explorer2.txt > C:\explorer.txt

步驟 3:取得其他兩程式的 DLL 清單

重開機 (確保未使用的 DLL 卸載) 後:

listdlls -r helpctr.exe > C:\helpctr.txt
listdlls -r mshta.exe > C:\mshta.txt

步驟 4:篩選共同異常 DLL

分析 explorer.txt,排除含 srchasst 路徑的檔案 (搜尋小幫手專用),剩餘 sxs.dll、vbscript.dll、JScript.dll (皆在 C:\Windows\system32)。交叉比對 helpctr.txt 與 mshta.txt,三檔皆存在於兩清單中 → 鎖定三嫌疑犯。

修復驗證

回原電腦確認三檔存在且未損壞。嘗試 regsvr32 重新註冊:

regsvr32 sxs.dll
regsvr32 vbscript.dll
regsvr32 JScript.dll  ← 關鍵!註冊後白板程式恢復正常

小編心得

系統許多故障源於 DLL,過去只關注「遺失」,其實「未正確註冊」同樣致命。掌握此法:找出共同進程 → 用 ListDLLs 比對差異 → 交叉篩選共用 DLL → 逐一註冊驗證,即能高效解決 DLL 相關疑難雜症。

Copyright © Windows教程網 All Rights Reserved