Editing
Sharty datamining
From SNCApedia
Jump to navigation
Jump to search
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
The Sharty datamines you a lot lol, you can get past a lot of the datamining while still being able to post by using <s>[https://mullvad.net/en/browser Mullvad browser] (allow canvas access)</s> you will get autobanned for ban evasion, which is basically the Tor browser but doesnt connect to Tor. >inb4 quote blocks mullvad browser again yup, he did === Integrity.js === Integrity.js contains the javascript that datamines/fingerprints you. Contrarily to popular belief, Integrity.wasm doesnt do any datamining, as wasm cant do that, instead it obfuscates the code that integrity.js runs. Integrity.wasm is kind useless though, as you can just log all the stuff intregrity.js runs. The only use integrity.wasm has is obfuscating how all the fingerprinting values are combined into a single integrity hash, so its slightly harder to spoof. Anyways heres all the stuff it runs that """secretly""" datamines you (from May 15 2025 as im too lazy to check it again). Note that i used LLMs to help me explain some of the code because I dont know a lot of javascript. '''ANYWAYS HERE I GO''' <syntaxhighlight lang="javascript">Boolean(window._phantom||window.callPhantom||window.__phantomas||window.Buffer||window.emit||window.spawn||window.webdriver||window.domAutomation||window.domAutomationController||window.document.documentElement.getAttribute('webdriver'));</syntaxhighlight> Checks if youre using a webdriver (automated browser) to stop bots, though just use a good one like https://github.com/ultrafunkamsterdam/nodriver <syntaxhighlight lang="javascript"> ['webkitPersistentStorage', 'webkitTemporaryStorage', 'webkitResolveLocalFileSystemURL'].filter(key => key '''in''' navigator).length + (navigator.vendor.indexOf('Google') === 0) + ['BatteryManager', 'webkitMediaStream', 'webkitSpeechGrammar'].filter(key => key '''in''' window).length</syntaxhighlight> Checks if certain Webkit (Safari) APIs are accessible, also checks if your browser vendor is a Google one. <syntaxhighlight lang="javascript">(() => { const f = new Float32Array(1); const u8 = new Uint8Array(f.buffer); f[0] = Infinity; f[0] = f[0] - f[0]; return u8[3];})();</syntaxhighlight>Sees how floating-point values are represented in memory<syntaxhighlight lang="javascript"> window.screen.colorDepth </syntaxhighlight>I shouldnt have to explain this one<syntaxhighlight lang="javascript"> parseFloat(navigator.deviceMemory) </syntaxhighlight>Checks how much RAM you have<syntaxhighlight lang="javascript"> navigator.hardwareConcurrency </syntaxhighlight>Checks how many logical cpu cores you have<syntaxhighlight lang="javascript"> window.outerWidth window.outerHeight </syntaxhighlight>Checks the window size<syntaxhighlight lang="javascript"> new Date().getTimezoneOffset() </syntaxhighlight>Gets your timezone<syntaxhighlight lang="javascript"> (typeof chrome !== 'undefined' && typeof chrome.runtime !== 'undefined' && typeof chrome.runtime.sendMessage !== 'undefined') ? chrome.runtime.sendMessage('jpgljfpmoofbmlieejglhonfofmahini', {action: 'check_installed'}, response => chrome.runtime.lastError || response.is_installed !== 'yes' ? 0 : 1) : 0 </syntaxhighlight>Tuxler "detection", can be easily spoofed by changing the extension ID <syntaxhighlight lang="javascript">['MSCSSMatrix', 'msSetImmediate', 'msIndexedDB'].filter(key => key in window).length + ['msMaxTouchPoints', 'msPointerEnabled'].filter(key => key in navigator).length ['msWriteProfilerMark', 'MSStream', 'msLaunchUri'].filter(key => key in window).length + (['msSaveBlob'].filter(key => key in navigator).length)</syntaxhighlight>Checks if ur using internet explorer, or pre-chromium microsoft edge<syntaxhighlight lang="javascript">['safari', 'ongestureend', 'TouchEvent', 'orientation'].filter(key => key in window).length + (HTMLElement && !('autocapitalize' in HTMLElement.prototype)) + (Document && 'pointerLockElement' in Document.prototype)</syntaxhighlight>iOS check or something<syntaxhighlight lang="javascript">/^function\s.*?\{\s*\[native code]\s*}$/.test(String(window.print))</syntaxhighlight>Sees if the printing method is not overwritten, idk whats this for<syntaxhighlight lang="javascript">(String(window.browser) === '[object WebPageNamespace]') + ('MicrodataExtractor' in window)</syntaxhighlight>Old firefox check<syntaxhighlight lang="javascript">['onmozfullscreenchange', 'mozInnerScreenX', 'CSSMozDocumentRule', 'CanvasCaptureMediaStream'].filter(key => key in window).length + ('buildID' in navigator) + ('MozAppearance' in (document.documentElement?.style ?? {}))</syntaxhighlight>Firefox check<syntaxhighlight lang="javascript">('DOMRectList' in window) + ('RTCPeerConnectionIceEvent' in window) + ('SVGGeometryElement' in window) + ('ontransitioncancel' in window)</syntaxhighlight>Modern browser check or something<syntaxhighlight lang="javascript"> localStorage.getItem('css_tokens') </syntaxhighlight>Sees what css you are using or something i think, idk, ill have to look into this some more<syntaxhighlight lang="javascript"> (() => { const getComplexCanvasFingerprint = () => { const asciiString = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ !\"#$%&'()*+,-./0123456789:;<=>?@[\]^_`{|}~"; let canvas = null; let ctx = null; let base64Data = null; try { canvas = document.createElement('canvas'); ctx = canvas.getContext('2d'); ctx.textBaseline = "top"; ctx.font = "17px Arial"; ctx.textBaseline = "alphabetic"; ctx.fillStyle = "#f60"; ctx.fillRect(150, 1, 550, 25); ctx.fillStyle = "#069"; ctx.fillText(asciiString, 2, 15); ctx.fillStyle = "rgba(102, 204, 0, 0.7)"; ctx.fillText(asciiString, 4, 17); ctx.font = "17px Helvetica"; ctx.strokeStyle = 'red'; ctx.lineWidth = 2; ctx.strokeText(asciiString, 10, 50); ctx.font = "17px Times New Roman"; ctx.strokeStyle = 'rgba(102, 204, 0, 0.7)'; ctx.lineWidth = 2; ctx.strokeText(asciiString, 12, 55); ctx.font = "17px Times"; ctx.strokeStyle = '#069'; ctx.lineWidth = 2; ctx.strokeText(asciiString, 14, 60); ctx.font = "17px Georgia"; ctx.strokeStyle = '#FF7F00'; ctx.lineWidth = 2; ctx.strokeText(asciiString, 16, 65); ctx.font = "17px Palatino"; ctx.strokeStyle = '#9400D3'; ctx.lineWidth = 2; ctx.strokeText(asciiString, 18, 70); ctx.font = "17px Garamond"; ctx.strokeStyle = '#4B0082'; ctx.lineWidth = 2; ctx.strokeText(asciiString, 20, 75); ctx.font = "17px Bookman"; ctx.strokeStyle = '#0000FF'; ctx.lineWidth = 2; ctx.strokeText(asciiString, 22, 80); ctx.font = "17px Comic Sans MS"; ctx.strokeStyle = '#00FF00'; ctx.lineWidth = 2; ctx.strokeText(asciiString, 24, 85); ctx.font = "17px Trebuchet MS"; ctx.strokeStyle = '#FFFF00'; ctx.lineWidth = 2; ctx.strokeText(asciiString, 26, 90); ctx.font = "17px Arial Black"; ctx.strokeStyle = '#FF7F00'; ctx.lineWidth = 2; ctx.strokeText(asciiString, 28, 95) ctx.font = "17px Impact"; ctx.strokeStyle = '#FF0000'; ctx.lineWidth = 2; ctx.strokeText(asciiString, 30, 100) ctx.font = "17px Anurati"; ctx.strokeStyle = '#9400D3'; ctx.lineWidth = 2; ctx.strokeText(asciiString, 28, 105); ctx.font = "17px Verdana"; ctx.strokeStyle = '#4B0082'; ctx.lineWidth = 2; ctx.strokeText(asciiString, 26, 110); ctx.font = "17px Courier New"; ctx.strokeStyle = '#0000FF'; ctx.lineWidth = 2; ctx.strokeText(asciiString, 24, 115); ctx.font = "17px Baskerville"; ctx.strokeStyle = '#00FF00'; ctx.lineWidth = 2; ctx.strokeText(asciiString, 22, 120); ctx.font = "17px Century Gothic"; ctx.strokeStyle = '#FFFF00'; ctx.lineWidth = 2; ctx.strokeText(asciiString, 20, 125); ctx.font = "17px Tahoma"; ctx.strokeStyle = '#FF7F00'; ctx.lineWidth = 2; ctx.strokeText(asciiString, 18, 130); ctx.font = "17px Arial Narrow"; ctx.strokeStyle = '#FF0000'; ctx.lineWidth = 2; ctx.strokeText(asciiString, 16, 135); ctx.font = "17px Trebuchet MS"; ctx.strokeStyle = '#9400D3';ctx.lineWidth = 2; ctx.strokeText(asciiString, 14, 140); ctx.font = "17px Lucida Sans Typewriter"; ctx.strokeStyle = '#4B0082'; ctx.lineWidth = 2; ctx.strokeText(asciiString, 12, 145); ctx.font = "17px Consolas"; ctx.strokeStyle = '#0000FF'; ctx.lineWidth = 2; ctx.strokeText(asciiString, 10, 150); ctx.font = "17px cursive"; ctx.strokeStyle = '#00FF00'; ctx.lineWidth = 2; ctx.strokeText(asciiString, 14, 155); ctx.font = "17px fantasy"; ctx.strokeStyle = '#FFFF00'; ctx.lineWidth = 2; ctx.strokeText(asciiString, 16, 160); ctx.font = "17px monospace"; ctx.strokeStyle = '#FF7F00'; ctx.lineWidth = 2; ctx.strokeText(asciiString, 18, 165); ctx.font = "17px sans-serif"; ctx.strokeStyle = '#FF0000'; ctx.lineWidth = 2; ctx.strokeText(asciiString, 20, 170); ctx.font = "17px serif"; ctx.strokeStyle = '#9400D3'; ctx.lineWidth = 2; ctx.strokeText(asciiString, 22, 175); ctx.font = "17px .Mondulkiri U GR 1.5"; ctx.strokeStyle = '#4B0082'; ctx.lineWidth = 2; ctx.strokeText(asciiString, 24, 180); ctx.font = "17px BPG Classic 99U"; ctx.strokeStyle = '#0000FF'; ctx.lineWidth = 2; ctx.strokeText(asciiString, 26, 185); ctx.font = "17px Bauhaus 93"; ctx.strokeStyle = '#00FF00'; ctx.lineWidth = 2; ctx.strokeText(asciiString, 28, 190); ctx.font = "17px Bookshelf Symbol 7"; ctx.strokeStyle = '#FFFF00'; ctx.lineWidth = 2; ctx.strokeText(asciiString, 30, 195); ctx.font = "17px Ming(for ISO10646)"; ctx.strokeStyle = '#FF7F00'; ctx.lineWidth = 2; ctx.strokeText(asciiString, 32, 200); ctx.font = "17px Modern No. 20"; ctx.strokeStyle = '#FF0000'; ctx.lineWidth = 2; ctx.strokeText(asciiString, 34, 205); ctx.font = "17px OCR-B 10 BT"; ctx.strokeStyle = '#9400D3'; ctx.lineWidth = 2; ctx.strokeText(asciiString, 36, 210); ctx.font = "17px Proxy 1"; ctx.strokeStyle = '#4B0082'; ctx.lineWidth = 2; ctx.strokeText(asciiString, 38, 215); ctx.font = "17px Proxy 9"; ctx.strokeStyle = '#0000FF'; ctx.lineWidth = 2; ctx.strokeText(asciiString, 40, 220); const grd = ctx.createLinearGradient(0, 0, 200, 0.2); grd.addColorStop(0, "rgba(102, 204, 0, 0.1)"); grd.addColorStop(1, "#FF0000"); ctx.fillStyle = grd; ctx.fillRect(10, 10, 150, 80); base64Data = canvas.toDataURL(); canvas.remove(); return base64Data; } catch (err) { if (canvas) { canvas.remove(); } return "blocked"; } } const canvasFingerprint = getComplexCanvasFingerprint(); if (canvasFingerprint != getComplexCanvasFingerprint()) { return "blocked"; } else { return canvasFingerprint; } })(); </syntaxhighlight>The part everyones been waiting for: THE CANVAS FINGERPRINT<syntaxhighlight lang="javascript">navigator.serviceWorker === undefined</syntaxhighlight>Sees if service worker API is there<syntaxhighlight lang="javascript">navigator.languages.join()</syntaxhighlight>Gets your prefered languages or something<syntaxhighlight lang="javascript">(new Intl['DateTimeFormat']).resolvedOptions()['locale']</syntaxhighlight>Your locale for formatting dates and times<syntaxhighlight lang="javascript"> window.gl ? window.gl.getExtension('WEBGL_debug_renderer_info') ? window.gl.getParameter(window.gl.getExtension('WEBGL_debug_renderer_info').UNMASKED_RENDERER_WEBGL) : null : null </syntaxhighlight>Sees what GPU youre using<syntaxhighlight lang="javascript"> window.location.href </syntaxhighlight>Sees what url you are on, most likely https://www.soyjak.st/SOMETHING/<syntaxhighlight lang="javascript">localStorage.stylesheet ? localStorage.stylesheet : null</syntaxhighlight>Sees if you are using the default stylesheet or not i think
Summary:
Please note that all contributions to SNCApedia are considered to be released under the Creative Commons Zero (Public Domain) (see
SNCApedia:Copyrights
for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource.
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Navigation menu
Page actions
Page
Discussion
Read
Edit
Edit source
History
Page actions
Page
Discussion
More
Tools
Personal tools
Not logged in
Talk
Contributions
Create account
Log in
Navigation
Main page
Recent changes
Random page
Rules
Owner Email
Help about MediaWiki
Search
Tools
What links here
Related changes
Special pages
Page information