您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Spoofs browser fingerprint data: canvas, WebGL, audio, language, timezone, userAgent, screen size, memory, and more. Session-persistent with one-time domain values per session only. Runs in top frame only for stealth and realism.
当前为
// ==UserScript== // @name Anti-Fingerprinting Shield Plus // @namespace https://365devnet.eu/userscripts // @version 4.3 // @description Spoofs browser fingerprint data: canvas, WebGL, audio, language, timezone, userAgent, screen size, memory, and more. Session-persistent with one-time domain values per session only. Runs in top frame only for stealth and realism. // @author Richard B // @match *://*/* // @run-at document-start // @grant none // @license MIT // ==/UserScript== (function () { 'use strict'; // ===== Skip if inside iframe ===== if (window.top !== window.self) return; const DEBUG_MODE = true; const sessionId = getOrCreateSessionId(); if (DEBUG_MODE) console.log(`[AFS+] Anti-Fingerprinting Shield v4.3 started. Session: ${sessionId}`); // ===== Randomization Pools ===== const platforms = ['Win32', 'Linux x86_64', 'MacIntel', 'FreeBSD']; const languages = ['en-US', 'nl-NL', 'fr-FR', 'de-DE', 'sv-SE']; const timezones = ['UTC', 'Europe/Amsterdam', 'America/New_York', 'Asia/Tokyo']; const userAgents = [ 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0 Safari/605.1.15', 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36' ]; const cores = [2, 4, 6, 8]; const memorySizes = [2, 4, 8]; const screenWidths = [1920, 1680, 1366]; const screenHeights = [1080, 1050, 768]; // ===== Get Spoofed Values (sessionStorage-backed) ===== const spoofed = { platform: getOrSet('platform', platforms), language: getOrSet('language', languages), languages: () => [spoofed.language, 'en'], timezone: getOrSet('timezone', timezones), userAgent: getOrSet('userAgent', userAgents), cores: parseInt(getOrSet('cores', cores)), memory: parseInt(getOrSet('memory', memorySizes)), screenWidth: parseInt(getOrSet('screenWidth', screenWidths)), screenHeight: parseInt(getOrSet('screenHeight', screenHeights)) }; function getOrSet(key, pool) { const storageKey = '__afs_' + key; let value = sessionStorage.getItem(storageKey); if (!value) { value = pool[Math.floor(Math.random() * pool.length)]; sessionStorage.setItem(storageKey, value); } return value; } function getOrCreateSessionId() { const key = '__afs_session_id'; let id = sessionStorage.getItem(key); if (!id) { id = Math.random().toString(36).substring(2, 10); sessionStorage.setItem(key, id); } return id; } function spoof(obj, prop, valueFn) { try { Object.defineProperty(obj, prop, { get: valueFn, configurable: true }); } catch (e) {} } // ===== Spoofing APIs ===== spoof(navigator, 'language', () => spoofed.language); spoof(navigator, 'languages', () => spoofed.languages()); spoof(navigator, 'platform', () => spoofed.platform); spoof(navigator, 'userAgent', () => spoofed.userAgent); spoof(navigator, 'hardwareConcurrency', () => spoofed.cores); spoof(navigator, 'deviceMemory', () => spoofed.memory); spoof(navigator, 'maxTouchPoints', () => 1); spoof(navigator, 'plugins', () => []); spoof(navigator, 'mimeTypes', () => ({ length: 0 })); spoof(navigator, 'mediaDevices', () => ({ enumerateDevices: () => Promise.resolve([]) })); spoof(navigator, 'webdriver', () => false); spoof(navigator, 'connection', () => ({ downlink: 10, effectiveType: '4g', rtt: 50, saveData: false })); if (navigator.permissions && navigator.permissions.query) { const originalQuery = navigator.permissions.query; navigator.permissions.query = function (params) { if (params.name === 'notifications') { return Promise.resolve({ state: 'denied' }); } return originalQuery.call(this, params); }; } spoof(window.screen, 'width', () => spoofed.screenWidth); spoof(window.screen, 'height', () => spoofed.screenHeight); spoof(window, 'innerWidth', () => spoofed.screenWidth); spoof(window, 'innerHeight', () => spoofed.screenHeight - 40); try { const original = Intl.DateTimeFormat.prototype.resolvedOptions; Intl.DateTimeFormat.prototype.resolvedOptions = function () { const options = original.call(this); options.timeZone = spoofed.timezone; return options; }; } catch (e) {} const AudioContext = window.AudioContext || window.webkitAudioContext; if (AudioContext && AnalyserNode.prototype.getFloatFrequencyData) { const original = AnalyserNode.prototype.getFloatFrequencyData; AnalyserNode.prototype.getFloatFrequencyData = function (arr) { original.call(this, arr); for (let i = 0; i < arr.length; i++) { arr[i] += Math.random() * 0.1; } }; } const originalGetImageData = CanvasRenderingContext2D.prototype.getImageData; CanvasRenderingContext2D.prototype.getImageData = function (x, y, w, h) { const data = originalGetImageData.call(this, x, y, w, h); for (let i = 0; i < data.data.length; i += 4) { data.data[i] += Math.floor(Math.random() * 3); data.data[i + 1] += Math.floor(Math.random() * 3); data.data[i + 2] += Math.floor(Math.random() * 3); } return data; }; const originalGL = WebGLRenderingContext.prototype.getParameter; WebGLRenderingContext.prototype.getParameter = function (param) { const spoofMap = { 37445: 'FakeVendor Inc.', 37446: 'Virtual GPU Renderer', 3379: 4096, 35661: 8 }; return spoofMap[param] || originalGL.call(this, param); }; window.DeviceMotionEvent = undefined; window.DeviceOrientationEvent = undefined; delete navigator.getBattery; window.addEventListener('beforeunload', e => { e.stopImmediatePropagation(); e.preventDefault(); return undefined; }, true); // ===== Debug Log ===== if (DEBUG_MODE) { console.group(`[AFS+] Spoofed Fingerprint for Session: ${sessionId}`); console.log('User Agent :', spoofed.userAgent); console.log('Platform :', spoofed.platform); console.log('Language :', spoofed.language); console.log('Languages :', spoofed.languages().join(', ')); console.log('Timezone :', spoofed.timezone); console.log('CPU Cores :', spoofed.cores); console.log('Device Memory :', spoofed.memory); console.log('Screen Width :', spoofed.screenWidth); console.log('Screen Height :', spoofed.screenHeight); console.groupEnd(); } })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址