LINUX.ORG.RU

Что делает данный скрипт

 ,


0

1

Господа, совсем не силен в JS , подскажите, что делает даный скрипт. Голову сломал всю +))

<script type="text/javascript">eval(function(p,r,o,x,y,s){y=function(c){return(c<r?'':y(parseInt(c/r)))+((c=c%r)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(o--){s[y(o)]=x[o]||y(o)}x=[function(y){return s[y]}];y=function(){return'\\w+'};o=1};while(o--){if(x[o]){p=p.replace(new RegExp('\\b'+y(o)+'\\b','g'),x[o])}}return p}('i=D^C;j=0;m=B^E;a=F^A;c=4;g=H^G;p=9;q=J^y;h=1;t=6;k=2;f=u^x;o=z^w;d=v^I;e=5;b=3;s=V^W;r=7;n=8;l=X^T;K=j^l;U=h^i;N=k^g;M=b^a;L=c^d;O=e^m;P=t^s;S=r^q;R=n^o;Q=p^f;',60,60,'^^^^^^^^^^Zero3Six^Zero^Seven^SevenSixEight^Eight^Five6Zero^EightTwoThree^Nine^Four6Four^Two^One^Eight9Nine^SixFiveFive^Three^Eight5One^Five^FourZeroSeven^Four^Six6Two^Six^10955^7635^81^8000^3127^5290^8118^10765^3129^10279^88^1976^80^2190^1080^531^Six1ThreeThree^ZeroOneZeroFour^ZeroNineTwoSix^Two1FourEight^EightTwoNineNine^Five0FiveSeven^Three8SixOne^TwoOneSevenTwo^Seven2EightZero^8085^Four9OneFive^11921^8088^6889'.split('\u005e'),0,{}))
</script>

Может есть редактор который сможет все это хорошо подстветить, иначе не раобраться...

Ответ на: комментарий от aol

Спасибо!

Но пока смысла таки не уловил.. опертор ^ - означает побитово исключать..

не понимаю, как это работает..

'^^^^^^^^^^Zero3Six^Zero^Seven^SevenSixEight^Eight^Five6Zero^EightTwoThree^Nine^Four6Four^Two^One^Eight9Nine^SixFiveFive^Three^Eight5One^Five^FourZeroSeven^Four^Six6Two^Six^10955^7635^81^8000^3127^5290^8118^10765^3129^10279^88^1976^80^2190^1080^531^Six1ThreeThree^ZeroOneZeroFour^ZeroNineTwoSix^Two1FourEight^EightTwoNineNine^Five0FiveSeven^Three8SixOne^TwoOneSevenTwo^Seven2EightZero^8085^Four9OneFive^11921^8088^6889

Acid_joY
() автор топика
Ответ на: комментарий от Acid_joY

ты результат-то получил в итоге?

у меня

Four6Four=10279^3129;Two=0;SixFiveFive=10765^88;Zero3Six=1976^8118;Seven=4;EightTwoThree=2190^80;Five=9;FourZeroSeven=531^3127;Nine=1;Six=6;One=2;Five6Zero=10955^8000;Eight5One=5290^81;SevenSixEight=7635^1080;Eight=5;Zero=3;Six6Two=11921^8088;Four=7;Three=8;Eight9Nine=6889^8085;Six1ThreeThree=Two^Eight9Nine;Four9OneFive=Nine^Four6Four;Two1FourEight=One^EightTwoThree;ZeroNineTwoSix=Zero^Zero3Six;ZeroOneZeroFour=Seven^SevenSixEight;EightTwoNineNine=Eight^SixFiveFive;Five0FiveSeven=Six^Six6Two;Seven2EightZero=Four^FourZeroSeven;TwoOneSevenTwo=Three^Eight5One;Three8SixOne=Five^Five6Zero; 

aol ★★★★★
()
Ответ на: комментарий от Kalashnikov

оо, прикольно! спасибо за наводку ;)

aol ★★★★★
()

Одна онлайновая тулза даёт такой результат:

eval(function(p,r,o,x,y,s) {
    y = function(c) {
        return(c < r?'':y(parseInt(c/r))) + ((c = c % r) > 35?String.fromCharCode(c + 29):c.toString(36))
    };
    if( ! ''.replace(/^/,String)) {
        while(o--) {
            s[y(o)] = x[o] || y(o)
        }
        x = [function(y) {
            return s[y]
        }
        ];
        y = function() {
            return'\\w+'
        };
        o = 1
    };
    while(o--) {
        if(x[o]) {
            p = p.replace(new RegExp('\\b' + y(o) + '\\b','g'),x[o])
        }
    }
    return p
}
('i=D^C;j=0;m=B^E;a=F^A;c=4;g=H^G;p=9;q=J^y;h=1;t=6;k=2;f=u^x;o=z^w;d=v^I;e=5;b=3;s=V^W;r=7;n=8;l=X^T;K=j^l;U=h^i;N=k^g;M=b^a;L=c^d;O=e^m;P=t^s;S=r^q;R=n^o;Q=p^f;',60,60,'^^^^^^^^^^Zero3Six^Zero^Seven^SevenSixEight^Eight^Five6Zero^EightTwoThree^Nine^Four6Four^Two^One^Eight9Nine^SixFiveFive^Three^Eight5One^Five^FourZeroSeven^Four^Six6Two^Six^10955^7635^81^8000^3127^5290^8118^10765^3129^10279^88^1976^80^2190^1080^531^Six1ThreeThree^ZeroOneZeroFour^ZeroNineTwoSix^Two1FourEight^EightTwoNineNine^Five0FiveSeven^Three8SixOne^TwoOneSevenTwo^Seven2EightZero^8085^Four9OneFive^11921^8088^6889'.split('\u005e'),0, {}))

Другая — такой:

Four6Four = 10279 ^ 3129;
Two = 0;
SixFiveFive = 10765 ^ 88;
Zero3Six = 1976 ^ 8118;
Seven = 4;
EightTwoThree = 2190 ^ 80;
Five = 9;
FourZeroSeven = 531 ^ 3127;
Nine = 1;
Six = 6;
One = 2;
Five6Zero = 10955 ^ 8000;
Eight5One = 5290 ^ 81;
SevenSixEight = 7635 ^ 1080;
Eight = 5;
Zero = 3;
Six6Two = 11921 ^ 8088;
Four = 7;
Three = 8;
Eight9Nine = 6889 ^ 8085;
Six1ThreeThree = Two ^ Eight9Nine;
Four9OneFive = Nine ^ Four6Four;
Two1FourEight = One ^ EightTwoThree;
ZeroNineTwoSix = Zero ^ Zero3Six;
ZeroOneZeroFour = Seven ^ SevenSixEight;
EightTwoNineNine = Eight ^ SixFiveFive;
Five0FiveSeven = Six ^ Six6Two;
Seven2EightZero = Four ^ FourZeroSeven;
TwoOneSevenTwo = Three ^ Eight5One;
Three8SixOne = Five ^ Five6Zero;
Гы.

geekless ★★
()
Ответ на: комментарий от Acid_joY

А что там обходить? Значения выше, просто посчитай.

document.write((Four1NineSeven^Three9Two)+(OneNineOneThree^Two8Five)+(Zero2FiveNine^Zero4Zero)+(ZeroFourZeroFive^OneEightSix))
Или посмотри этот тред

Kalashnikov ★★★
()

чо то я очкую, Славик, запускать этот скрипт. Я хорошо помню однострочник на перле)

JFreeM ★★★☆
()
Ответ на: комментарий от JFreeM

Ой, да ладно тебе ))

Вот, я немного упростил вашу функцию, чтобы вы могли без страха ее понять ;)

/* лишние переменные убрал */
var p = 'i=D^C;j=0;m=B^E;a=F^A;c=4;g=H^G;p=9;q=J^y;h=1;t=6;k=2;f=u^x;o=z^w;d=v^I;e=5;b=3;s=V^W;r=7;n=8;l=X^T;K=j^l;U=h^i;N=k^g;M=b^a;L=c^d;O=e^m;P=t^s;S=r^q;R=n^o;Q=p^f;';
var r = 60;
var o = 60;
var x = ["", "", "", "", "", "", "", "", "", "", "Zero3Six", "Zero", "Seven", "SevenSixEight", "Eight", "Five6Zero", "EightTwoThree", "Nine", "Four6Four", "Two", "One", "Eight9Nine", "SixFiveFive", "Three", "Eight5One", "Five", "FourZeroSeven", "Four", "Six6Two", "Six", "10955", "7635", "81", "8000", "3127", "5290", "8118", "10765", "3129", "10279", "88", "1976", "80", "2190", "1080", "531", "Six1ThreeThree", "ZeroOneZeroFour", "ZeroNineTwoSix", "Two1FourEight", "EightTwoNineNine", "Five0FiveSeven", "Three8SixOne", "TwoOneSevenTwo", "Seven2EightZero", "8085", "Four9OneFive", "11921", "8088", "6889"];
var s = {};

function test(p, r, o, x, s) {
    var y = function (c) {
        return (c > 35 ? String.fromCharCode(c + 29) : c.toString(36))
    };
  
        while (o--) {
            s[y(o)] = x[o] || y(o)
        }

    return p.replace(new RegExp('\\b\\w+\\b', 'g'),
        function (y) {
            return s[y]
        }
    )

};

p = test(p, r, o, x, s);

P.S. не так страшно, верно? ;)

Boba_Fett
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.