Глупый вопрос по javascript

Discussion in 'Песочница' started by Forserer, 20 Jan 2016.

  1. Forserer

    Forserer New Member

    Joined:
    16 Aug 2015
    Messages:
    58
    Likes Received:
    2
    Reputations:
    0
    Всем привет. Кто разбирается в JS посмотрите на скрипт и скажите есть ли связь между скриптом и значением.

    (function() {
    function getSessionCookies() {
    cookieArray = new Array();
    var cName = /^\s?incap_ses_/;
    var c = document.cookie.split(";");
    for (var i = 0; i < c.length; i++) {
    key = c.substr(0, c.indexOf("="));
    value = c.substr(c.indexOf("=") + 1, c.length);
    if (cName.test(key)) {
    cookieArray[cookieArray.length] = value
    }
    }
    return cookieArray
    }

    function setIncapCookie(vArray) {
    try {
    cookies = getSessionCookies();
    digests = new Array(cookies.length);
    for (var i = 0; i < cookies.length; i++) {
    digests = simpleDigest((vArray) + cookies)
    }
    res = vArray + ",digest=" + (digests.join())
    } catch (e) {
    res = vArray + ",digest=" + (encodeURIComponent(e.toString()))
    }
    createCookie("___utmvc", res, 20)
    }

    function simpleDigest(mystr) {
    var res = 0;
    for (var i = 0; i < mystr.length; i++) {
    res += mystr.charCodeAt(i)
    }
    return res
    }

    function createCookie(name, value, seconds) {
    if (seconds) {
    var date = new Date();
    date.setTime(date.getTime() + (seconds * 1000));
    var expires = "; expires=" + date.toGMTString()
    } else {
    var expires = ""
    }
    document.cookie = name + "=" + value + expires + "; path=/"
    }

    function test(o) {
    var res = "";
    var vArray = new Array();
    for (var j = 0; j < o.length; j++) {
    var test = o[j][0]
    switch (o[j][1]) {
    case "exists_boolean":
    try {
    if (typeof(eval(test)) != "undefined") {
    vArray[vArray.length] = encodeURIComponent(
    test + "=true")
    } else {
    vArray[vArray.length] = encodeURIComponent(
    test + "=false")
    }
    } catch (e) {
    vArray[vArray.length] = encodeURIComponent(test +
    "=false")
    }
    break;
    case "exists":
    try {
    vArray[vArray.length] = encodeURIComponent(test +
    "=" + typeof(eval(test)))
    } catch (e) {
    vArray[vArray.length] = encodeURIComponent(test +
    "=" + e)
    }
    break;
    case "value":
    try {
    vArray[vArray.length] = encodeURIComponent(test +
    "=" + eval(test).toString())
    } catch (e) {
    vArray[vArray.length] = encodeURIComponent(test +
    "=" + e)
    }
    break;
    case "plugins":
    try {
    p = navigator.plugins pres = ""
    for (a in p) {
    pres += (p[a]['description'] + " ").substring(
    0, 20)
    }
    vArray[vArray.length] = encodeURIComponent(
    "plugins=" + pres);
    } catch (e) {
    vArray[vArray.length] = encodeURIComponent(
    "plugins=" + e);
    }
    break;
    case "plugin":
    try {
    a = navigator.plugins;
    for (i in a) {
    f = a["filename"].split(".");
    if (f.length == 2) {
    vArray[vArray.length] =
    encodeURIComponent("plugin=" + f[1]);
    break
    }
    }
    } catch (e) {
    vArray[vArray.length] = encodeURIComponent(
    "plugin=" + e)
    }
    break
    }
    }
    vArray = vArray.join();
    return vArray
    }
    var o = [
    ["navigator", "exists_boolean"],
    ["navigator.vendor", "value"],
    ["opera", "exists_boolean"],
    ["ActiveXObject", "exists_boolean"],
    ["navigator.appName", "value"],
    ["platform", "plugin"],
    ["webkitURL", "exists_boolean"],
    ["navigator.plugins.length==0", "value"],
    ["_phantom", "exists_boolean"]
    ];
    try {
    setIncapCookie(test(o));
    document.createElement("img").src =
    "/_Incapsula_Resource?SWKMTFSR=1&e=" + Math.random()
    } catch (e) {
    img = document.createElement("img");
    img.src = "/_Incapsula_Resource?SWKMTFSR=1&e=" + e
    }
    })();




    (function() {
    var z = "";
    var b =
    "7472797B766172207868723B76617220743D6E6577204461746528292E67657454696D6528293B766172207374617475733D227374617274223B7661722074696D696E673D6E65772041727261792833293B77696E646F772E6F6E756E6C6F61643D66756E6374696F6E28297B74696D696E675B325D3D22723A222B286E6577204461746528292E67657454696D6528292D74293B646F63756D656E742E637265617465456C656D656E742822696D6722292E7372633D222F5F496E63617073756C615F5265736F757263653F4553324C555243543D363726743D373826643D222B656E636F6465555249436F6D706F6E656E74287374617475732B222028222B74696D696E672E6A6F696E28292B222922297D3B69662877696E646F772E584D4C4874747052657175657374297B7868723D6E657720584D4C48747470526571756573747D656C73657B7868723D6E657720416374697665584F626A65637428224D6963726F736F66742E584D4C4854545022297D7868722E6F6E726561647973746174656368616E67653D66756E6374696F6E28297B737769746368287868722E72656164795374617465297B6361736520303A7374617475733D6E6577204461746528292E67657454696D6528292D742B223A2072657175657374206E6F7420696E697469616C697A656420223B627265616B3B6361736520313A7374617475733D6E6577204461746528292E67657454696D6528292D742B223A2073657276657220636F6E6E656374696F6E2065737461626C6973686564223B627265616B3B6361736520323A7374617475733D6E6577204461746528292E67657454696D6528292D742B223A2072657175657374207265636569766564223B627265616B3B6361736520333A7374617475733D6E6577204461746528292E67657454696D6528292D742B223A2070726F63657373696E672072657175657374223B627265616B3B6361736520343A7374617475733D22636F6D706C657465223B74696D696E675B315D3D22633A222B286E6577204461746528292E67657454696D6528292D74293B6966287868722E7374617475733D3D323030297B706172656E742E6C6F636174696F6E2E72656C6F616428297D627265616B7D7D3B74696D696E675B305D3D22733A222B286E6577204461746528292E67657454696D6528292D74293B7868722E6F70656E2822474554222C222F5F496E63617073756C615F5265736F757263653F535748414E45444C3D3631393039303732393536333234323433372C373133303139393939353439343534333637342C373333333634333839333130393136373632392C343538383631222C66616C7365293B7868722E73656E64286E756C6C297D63617463682863297B7374617475732B3D6E6577204461746528292E67657454696D6528292D742B2220696E6361705F6578633A20222B633B646F63756D656E742E637265617465456C656D656E742822696D6722292E7372633D222F5F496E63617073756C615F5265736F757263653F4553324C555243543D363726743D373826643D222B656E636F6465555249436F6D706F6E656E74287374617475732B222028222B74696D696E672E6A6F696E28292B222922297D3B";
    for (var i = 0; i < b.length; i += 2) {
    z = z + parseInt(b.substring(i, i + 2), 16) + ",";
    }
    z = z.substring(0, z.length - 1);
    eval(eval('String.fromCharCode(' + z + ')'));
    })();


    Значение :

    Первый параметр 1840182B0A353D778D882C73E96788BDFC8B523FFC7485E9F44AE09C015FBCE0AB45968E14989AE7

    Второй параметр 296629

    Особенно интересует самая последняя функция
     
  2. FunOfGun

    FunOfGun Elder - Старейшина

    Joined:
    5 Sep 2012
    Messages:
    388
    Likes Received:
    71
    Reputations:
    124
    Code:
    try {
        var xhr;
        var t = new Date().getTime();
        var status = "start";
        var timing = new Array(3);
        window.onunload = function() {
            timing[2] = "r:" + (new Date().getTime() - t);
            document.createElement("img").src = "/_Incapsula_Resource?ES2LURCT=67&t=78&d=" + encodeURIComponent(status + " (" + timing.join() + ")")
        };
        if (window.XMLHttpRequest) {
            xhr = new XMLHttpRequest
        } else {
            xhr = new ActiveXObject("Microsoft.XMLHTTP")
        }
        xhr.onreadystatechange = function() {
            switch (xhr.readyState) {
                case 0:
                    status = new Date().getTime() - t + ": request not initialized ";
                    break;
                case 1:
                    status = new Date().getTime() - t + ": server connection established";
                    break;
                case 2:
                    status = new Date().getTime() - t + ": request received";
                    break;
                case 3:
                    status = new Date().getTime() - t + ": processing request";
                    break;
                case 4:
                    status = "complete";
                    timing[1] = "c:" + (new Date().getTime() - t);
                    if (xhr.status == 200) {
                        parent.location.reload()
                    }
                    break
            }
        };
        timing[0] = "s:" + (new Date().getTime() - t);
        xhr.open("GET", "/_Incapsula_Resource?SWHANEDL=619090729563242437,7130199995494543674,7333643893109167629,458861", false);
        xhr.send(null)
    } catch (c) {
        status += new Date().getTime() - t + " incap_exc: " + c;
        document.createElement("img").src = "/_Incapsula_Resource?ES2LURCT=67&t=78&d=" + encodeURIComponent(status + " (" + timing.join() + ")")
    };
    вот последняя функция, а что за значения такие решительно непонятно