Spoofing JavaScript : Canvas, WebGL, AudioContext, fonts
L'extension Antidetect intercepte 40+ APIs JavaScript pour retourner des valeurs spoofées cohérentes et stables par profil.
Le fingerprinting est la collecte de signaux distinctifs (Canvas hash, WebGL renderer, fonts installées, AudioContext bruit) qui, combinés, identifient votre navigateur de manière quasi-unique parmi des millions. L'extension Vether Antidetect intercepte ces APIs et retourne des valeurs spoofées stables par profil (pour éviter l'incohérence) et plausibles (pour ne pas être détecté comme spoofé).
Canvas API
Le test classique : un site dessine un texte spécifique sur un canvas invisible et lit le hash de l'image résultante. Les différences de rendering (anti-aliasing, sub-pixel positioning, GPU driver) produisent des hashes différents même entre deux PC identiques. Vether intercepte canvas.toDataURL() et getImageData() pour ajouter un bruit aléatoire stable par profil — invisible à l'œil nu, mais qui change le hash.
WebGL fingerprint
WebGL expose 3 valeurs critiques : VENDOR (Intel / NVIDIA / AMD), RENDERER (modèle GPU exact), et SHADING_LANGUAGE_VERSION. Vether spoofe ces 3 valeurs en restant cohérent avec le User-Agent (un UA macOS aura un renderer Apple GPU, pas une RTX 4090).
AudioContext fingerprint
Moins connu mais puissant : un site génère un signal audio synthétique et lit la sortie. Les différences de DAC matériel produisent un hash unique. Vether injecte un bruit gaussien sub-audible dans OfflineAudioContext.startRendering().
Fonts list
La liste des fonts installées est extrêmement identifiante (un user avec Adobe Creative Suite a 100+ fontes uniques). Vether retourne une liste fixée de fonts standard Windows/macOS/Linux selon le profil.
Autres APIs interceptées (35+)
navigator.hardwareConcurrency(nombre de cores CPU)navigator.deviceMemory(RAM exposée en GB)navigator.connection(effectiveType, downlink, rtt)navigator.getBattery()(charge level, charging)navigator.mediaDevices.enumerateDevices()(caméras, micros)navigator.permissions.query()(geolocation, notifications)navigator.maxTouchPoints(0 desktop, 5 mobile)screen.width,screen.height,screen.colorDepthwindow.devicePixelRatioIntl.DateTimeFormat().resolvedOptions().timeZoneIntl.Locale(langue navigateur)performance.now()(timing fingerprint — bruit léger)Date.now()(synchro NTP du profil)- Et 22 autres...