プログラムのゾンビ化

コンピュータウィルスのプログラムには,稀にゾンビ化させているものがあります.
ここでいうゾンビ化とは,管理プロセスに任意のプロセスを監視させ,任意のプロセスを終了させないようにすることです.

 Process process = new Process();
 process.EnableRaisingEvents = true;
 process.Exited += new EventHandler(process_Exited);
 process.StartInfo = new ProcessStartInfo(str);
 process.Start();


により,EnableRaisingEventsをtrue,process_Exited関数をイベントハンドラに登録します.
これによりプロセスが終了した場合はprocess_Exited関数が呼ばれるので次のように設定します.

 void process_Exited(object sender, EventArgs e)
 {
 	{
 		Process process = (Process)sender;
 		process.Start();
 	}
 }

これで終了したプロセスは再度起動されます.
後はこのプロセスを隠蔽できれば,割とよいゾンビ化の成功です.