之前灌了卡巴斯基且掃完木馬後,
發現我電腦掛了,
四處去爬文且經過嘗試後,
找出了解決辦法,
分享出來給大家。
另外,
是否有大大能幫忙找出是遇到哪些病毒or木馬時,
卡巴斯基會有這種bug呢?
灌了防毒軟體卻導致我系統無法登入,
真的是Orz到了極點....
以下說明皆是以中文WinXP,作業系統安裝於C碟為例說明
先說明系統登入後會自動登出的原因,在作業系統中有一個位於C:\WINNT\system32下檔名為userinit.exe的檔案,如果這個檔案遺失或者相關的登錄檔損壞,就會造成登入後自動登出的情況。
而卡巴斯基在遇到某些病毒或木馬(至於是哪種病毒或木馬我也不確定),在卡巴解毒的過程中,會自動變更Windows的機碼並自動重新開機,然後夢饜就來了。我花了二天的時間找資料及比對系統機碼,發現:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Userinit
這組機碼,其資料型態被由字串值(REG_SZ)變更為可擴充字串值(REG_EXPAND_SZ),進而造成WinXP無法判讀該段機碼,只要刪除掉這段錯誤的機碼,再補上正確資料型態之機碼即可。(我在Win2000之中並沒有找到可擴充字串值這種資料型態,所以我大膽猜測,卡巴斯基並不會導致Win2000系統有登入後自動登出的問題)
平常要修正機碼很簡單,只要打開系統登錄編輯器修改一下即可,但現在作業系統根本無法登入,連安全模式也一樣無法登入,要如何解決這個問題呢,我提供二種解決方案:
方案1:
網路上有網友整合出WinPE+ERD2003的整合性光碟(請自行搜尋,我不便提供連結),以此光碟開機並選擇作業系統後,執行ERD2003內建之系統登入編輯器(此軟體為簡體中文語系),找到位於:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon下Userinit這組機碼,點開並複製他值的內容,舉例來說,我的是”C:\WINNT\system32\userinit.exe,”, 然後刪除Userinit這組機碼再新增一筆名稱為Userinit且資料型態為字串值之機碼,再將其值的內容設定為與刪除前相同之C:\WINNT\system32\userinit.exe,即可。
修改完成後,離開系統登錄編輯器並重新開機,一切搞定!
方案2:
實在是拿不到在其他系統下可編輯系統登錄檔之軟體的話,以可讀取到NTFS之開機片(如WInPE、WinXP光碟中之修復主控台等),開機後並進入命令提示字元,
打入:
c:
cd windows
md regtemp
cd system32
cd config
copy software \windows\regtemp
del software
copy \windows\repair\software
exit
重新開機後就可以登入系統,但所有使用者之軟體設定值全部消失,這時再執行系統登錄編輯器,展開HKEY_LOCAL_MACHINE,然後執行系統登錄編輯器中載入Hive控制檔這項功能(位於檔案>載入Hive控制檔),載入C:\windows\regtemp\software這個檔案,並將名稱取為regtemp,找到位於:HKEY_LOCAL_MACHINE\SOFTWARE\regtemp\Microsoft\Windows NT\CurrentVersion\Winlogon下Userinit這組機碼,點開並複製他值的內容,, 然後刪除Userinit這組機碼再新增一筆名稱為Userinit且資料型態為字串值之機碼,再將其值的內容設定為與刪除前相同之C:\WINNT\system32\userinit.exe,即可。
接著點一下regtemp,執行Hive解除載入以卸載登錄檔,完成後重新開機,並再次以開機片開機,在其命令提示字元下打入:
c:
cd windows
cd system32
cd config
del software
copy \windows\regtemp\software
exit
重新開機後系統即恢復正常。
書籤