วันก่อน พยายามแก้ไวรัสซึ่งในเครื่องมีอยู่หลายตัวมาก ตัวหนึ่งที่พบคือ
C:\WINDOWS\system32\userinic.exe [TROJ_AGENT.BNG]
C:\WINDOWS\system32\userinig.exe [TROJ_RIPKILL.A]
สังเกตไหมว่า ชื่อมันไปคล้ายกับ
C:\WINDOWS\system32\userinit.exe
ซึ่งเป็น process ที่จำเป็นของ window
และในระหว่างที่กำลังลบ registry ที่ไวรัสทั้งหลายไปเกาะอยู่นั้น ก็เผลอไปลบตัวหนึ่งที่ใช้ config ไฟล์ userinit.exe เข้า (เบลอขนาดหนัก)
โดยมารู้ทีหลังเมื่อ login เข้า window ไม่ได้ ว่าเผลอลบ registry สำคัญไปซะแล้ว และที่แย่กว่านั้นคือจำไม่ได้ด้วยว่าเป็นตัวไหนเพราะลบไปเยอะมาก
(เนื่องจากติดไวรัสหลายตัว)
ว้า ทำไงดี ไม่ใช่เครื่องตัวเองซะด้วย แล้วก็ไม่ได้นึกถึงการ backup registry ไว้เลย (ต้องขอบอกว่ามือใหม่จริงๆ)
พยายาม search หาใน google บางเว็บบอกว่าให้ใช้แผ่นบูต augiePE (อะไรก็ไม่รู้) เรียก prog registry editor ขึ้นมาแล้วแก้ไปตรงๆ
ซึ่งมันคงจะดีถ้าเรามีแผ่นบูตที่ว่านั้นและรู้ว่าจะแก้ที่ registry ตรงไหน
แต่โชคร้ายที่ไม่มีทั้งสองอย่าง
บางเว็บบอกว่าให้ถอด harddisk ไปต่อกับเครื่องอื่นเพื่อก๊อบ userinit.exe ของเครื่องนั้นมาใส่
แต่เราไม่ได้ลบเจ้าตัวนั้นสักหน่อย ที่ลบคือ registry ที่ config ต่างหาก
หาต่อไปเรื่อยๆ ก็ไปพบเว็บหนึ่งของ microsoft เองเลย
"How to recover from a corrupted registry that prevents Windows XP from starting"
วิธีที่ว่าคือ
1. ใส่แผ่นบูต window เข้าไป (ต้องไปแก้ bios ให้บูตจากแผ่น cd เป็นอันดับแรก)
2. เมื่อหน้าจอแสดงทางเลือกว่าจะติดตั้ง window ใหม่หรือ repair window ให้เลือก repair ด้วยการกด R
3. จากนั้นจะปรากฏหน้าจอเหมือน command prompt เรียกว่า Recovery Console ให้ระบุหมายเลขของระบบปฏิบัติการที่มีในเครื่อง ถ้าเครื่องมีระบบเดียวก็ให้พิมพ์เลข 1
4. ถัดมาจะแสดงข้อความให้กรอก administrator password ถ้าไม่ได้ตั้ง password ไว้ก็ให้กด enter
5. ต่อมาให้พิมพ์ตามนี้ โดยเมื่อพิมพ์แต่ละบรรทัดเสร็จให้กด enter
md tmp
copy c:\windows\system32\config\system c:\windows\tmp\system.bak
copy c:\windows\system32\config\software c:\windows\tmp\software.bak
copy c:\windows\system32\config\sam c:\windows\tmp\sam.bak
copy c:\windows\system32\config\security c:\windows\tmp\security.bak
copy c:\windows\system32\config\default c:\windows\tmp\default.bak
delete c:\windows\system32\config\system
delete c:\windows\system32\config\software
delete c:\windows\system32\config\sam
delete c:\windows\system32\config\security
delete c:\windows\system32\config\default
copy c:\windows\repair\system c:\windows\system32\config\system
copy c:\windows\repair\software c:\windows\system32\config\software
copy c:\windows\repair\sam c:\windows\system32\config\sam
copy c:\windows\repair\security c:\windows\system32\config\security
copy c:\windows\repair\default c:\windows\system32\config\default
6. พิมพ์ exit เพื่อปิด Recovery Console เครื่องจะ restart เข้าสู่ window
วิธีข้างต้นนี้เป็นการเอา registry ที่ใช้สำหรับติดตั้ง window ครั้งแรกมาใช้แทน registry ปัจจุบันของเราที่มีปัญหา
window ที่บูตขึ้นมานี้ยังคงมีข้อมูลและโปรแกรมต่างๆ ครบถ้วน แต่ โปรแกรมส่วนใหญ่จะใช้ไม่ได้เนื่องจากค่าต่างๆที่ config ใน registry หายไป
ขั้นตอนต่อไปนี้คือการนำเอา registry files ที่ window backup ไว้ให้จาก system restore มาติดตั้ง
1. เปิดหน้าต่าง window ขึ้นมา แล้วคลิกเมนู tools และเลือก folder options
2. คลิกแท็บ view แล้ว ดูที่หัวข้อ Hidden files and folders เลือก Show hidden files and folders แล้วติ๊กเครื่องหมายอื่นในหัวข้อนี้ออกให้หมด
ในระหว่างนี้อาจมีหน้าต่าง confirm ปรากฏขึ้นมาก็ให้คลิก yes แล้ว กด OK เพื่อปิดหน้าต่าง floder options
3. เข้าไปที่ drive ที่ติดตั้ง window เช่น drive C:
4. คลิกเข้าไปที่ folder System Volume Information
ถ้าคลิกเข้าไปไม่ได้ให้ทำตามนี้ วิธีเข้า folder ที่ window ปฏิเสธการเข้าถึง (access denied)
5. เปิด folder ที่ชื่อประมาณนี้
C:\System Volume Information\_restore{D86480E3-73EF-47BC-A0EB-A81BE6EE3ED8}\RP1\Snapshot
ถ้าหาก _restorexxx นี้มีหลาย folder ก็ให้เลือกโดยดูจากวันที่ที่สร้าง file ขึ้นมาว่าอยากให้ window กลับไปเหมือนกับวันไหน
6. ใน folder snapshot นี้ให้ copy ไฟล์ เหล่านี้ไปไว้ที่ C:\windows\Tmp
• _REGISTRY_USER_.DEFAULT
• _REGISTRY_MACHINE_SECURITY
• _REGISTRY_MACHINE_SOFTWARE
• _REGISTRY_MACHINE_SYSTEM
• _REGISTRY_MACHINE_SAM
7. เปลี่ยนชื่อไฟล์ต่อไปนี้ใน C:\windows\Tmp
• _REGISTRY_USER_.DEFAULT เปลี่ยนเป็น DEFAULT
• _REGISTRY_MACHINE_SECURITY เปลี่ยนเป็น SECURITY
• _REGISTRY_MACHINE_SOFTWARE เปลี่ยนเป็น SOFTWARE
• _REGISTRY_MACHINE_SYSTEM เปลี่ยนเป็น SYSTEM
• _REGISTRY_MACHINE_SAM เปลี่ยนเป็น SAM
ต่อไปเป็นการนำ registry file ที่เตรียมไว้มาติดตั้ง
1. ใส่แผ่นบูตแล้วเรียก Recovery Console ขึ้นมา (ทำเหมือนขั้นตอนที่ได้บอกไว้ตอนต้น)
2. พิมพ์ข้อความต่อไปนี้โดยเมื่อจบแต่ละบรรทัดให้ enter
del c:\windows\system32\config\sam
del c:\windows\system32\config\security
del c:\windows\system32\config\software
del c:\windows\system32\config\default
del c:\windows\system32\config\system
copy c:\windows\tmp\software c:\windows\system32\config\software
copy c:\windows\tmp\system c:\windows\system32\config\system
copy c:\windows\tmp\sam c:\windows\system32\config\sam
copy c:\windows\tmp\security c:\windows\system32\config\security
copy c:\windows\tmp\default c:\windows\system32\config\default
3. พิมพ์ exit เพื่อปิด Recovery Console แล้วเครื่องจะ restart เข้าสู่ window
เพิ่มเติม : คุณสามารถสร้าง text file ที่มีข้อความตามที่ระบุในข้อ 2 แล้วเก็บไว้ที่ C:\windows โดยอาจจะตั้งชื่อไฟล์เป็น regcopy2.txt
ซึ่งแทนที่จะต้องเหนื่อยพิมพ์ทุกบรรทัดตามข้อ 2 ก็สามารถทำได้เพียงบรรทัดเดียวโดยพิมพ์ว่า
batch regcopy2.txt
ต่อไปเป็นการใช้ system restore เพื่อเลือกวันที่ที่จะให้ window กลับไปเป็นเหมือนวันนั้น
1. คลิก start เลือก All Programs
2. คลิก Accessories เลือก System Tools
3. คลิก System Restore แล้วเลือก Restore to a previous RestorePoint
4. คลิก next แล้วเลือก วันที่ต้องการ แล้วคลิก next ไปเรื่อยๆ จากนั้นกด OK เครื่องจะ restart อีกครั้ง
เป็นอันเสร็จขั้นตอน
ที่มา
http://support.microsoft.com/default.aspx?scid=KB;EN-US;Q307545&ID=KB;EN-US;Q307545
http://support.microsoft.com/kb/309531/
1 comment:
ขอบคุณมากครับ
Post a Comment