//--------------------------------------------------------------------------------------------------------
//                  Désinfection du ver Win32/PrettyPark
//
// suppPrettyPark.js            mode normal
// suppPrettyPark.js -s         mode silencieux : seule la proposition de redémarrage est affichée si besoin
//
// suppPrettyPark.js -r         mode "reboote" : en cours de désinfection, après le redémarrage.
//
// François Pirsch, 15 mars 2000
// fpirsch@waika9.com
//--------------------------------------------------------------------------------------------------------

fs = WScript.CreateObject("Scripting.FileSystemObject");
WshShell = WScript.CreateObject("Wscript.Shell");
env = WshShell.Environment('PROCESS');
WinDir = env('windir');

var silence = false;
var reboote = false;
if (WScript.Arguments.length > 0) {
  silence = (WScript.Arguments(0) == '-s');
  reboote = (WScript.Arguments(0) == '-r');
}

//---------------------------
// Effacement d'un fichier
//---------------------------
function erase (f) {
  try {fs.GetFile(f).Attributes = 0;
       fs.DeleteFile (f);
       compteur++}
  catch(e) {}
}

if ((!silence) && (!reboote))
  bouton = WshShell.Popup ('Script de désinfection du ver Win32/PrettyPark\n\nCe script est fourni sans garantie d\'aucune sorte. Voulez-vous continuer ?',0,'Avertissement',48+4);
if (silence || reboote || (bouton == 6)) {
//---------------------------------------------------------------------------
//                             Désinfection
//---------------------------------------------------------------------------
var compteur = 0;        // compte le nombre d'éléments du virus trouvés.
var msg;
var termine = true;

// On nettoie la clé qui lance PrettyPark à chaque exécution de fichier
var command = WshShell.RegRead('HKCR\\exefile\\shell\\open\\command\\');
if (command.toUpperCase().indexOf('FILES32.VXD') == 0) {
  compteur++;
  command = command.slice(12);
  WshShell.RegWrite('HKCR\\exefile\\shell\\open\\command\\',command);
}

// Quand la clé est nettoyée, on peut effacer le fichier contenant le ver PrettyPark
erase (WinDir+'\\System\\Files32.vxd');

// On vérifie que le fichier a bien été effacé. Sinon, on reboote.
if (fs.FileExists(WinDir+'\\System\\Files32.vxd')) {
  msg = 'Le ver Win32/PrettyPark a été détecté,\net la base de registres nettoyée.';
  WScript.Echo (msg + '\n\nL\'ordinateur doit être redémarré pour terminer la désinfection.');
  WshShell.RegWrite ('HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\RunOnce\\suppPrettyPark',WScript.ScriptFullName+' -r');
  WshShell.Run (WinDir + '\\rundll32.exe shell32.dll,SHExitWindowsEx 2');
  termine = false;          // On va rebooter, affaire à suivre...
}

if (termine) {
  if (compteur) {
    if (!silence) WScript.Echo ('Le ver Win32/PrettyPark a été supprimé.');
  } else if (!silence) WScript.Echo ('Le ver Win32/PrettyPark n\'a pas été trouvé sur cet ordinateur.');
}

}
