“userinit.exe”の重要性について。レジストリ修正をしたらログオンしたのにすぐにログオフされてしまってパソコンが使えなくなった。

スポンサーリンク

ウィルス・マルウェア駆除作業中のレジストリ操作で、コンピュータ及びインターネット用セキュリティ関連企業のセキュリティ情報の指示にしたがったら誤って以下の値を削除してしまいました。
感染していたのは、WORM_SMALL.HYN(Trendmicro)です。間違って削除したのは以下のレジストリ値です。

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
Userinit = “userinit.exe,%Windows%\system\svchost.exe”

スポンサーリンク

インターネット用セキュリティ関連企業 が言うことにゃ

WORM_SMALL.HYN – 脅威データベース – Trend Micro

このリンクの手順4の部分です。

手順 4
このレジストリ値を削除します。
[ 詳細 ]
警告:レジストリはWindowsの構成情報が格納されているデータベースであり、レジストリの編集内容に問題があると、システムが正常に動作しなくなる場合があります。
レジストリの編集はお客様の責任で行っていただくようお願いいたします。弊社ではレジストリの編集による如何なる問題に対しても補償いたしかねます。
レジストリの編集前にこちらをご参照ください。
In HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
Userinit = “userinit.exe,%Windows%\system\svchost.exe”

レジストリを修正したらWindowsにログオンできない

今まではユーザー選択のアイコン表示がされることなくログオンできていたのですが、このレジストリを削除したことによりユーザー選択のアイコンが表示されるようになり、ユーザーアイコンをクリックしてもログオン処理後の壁紙が表示された直後にログオフされてユーザー選択のアイコン表示画面に戻ってしまうようになってしまいました。

最悪なことには、パソコンの電源を入れた時にキーボードのキー入力を受け付けないため、BIOS画面もできず、Safemodeで立ち上げることもできないため、Administratorを選択することもできませんでした。

パソコンのOSがWindows XPだったため、いろいろと調べてもリンク切れになっていました。(例えばこのリンク: http://support.microsoft.com/kb/307545/ja

ただ、ここの記載されている内容に従って作業された方が結果ドツボにはまったようです。(プレインストール版だと、C:\Windows\repair\systemが存在しないそうですが、その代わりにsystem.bakがあるため、system.bakをsystemに書き換えて強行した結果、Windows起動時に「Issas.exe システムエラー「このパスワードを更新しようとしたときに、リターン状況は現在のパスワードが正しくない状態の時に示されます。」エラーが出て再起動を繰り返すそうです。

HDDとして認識させて、強制的な復活を試みる

奇跡的というか幸いなことに、Groovyハードディスク簡単接続セットを持っていたため、立ち上がらなくなったパソコンからHDDを外し、別のパソコン(Windows10)にUSBで接続して、外付けドライブとしてHDDの中を見ることができました。次に、外付けドライブとして認識されているHDDに保存されているレジストリの編集を試みます。

HKEY_LOCAL_MACHINE\SOFTWAREに該当するファイルは、%Windows\System32\config\の中にあるファイルです。今回は、%Windows\Repairフォルダの中に、初期レジストリファイルと思われるSAM、SECURITY、SOFTWAREファイルがあり、操作したSOFTWARE部分だけでもよかったのですが、いったんDEFAULT、SAM、SECURITY、SOFTWARE、SYSTEM.bakファイルを%Windows\System32\config\の中にコピーし(当然、作業前にオリジナルのDEFAULT、SAM、SECURITY、SOFTWARE、SYSTEMファイルは名前の変更をしておき、%Repair\ SYSTEM.bakファイルは、%CONFIG\ SYSTEMファイルとしました。)、HDDを戻し、パソコンを起動時させると全ての設定がデフォルト画面と思われる状態でWindowsが起動されました。

手順4のレジストリ値の削除前にレジストリをエクスポートでバックアップを取っていたため、regeditを起動し、エクスポートしておいたファイルをインポートしました。この時、「一部のレジストリ値の変更はできませんでした」メッセージが表示されたため、HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WinlogonのUserinitの値を見てみると、未だ「”userinit.exe,%Windows%\system\svchost.exe”」のままでした。

パソコンが立ち上がらなくなった時に、いろいろ調べている中で見つけたUserinitの正しい値( Userinit=”C:\WINDOWS\system32\userinit.exe,” )に修正して、再起動させたところ、Windowsは元の設定の状態で起動し、ウィルスセキュリティUSBを挿してもウィスルは検知されなくなりました。

どうやら、とんでもないことをしていたようです。

後日、正常に作動するWindowsXPのパソコンのHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WinlogonのUserinitの値を見ると、Userinit=”C:\WINDOWS\system32\userinit.exe,”となっていたため、修正は正しかったということがわかりました。

調べてみると、「userinit.exe」は、とても重要な実行ファイルでした。「userinit.exe」とは、Windowsマシンにユーザーがログオンすると、ログオン直後に起動するプロセスで、Winlogonにより「userinit.exe」が実行されます。「Userinit.exe」はユーザー固有(HKCU)のレジストリを読み込み、ログオン・スクリプトを実行し、スタートアッププログラム実行、ネットワーク接続を再確立して、WindowsユーザーインターフェイスであるExplorer.exeを自動的に起動しているのもこのプロセスでした。

このことを知っていれば、レジストリ編集の時に「userinit.exe」を削除するなんてことはしなかったと思います。全ては知識不足が招いたことではあります。

今回は無事に元に戻すことができました。今回の出来事を通して気が付いたこととして、

レジストリを修正しようとする人へのアドバイスとして

  1. Groovyハードディスク簡単接続セットを持っていて本当に良かった。
  2. レジストリ編集をする前に、%Windows\System32\configフォルダをコピー保存しておいた方がいい。

ウィスル・マルウェアに感染していたとしても、ソフトで駆除できるものであれば、レジストリの編集をすることはないし、今回のマルウェアに関しては、手動による実行ファイル・フォルダ・自動実行用のレジストリの削除作業であったため、レジストリを削除したことで、今後、自動実行されることはなくなったと思います。

また、「userinit.exe」ファイルは、WindowsXPだけではなく、Windows7やWindows10にも共通するファイルなので、レジストリ値修正によるマルウェアやウィルス駆除を試みようと思っている人は十分に注意してください。

コメント