Имя пользователя:
Пароль:
 

Название темы: Windows xp black edition
Показать сообщение отдельно

Аватара для Drongo

Будем жить, Маэстро...


Сообщения: 6694
Благодарности: 1393

Профиль | Сайт | Отправить PM | Цитировать


Ребят, тут в моём Black Edition XP есть файл RunOnceEx.js лежит в корне диска в папке $OEM$\$$\RunOnceEx.js и содержимое его приведено ниже:
1. Что этот скрипт делает?!
2. Его назначение?!
3. Когда при установке он запускается и откуда?!
4. Можете пояснить-"рассшифровать" его?!
Код: Выделить весь код
//003

var soft = new Array();
var key = "HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\RunOnceEx\\";
var runonceex_js = "HKLM\\SOFTWARE\\RunOnceEx.js";
var WshShell = new ActiveXObject("WScript.Shell");
var fso = new ActiveXObject( "Scripting.FileSystemObject" );
var n = 0;

soft.title = "";
soft.insertNextMedium = "Please insert next disk with {soft}";
soft.rebootMessage = "Clean & Reboot";
soft.startReboot = "reboot.exe /t 60 /m \"{message}\" /r {runat}";

soft.startReboot = soft.startReboot.replace("{message}", soft.rebootMessage);
//soft.insertNextMedium = soft.insertNextMedium.replace( "{soft}", soft[a].name );

function FindDriveLetter( dir )
{
	var e = new Enumerator( fso.Drives );
	var x;
	var letters = new Array();
	var path;
	
	for( ; !e.atEnd(); e.moveNext() )
	{
		x = e.item();
		
		if( x.DriveType == 3 || x.IsReady )
		{
			letters = letters.concat( x.DriveLetter );
		}
		
	}
	
	if( dir.length == 0)
	{
		return letters[0] + ":";
	}
	
	for( i = 0; i < letters.length; i++ )
	{
		if(dir.substr(0, 2) != "\\\\")
			path = letters[i] + ":\\" + dir;
		
		if( fso.FolderExists( path ) || fso.FileExists( path ) )
		{
			return letters[i] + ":";
		}
	}
	return "";
}

function GetFilledString( zahl, fillChar, num_of_digits )
{
	var filledStr = zahl.toString();
	while( filledStr.length < num_of_digits )
	{
		filledStr = fillChar + filledStr;
	}
	return filledStr;
}
function RunOnceEx(index)
{
	WshShell.RegWrite( key + "TITLE", soft.title, "REG_SZ" );
	var netzwerk_install;
	
	for( a = index; a < soft.length; a++ )
	{
		if( soft[a].name == "-= REBOOT =-" )
		{
			WshShell.RegWrite( key + GetFilledString(a, "0", 3) + "\\", soft.rebootMessage, "REG_SZ" );
			WshShell.RegWrite( key + "TITLE",
				soft.title + " " + (index+1).toString() + " - " + (a+1).toString() + " / " + soft.length.toString(),
				"REG_SZ" );
			WshShell.Run( "rundll32.exe iernonce.dll,RunOnceExProcess", 1, true );
			soft.startReboot = soft.startReboot.replace("{runat}", (a + 1).toString());
			WshShell.Run( soft.startReboot );
			
			return ++a;
		}
		else
		{
			soft[a].drive = "";
			
			if( soft[a].checkPoint.substr(0, 2) != "\\\\")
			{
				soft[a].drive = FindDriveLetter( soft[a].checkPoint );
				netzwerk_install = 0;
			}
			else
				netzwerk_install = 1;
			
			if( soft[a].drive.length == 0 && netzwerk_install == 0 )
			{
				WshShell.RegWrite( key + "TITLE",
					soft.title + " " + (index+1).toString() + " - " + a.toString() + " / " + soft.length.toString(),
					"REG_SZ" );
				WshShell.Run("rundll32.exe iernonce.dll,RunOnceExProcess", 1, true);
				soft[a].drive = FindDriveLetter( soft[a].checkPoint );
			}
			if( soft[a].drive.length == 0 && netzwerk_install == 0 )
			{
				WshShell.Popup( soft.insertNextMedium.replace( "{soft}", soft[a].name ), 60, "", 64 );
				soft[a].drive = FindDriveLetter( soft[a].checkPoint );
			}
			if( soft[a].drive.length == 0 && netzwerk_install == 0 )
			{
				WshShell.Popup( soft.insertNextMedium.replace( "{soft}", soft[a].name ), 60, "", 64 );
				soft[a].drive = FindDriveLetter( soft[a].checkPoint );
			}
			if( soft[a].drive.length == 0 && netzwerk_install == 0 )
			{
				WScript.Echo( soft.insertNextMedium.replace( "{soft}", soft[a].name ) );
				soft[a].drive = FindDriveLetter( soft[a].checkPoint );
				index = a+1;
			}
			if(soft[a].drive.length || netzwerk_install == 1 )
			{
				WshShell.RegWrite( key + GetFilledString(a, "0", 3) + "\\", soft[a].name, "REG_SZ" );
				for(b = 0; b < soft[a].length; b++)
				{
					if( netzwerk_install == 0 )
						soft[a][b] = soft[a][b].replace( "%CDROM%", soft[a].drive );
					else
						soft[a][b] = soft[a][b].replace( "%CDROM%", "" );
						
					WshShell.RegWrite( key + GetFilledString( a, "0", 3 ) + "\\" + GetFilledString( b, "0", 2 ),
						soft[a][b], "REG_SZ" );
				}
			}
		}
	}
	
	if( index > 0 && index < soft.length )
	{
		WshShell.RegWrite( key + "TITLE",
			soft.title + " " + ( index + 1 ).toString() + " - " + soft.length.toString() + " / " + soft.length.toString(),
			"REG_SZ" );
	}
	
	if( index < soft.length )
	{
		WshShell.Run( "rundll32.exe iernonce.dll,RunOnceExProcess", 1, true );
	}
	return soft.length;
}
function main()
{
	//var namedArgs = WScript.Arguments.Named;
	//var nextaction = WshShell.RegRead( runonceex_js + "\\" );
	var startAt = 0;
	//var wait_sek = 0;
	var WshSysEnv = WshShell.Environment( "SYSTEM" );
	var driversDir = WshSysEnv( "systemdrive" );
	driversDir += "\\Drivers";
	
	try
	{
		startAt = WshShell.RegRead( runonceex_js + "\\runat" );
		WshShell.RegDelete( runonceex_js + "\\runat" );
	}
	catch(e){}
	
	if( RunOnceEx( startAt ) == soft.length )
	{
		if( fso.FolderExists( driversDir ) )
		{
			fso.DeleteFolder( driversDir, true );
		}
		try
		{
			WshShell.RegDelete( runonceex_js );
		}
		catch(e){}
	}
}

main();

-------
Правильная постановка вопроса свидетельствует о некотором знакомстве с делом.
3нание бывает двух видов. Мы сами знаем предмет — или же знаем, где найти о нём сведения.
[Quick Killer 3.0 Final [OSZone.net]] | [Quick Killer 3.0 Final [SafeZone.cc]] | [Парсер логов Gmer] | [Парсер логов AVZ]

http://tools.oszone.net/Drongo/Userbar/SafeZone_cc.gif


Отправлено: 14:00, 20-04-2008 | #81

Название темы: Windows xp black edition