Behavioral Obfuscator

Anti-Fingerprinting Timing & Scroll Protection - Introduces randomized timing jitter to prevent fingerprinting via scroll and typing patterns without affecting UX.

  1. // ==UserScript==
  2. // @name Behavioral Obfuscator
  3. // @description Anti-Fingerprinting Timing & Scroll Protection - Introduces randomized timing jitter to prevent fingerprinting via scroll and typing patterns without affecting UX.
  4. // @name:zh-TW 行為混淆器
  5. // @description:zh-TW 防指紋時間與滾動保護 - 引入隨機化的時間顫動,防止通過滾動和打字模式進行指紋識別,且不影響用戶體驗。
  6. // @name:zh-HK 行為混淆器
  7. // @description:zh-HK 防指紋時間與滾動保護 - 引入隨機化的時間顫動,防止通過滾動和打字模式進行指紋識別,且不影響用戶體驗。
  8. // @name:zh-CN 行为混淆器
  9. // @description:zh-CN 防指纹时间和滚动保护 - 引入随机化的时间抖动,防止通过滚动和打字模式进行指纹识别,同时不影响用户体验。
  10. // @name:ja 行動の難読化ツール
  11. // @description:ja 指紋防止タイミングとスクロール保護 - スクロールとタイピングのパターンを通じて指紋を防ぐためにランダム化されたタイミングジッターを導入し、UXには影響を与えません。
  12. // @name:kr 행동 은폐기
  13. // @description:kr 지문 방지 타이밍 및 스크롤 보호 - 스크롤 및 타이핑 패턴을 통한 지문 식별을 방지하기 위해 무작위 타이밍 지터를 도입하며 사용자 경험에는 영향을 주지 않습니다.
  14. // @name:ar مُربك سلوكي
  15. // @description:ar حماية ضد التعرف على بصمات الأصابع من خلال التوقيت والتمرير - يقدم اهتزازات توقيت عشوائية لمنع التعرف على بصمات الأصابع عبر نمط التمرير والكتابة دون التأثير على تجربة المستخدم.
  16. // @name:bg Поведенчески Препокривател
  17. // @description:bg Анти-фингерпринтинг защита на времето и скролиране - Внедрява рандомизирано времево трептене, за да предотврати откриването на пръстови отпечатъци чрез скролиране и типови модели без да влияе на потребителския опит.
  18. // @name:cs Behaviorální zakrytí
  19. // @description:cs Ochrana proti fingerprintingu pomocí časování a posouvání - Zavádí náhodné časové kolísání, které brání fingerprintingu pomocí vzorců posouvání a psaní, aniž by ovlivnilo uživatelský zážitek.
  20. // @name:da Adfærdsforvirrer
  21. // @description:da Anti-fingeraftryk timing- og scrollbeskyttelse - Introducerer tilfældig tidsforstyrrelse for at forhindre fingeraftryk via rulle- og tastemønstre uden at påvirke brugeroplevelsen.
  22. // @name:de Verhaltensverschleierer
  23. // @description:de Anti-Fingerprinting Timing- und Scrollschutz - Führt zufällige Zeitstörungen ein, um Fingerprinting über Scroll- und Tippmuster zu verhindern, ohne die Benutzererfahrung zu beeinträchtigen.
  24. // @name:tel ప్రవర్తనాత్మక గందరగోళం
  25. // @description:tel స్క్రోల్ మరియు టైపింగ్ ప్యాటర్న్స్ ద్వారా ఫింగర్‌ప్రింటింగ్‌ను నివారించేందుకు యూజర్ అనుభవాన్ని ప్రభావితం చేయకుండా రాండమైజ్ చేసిన టైమింగ్ జిట్టర్‌ను ప్రవేశపెడుతుంది.
  26. // @name:es Ofuscador Comportamental
  27. // @description:es Protección contra huellas dactilares mediante tiempo y desplazamiento - Introduce variaciones aleatorias de tiempo para evitar la huella digital mediante patrones de desplazamiento y escritura sin afectar la experiencia del usuario.
  28. // @name:en Behavioral Obfuscator
  29. // @description:en Anti-Fingerprinting Timing & Scroll Protection - Introduces randomized timing jitter to prevent fingerprinting via scroll and typing patterns without affecting UX.
  30. // @name:fr Obfuscateur Comportemental
  31. // @description:fr Protection contre le fingerprinting via le timing et le défilement - Introduit une variation aléatoire du timing pour empêcher le fingerprinting via les modèles de défilement et de frappe sans affecter l'expérience utilisateur.
  32. // @name:fr-CA Obfuscateur Comportemental
  33. // @description:fr-CA Protection contre le fingerprinting via le timing et le défilement - Introduit une variation aléatoire du timing pour empêcher le fingerprinting via les modèles de défilement et de frappe sans affecter l'expérience utilisateur.
  34. // @name:he מטשטש התנהגותי
  35. // @description:he הגנה מפני זיהוי פינגרפרינטינג על ידי זמנים וגלילה - מציג חרסום זמנים אקראיים כדי למנוע זיהוי פינגרפרינטינג דרך דפוסי גלילה והקלדה מבלי להשפיע על חווית המשתמש.
  36. // @name:hu Viselkedési Rejtés
  37. // @description:hu Anti-fingerprinting időzítés és görgetés védelem - Véletlenszerű időzítési ingadozásokat vezet be a görgetési és gépelési mintákon keresztül történő fingerprinting megakadályozására anélkül, hogy befolyásolná a felhasználói élményt.
  38. // @name:id Pengaburan Perilaku
  39. // @description:id Perlindungan Anti-Fingerprinting dengan Waktu & Scroll - Memperkenalkan jitter waktu acak untuk mencegah fingerprinting melalui pola gulir dan ketikan tanpa memengaruhi pengalaman pengguna.
  40. // @name:it Ofuscante Comportamentale
  41. // @description:it Protezione contro il fingerprinting tramite tempo e scorrimento - Introduce una variazione casuale del timing per prevenire il fingerprinting tramite modelli di scorrimento e digitazione senza influire sull'esperienza utente.
  42. // @name:ko 행동 은폐기
  43. // @description:ko 지문 방지 타이밍 및 스크롤 보호 - 스크롤 및 타이핑 패턴을 통한 지문 식별을 방지하기 위해 무작위 타이밍 지터를 도입하며 UX에 영향을 주지 않습니다.
  44. // @name:nb Atferdsforvirrer
  45. // @description:nb Anti-fingerprinting tid og rullebeskyttelse - Introducerer tilfeldig tidsforstyrrelse for å hindre fingeravtrykk via rulle- og tastemønstre uten å påvirke brukeropplevelsen.
  46. // @name:nl Gedragsverduisteraar
  47. // @description:nl Anti-fingerprinting tijd en scrollbescherming - Introduceert willekeurige tijdsvariaties om fingerprinting via scroll- en typemodellen te voorkomen zonder de gebruikerservaring te beïnvloeden.
  48. // @name:pl Obfuscator Zachowań
  49. // @description:pl Ochrona przed fingerprintingiem za pomocą czasu i przewijania - Wprowadza losowe drgania czasowe, aby zapobiec fingerprintingowi za pomocą wzorców przewijania i pisania, nie wpływając na doświadczenie użytkownika.
  50. // @name:pt-BR Ofuscador Comportamental
  51. // @description:pt-BR Proteção contra Fingerprinting por Tempo e Rolagem - Introduz uma variação de tempo aleatória para prevenir fingerprinting por padrões de rolagem e digitação sem afetar a experiência do usuário.
  52. // @name:ro Ofuscator Comportamental
  53. // @description:ro Protecție Anti-Fingerprinting prin sincronizare și derulare - Introduce fluctuații de timp aleatorii pentru a preveni fingerprinting-ul prin modelele de derulare și tastare fără a afecta experiența utilizatorului.
  54. // @name:ru Поведенческий Обфускатор
  55. // @description:ru Защита от отпечатков пальцев с помощью времени и прокрутки - Внедряет случайные колебания времени, чтобы предотвратить сбор отпечатков пальцев через прокрутку и типовые паттерны без влияния на пользовательский интерфейс.
  56. // @name:sk Behaviorálny Zmätkovač
  57. // @description:sk Ochrana proti fingerprintingu cez časovanie a rolovanie - Zavádza náhodné kolísanie času na zabránenie fingerprintingu cez rolovanie a písanie vzorcov bez ovplyvnenia používateľského zážitku.
  58. // @name:sr Behvioralni Obfuskator
  59. // @description:sr Zaštita od fingerprintinga pomoću vremena i skrolovanja - Uvođenje nasumičnih vremenskih varijacija da se spreči fingerprinting putem obrazaca skrolovanja i kucanja bez uticaja na koris
  60. // @version 0.1.1
  61. // @author PolyMegos (https://github.com/polymegos)
  62. // @namespace https://github.com/polymegos/behavioral-obfuscator
  63. // @supportURL https://github.com/polymegos/behavioral-obfuscator/issues
  64. // @license MIT
  65. // @match *://*/*
  66. // @run-at document-start
  67. // @grant none
  68. // @compatible chrome
  69. // @compatible firefox
  70. // @compatible opera
  71. // @compatible edge
  72. // @compatible safari
  73. // ==/UserScript==
  74.  
  75. (function() {
  76. 'use strict';
  77.  
  78. // Small-range subtle jitter generation
  79. function generateJitter(range) {
  80. return (Math.random() * 2 - 1) * range;
  81. }
  82.  
  83. // Apply typing jitter only when a keys are pressed
  84. let typingTimer = null;
  85. window.addEventListener('keydown', (e) => {
  86. if (typingTimer) clearTimeout(typingTimer);
  87. // Some small delay before processing key event
  88. typingTimer = setTimeout(() => {
  89. const delay = Math.random() * 40 + Math.random() * 40; // 0-80ms delay for typing
  90. e.preventDefault();
  91. setTimeout(() => {
  92. // Simulate the keypress after random delay
  93. document.dispatchEvent(new KeyboardEvent('keydown', {
  94. key: e.key,
  95. code: e.code,
  96. keyCode: e.keyCode,
  97. which: e.which
  98. }));
  99. }, delay);
  100. }, 5); // Prefix with tiny added initial delay before simulating keypress
  101. });
  102.  
  103. // Apply scroll delay jitter only when user actually scrolls
  104. let lastScrollTime = 0;
  105. window.addEventListener('scroll', () => {
  106. const now = performance.now();
  107. const delay = Math.random() * 75 + Math.random() * 75; // 0-150ms delay between scrolls
  108. // Add small jitter to scroll position when the user scrolls
  109. if (now - lastScrollTime < delay) return; // Don't interrupt if scrolling too fast
  110. lastScrollTime = now;
  111. let scrollX = window.scrollX;
  112. let scrollY = window.scrollY;
  113. // Add small jitter to scroll position (1-2 pixels offset)
  114. const noiseX = generateJitter(2);
  115. const noiseY = generateJitter(2);
  116. window.scrollTo(scrollX + noiseX, scrollY + noiseY);
  117. }, { passive: true });
  118.  
  119. })();