RealzCode Anonymity

Thank you Javascript 🙃

目前为 2023-09-09 提交的版本。查看 最新版本

// ==UserScript==
// @name        RealzCode Anonymity
// @namespace   RealzCode/Anonymity
// @description Thank you Javascript 🙃
// @include     *
// @version     1.0
// @grant       none
// @noframes    false
// @license     Fair
// @run-at      document-start
// ==/UserScript==

let realzcode = document.createElement("script");
realzcode.textContent = "(" + (function() {
	"use strict";
  let setValue = function (object, propertyName, value, writable) {
    if (!writable) {
      writable = false;
    }
    Object.defineProperty(object, propertyName, {
      value: value,
      writable: writable,
      enumerable: true
    });
  };
  fetch('https://ipapi.co/json')
    .then(response => response.json())
    .then(data => {
      let lang = data.languages.split(',')[0];
      let langs = data.languages.split(',');
      if (lang.length == 2) {
        lang = lang.toLowerCase() + '-' + lang.toUpperCase();
      }
      setValue(navigator, "language", lang);
      setValue(navigator, "languages", langs);
  });
  let random = {
    "change": function (n, m) {
      if (!m) {
        m = 0.1;
      }
      return Math.round(n + ((Math.random() - 0.5) * 2 * n * 0.3));
    },
    "item": function (e) {
      let rand = e.length * Math.random();
      return e[Math.floor(rand)];
    },
    "key": function (power) {
      let rand = Object.keys(power).length * Math.random();
      return Object.keys(power)[Math.floor(rand)];
    }
  };
  let screens = {
    0 : [640, 360],
    1 : [640, 480],
    2 : [800, 600],
    3 : [1024, 768],
    4 : [1280, 720],
    5 : [1280, 800],
    6 : [1280, 1024],
    7 : [1360, 768],
    8 : [1366, 768],
    9 : [1440, 900],
    10 : [1536, 864],
    11 : [1600, 900],
    12 : [1600, 1200],
    13 : [1680, 1050],
    14 : [1920, 1080],
    15 : [1920, 1200],
    16 : [2048, 1152],
    17 : [2048, 1536],
    18 : [2560, 1080],
    19 : [2560, 1440],
    20 : [2560, 1600],
    21 : [3440, 1440],
    22 : [3840, 2160]
  };
  let srand = random.key(screens);
  let swidth = (screens)[srand][0];
  let sheight = (screens)[srand][1];
  setValue(screen, "width", swidth);
  setValue(screen, "availWidth", swidth);
  setValue(screen, "innerWidth", swidth);
  setValue(screen, "outerWidth", swidth);
  setValue(screen, "height", sheight);
  setValue(screen, "availHeight", sheight);
  setValue(screen, "innerHeight", sheight);
  setValue(screen, "outerHeight", sheight);
  setValue(screen, "left", undefined, true);
  setValue(screen, "top", undefined, true);
  setValue(screen, "enabled", undefined);
  setValue(screen, "mozEnabled", undefined);
  setValue(screen, "availLeft", undefined, true);
  setValue(screen, "availTop", undefined, true);
  setValue(screen, "Brightness", random.change(screen.Brightness));
  setValue(screen, "mozBrightness", random.change(screen.mozBrightness));
  setValue(screen, "pixelDepth", random.item([24, 32]));
  setValue(screen, "colorDepth", random.item([24, 32]));
  setValue(screen, "devicePixelRatio", random.item([24, 32]));
}) + ")()";
document.documentElement.prepend(realzcode);