RealzCode Anonymity

Thank you Javascript 🙃

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

  1. // ==UserScript==
  2. // @name RealzCode Anonymity
  3. // @namespace RealzCode/Anonymity
  4. // @description Thank you Javascript 🙃
  5. // @include *
  6. // @version 1.0
  7. // @grant none
  8. // @noframes false
  9. // @license Fair
  10. // @run-at document-start
  11. // ==/UserScript==
  12.  
  13. let realzcode = document.createElement("script");
  14. realzcode.textContent = "(" + (function() {
  15. "use strict";
  16. let setValue = function (object, propertyName, value, writable) {
  17. if (!writable) {
  18. writable = false;
  19. }
  20. Object.defineProperty(object, propertyName, {
  21. value: value,
  22. writable: writable,
  23. enumerable: true
  24. });
  25. };
  26. fetch('https://ipapi.co/json')
  27. .then(response => response.json())
  28. .then(data => {
  29. let lang = data.languages.split(',')[0];
  30. let langs = data.languages.split(',');
  31. if (lang.length == 2) {
  32. lang = lang.toLowerCase() + '-' + lang.toUpperCase();
  33. }
  34. setValue(navigator, "language", lang);
  35. setValue(navigator, "languages", langs);
  36. });
  37. let random = {
  38. "change": function (n, m) {
  39. if (!m) {
  40. m = 0.1;
  41. }
  42. return Math.round(n + ((Math.random() - 0.5) * 2 * n * 0.3));
  43. },
  44. "item": function (e) {
  45. let rand = e.length * Math.random();
  46. return e[Math.floor(rand)];
  47. },
  48. "key": function (power) {
  49. let rand = Object.keys(power).length * Math.random();
  50. return Object.keys(power)[Math.floor(rand)];
  51. }
  52. };
  53. let screens = {
  54. 0 : [640, 360],
  55. 1 : [640, 480],
  56. 2 : [800, 600],
  57. 3 : [1024, 768],
  58. 4 : [1280, 720],
  59. 5 : [1280, 800],
  60. 6 : [1280, 1024],
  61. 7 : [1360, 768],
  62. 8 : [1366, 768],
  63. 9 : [1440, 900],
  64. 10 : [1536, 864],
  65. 11 : [1600, 900],
  66. 12 : [1600, 1200],
  67. 13 : [1680, 1050],
  68. 14 : [1920, 1080],
  69. 15 : [1920, 1200],
  70. 16 : [2048, 1152],
  71. 17 : [2048, 1536],
  72. 18 : [2560, 1080],
  73. 19 : [2560, 1440],
  74. 20 : [2560, 1600],
  75. 21 : [3440, 1440],
  76. 22 : [3840, 2160]
  77. };
  78. let srand = random.key(screens);
  79. let swidth = (screens)[srand][0];
  80. let sheight = (screens)[srand][1];
  81. setValue(screen, "width", swidth);
  82. setValue(screen, "availWidth", swidth);
  83. setValue(screen, "innerWidth", swidth);
  84. setValue(screen, "outerWidth", swidth);
  85. setValue(screen, "height", sheight);
  86. setValue(screen, "availHeight", sheight);
  87. setValue(screen, "innerHeight", sheight);
  88. setValue(screen, "outerHeight", sheight);
  89. setValue(screen, "left", undefined, true);
  90. setValue(screen, "top", undefined, true);
  91. setValue(screen, "enabled", undefined);
  92. setValue(screen, "mozEnabled", undefined);
  93. setValue(screen, "availLeft", undefined, true);
  94. setValue(screen, "availTop", undefined, true);
  95. setValue(screen, "Brightness", random.change(screen.Brightness));
  96. setValue(screen, "mozBrightness", random.change(screen.mozBrightness));
  97. setValue(screen, "pixelDepth", random.item([24, 32]));
  98. setValue(screen, "colorDepth", random.item([24, 32]));
  99. setValue(screen, "devicePixelRatio", random.item([24, 32]));
  100. }) + ")()";
  101. document.documentElement.prepend(realzcode);