2007-05-07

Winsocket 毀損,應用程式無法與網路連結

近日,朋友公司的某台伺服器的金融軟體無法使用,連帶像網頁和Outlook Express也無法使用,但使用ping和tracert指令,確認網路環境是正常的,再請他手動啟用病毒掃描後,有抓到幾隻毒,在用 netsh wins dump(win2003和winXP指令有些微差異)顯示winsevnt.dll損,拜Google之後,在資安論壇找到下列這文章

引用連結:http://forum.icst.org.tw/phpBB2/viewtopic.php?p=32751

如何修復被惡意程式破壞的Winsock?
________________________________________
有些惡意程式(如Trojan.Riler.F、TROJ_AGENT.CAC)或間諜軟體(如NewDotNet、WebHancer等)安裝一些附加 元件至系統的Winsock2機碼中(有時候稱為Layered Service Provider, aka, LSP),以利於監視系統的網路訊息。當你(防毒軟體或反間諜軟體)不小心移除它時,會造成網路中斷或網路不穩定。如果發生這種情形,如何檢查及修復它 呢?

如何判斷Winsock2已經被損毀了呢?

方法一:使用Windows XP SP2所提供的命令(netsh winsock show catalog)
1. 按一下[開始],然後按一下[執行],輸入cmd,然後按一下[確定]。
2. 在命令列視窗中,輸入netsh winsock show catalog。
3. 如果Winsock2機碼沒有損壞且只安裝TCP/IP的話,[通訊協定]中會有10個區段,每個區段的名稱將如下所示:
‧ MSAFD Tcpip [TCP/IP]
‧ MSAFD Tcpip [UDP/IP]
‧ RSVP UDP Service Provider
‧ RSVP TCP Service Provider
‧ MSAFD NetBIOS [\Device\NetBT_Tcpip...
‧ MSAFD NetBIOS [\Device\NetBT_Tcpip...
‧ MSAFD NetBIOS [\Device\NetBT_Tcpip...
‧ MSAFD NetBIOS [\Device\NetBT_Tcpip...
‧ MSAFD NetBIOS [\Device\NetBT_Tcpip...
‧ MSAFD NetBIOS [\Device\NetBT_Tcpip...

方法二:使用msinfo32.exe
1. 按一下[開始],然後按一下[執行],輸msinfo32,然後按一下[確定]。
2. 展開[元件],再展開[網路],然後按一下[通訊協定]。
3. 如果Winsock2機碼沒有損壞且只安裝TCP/IP的話,[通訊協定]中會有10個區段,每個區段的名稱將如下所示:
‧ MSAFD Tcpip [TCP/IP]
‧ MSAFD Tcpip [UDP/IP]
‧ RSVP UDP Service Provider
‧ RSVP TCP Service Provider
‧ MSAFD NetBIOS [\Device\NetBT_Tcpip...
‧ MSAFD NetBIOS [\Device\NetBT_Tcpip...
‧ MSAFD NetBIOS [\Device\NetBT_Tcpip...
‧ MSAFD NetBIOS [\Device\NetBT_Tcpip...
‧ MSAFD NetBIOS [\Device\NetBT_Tcpip...
‧ MSAFD NetBIOS [\Device\NetBT_Tcpip...

如何修復已經被損毀的Winsock2呢?

方法一:
如果你的系統已經是Windows XP SP2的話,只要在命令列視窗中,輸入下列的命令即可:netsh winsock reset
不過,如果你有安裝其他的附加元件的話(如Google Toolbar),此命令會還原至只有TCP/IP的狀況。

方法二:使用LSP-Fix程式(我朋友Win2003是用這方法解決的
1. 可以從 http://cexx.org/lspfix.htm下載此程式。

方法三:使用WinsockXPfix程式
1. 可以從 http://www.snapfiles.com/get/winsockxpfix.html 下載此程式。

方法四:刪除毀損的登錄機碼,然後重新安裝 TCP/IP 通訊協定
1. 按一下[開始],然後按一下[執行]。
2. 在[開啟]方塊中,輸入regedit,然後按一下[確定]。
3. 在[登錄編輯程式]中找出下列機碼,再用滑鼠右鍵按一下每個機碼,然後按[刪除]:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Winsock
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Winsock2
4. 提示是否確定要刪除時,請按一下[是]。
注意 刪除Winsock機碼之後,請重新啟動電腦,否則,下列的步驟就會無法正確執行。
5. 安裝 TCP/IP,用滑鼠右鍵按一下網路連線,再按一下[內容]。
6. 按一下[安裝],按一下[通訊協定],然後按一下[新增]。
7. 按一下 [從磁片安裝],輸入C:\Windows\inf,然後按一下[確定]。
8. 在可用通訊協定的清單中按一下[Internet Protocol (TCP/IP)],然後按一下[確定],然後重新啟動電腦。

參考:
1. KB811259: http://support.microsoft.com/default.aspx?scid=kb%3Bzh-tw%3B811259
2. LSP-Fix: http://cexx.org/lspfix.htm