FingerPrint Token

Any Way To generate A hidden Fingerprint Token Using Node Js

A hidden Fingerprint?? What do you mean?

in the website u can see the Fingerprint name but when u search on html u will see like that i asked someone he said kt needs python script or idk if you can help please tell me
IMG_20220507_102646

I’ve used this before: https://ja3er.com/

its slow I need one who generate new one evry request

Do you mean JA3 Fingerprints?

1 Like

you can use random numbers for those fingerprints…

But I made you a config that will generate a fingerprint, based on the UserAgent and browser you provide.
This is 100% the same fingerprint as used by IO*** and so on:
Clipboard03
OB_output

FingerprintOB2.opk (9.8 KB)
additional files: (unzip to c drive )
https://anonfiles.com/Z7X0sen0yd/for_fingerprint_zip

image

node needs to be installed!

3 Likes

thx bro i love you :smiling_face_with_three_hearts:

IMG_20220605_202411
any solution ?

1 Like

yes, go to RL Settings and uncheck “restrict blocks from using resources…”

image

1 Like

thx it works i will try to link it with the site i wish it works

Yo guys, had a chance for check that stuff, here Jint, I did remove some part from var values, since its too big here
At least U can find it while debugging, so it wont be so ez, but U can try a luck with, current code works, but its not all code inside line values.

var navigator = {};
var window = {};
x64Add = function(m, n) {
            m = [m[0] >>> 16, m[0] & 65535, m[1] >>> 16, m[1] & 65535];
            n = [n[0] >>> 16, n[0] & 65535, n[1] >>> 16, n[1] & 65535];
            var o = [0, 0, 0, 0];
            o[3] += m[3] + n[3];
            o[2] += o[3] >>> 16;
            o[3] &= 65535;
            o[2] += m[2] + n[2];
            o[1] += o[2] >>> 16;
            o[2] &= 65535;
            o[1] += m[1] + n[1];
            o[0] += o[1] >>> 16;
            o[1] &= 65535;
            o[0] += m[0] + n[0];
            o[0] &= 65535;
            return [o[0] << 16 | o[1], o[2] << 16 | o[3]]
        },
x64Multiply  =  function(m, n) {
            m = [m[0] >>> 16, m[0] & 65535, m[1] >>> 16, m[1] & 65535];
            n = [n[0] >>> 16, n[0] & 65535, n[1] >>> 16, n[1] & 65535];
            var o = [0, 0, 0, 0];
            o[3] += m[3] * n[3];
            o[2] += o[3] >>> 16;
            o[3] &= 65535;
            o[2] += m[2] * n[3];
            o[1] += o[2] >>> 16;
            o[2] &= 65535;
            o[2] += m[3] * n[2];
            o[1] += o[2] >>> 16;
            o[2] &= 65535;
            o[1] += m[1] * n[3];
            o[0] += o[1] >>> 16;
            o[1] &= 65535;
            o[1] += m[2] * n[2];
            o[0] += o[1] >>> 16;
            o[1] &= 65535;
            o[1] += m[3] * n[1];
            o[0] += o[1] >>> 16;
            o[1] &= 65535;
            o[0] += m[0] * n[3] + m[1] * n[2] + m[2] * n[1] + m[3] * n[0];
            o[0] &= 65535;
            return [o[0] << 16 | o[1], o[2] << 16 | o[3]]
        },
x64Rotl =  function(m, n) {
            n %= 64;
            if (n === 32) {
                return [m[1], m[0]]
            } else if (n < 32) {
                return [m[0] << n | m[1] >>> 32 - n, m[1] << n | m[0] >>> 32 - n]
            } else {
                n -= 32;
                return [m[1] << n | m[0] >>> 32 - n, m[0] << n | m[1] >>> 32 - n]
            }
        },
x64LeftShift = function(m, n) {
            n %= 64;
            if (n === 0) {
                return m
            } else if (n < 32) {
                return [m[0] << n | m[1] >>> 32 - n, m[1] << n]
            } else {
                return [m[1] << n - 32, 0]
            }
        },
x64Xor = function(m, n) {
            return [m[0] ^ n[0], m[1] ^ n[1]]
        },
x64Fmix = function(h) {
            h = this.x64Xor(h, [0, h[0] >>> 1]);
            h = this.x64Multiply(h, [4283543511, 3981806797]);
            h = this.x64Xor(h, [0, h[0] >>> 1]);
            h = this.x64Multiply(h, [3301882366, 444984403]);
            h = this.x64Xor(h, [0, h[0] >>> 1]);
            return h
        },
x64hash128 = function(key, seed) {
            key = key || "";
            seed = seed || 0;
            var remainder = key.length % 16;
            var bytes = key.length - remainder;
            var h1 = [0, seed];
            var h2 = [0, seed];
            var k1 = [0, 0];
            var k2 = [0, 0];
            var c1 = [2277735313, 289559509];
            var c2 = [1291169091, 658871167];
            for (var i = 0; i < bytes; i = i + 16) {
                k1 = [key.charCodeAt(i + 4) & 255 | (key.charCodeAt(i + 5) & 255) << 8 | (key.charCodeAt(i + 6) & 255) << 16 | (key.charCodeAt(i + 7) & 255) << 24, key.charCodeAt(i) & 255 | (key.charCodeAt(i + 1) & 255) << 8 | (key.charCodeAt(i + 2) & 255) << 16 | (key.charCodeAt(i + 3) & 255) << 24];
                k2 = [key.charCodeAt(i + 12) & 255 | (key.charCodeAt(i + 13) & 255) << 8 | (key.charCodeAt(i + 14) & 255) << 16 | (key.charCodeAt(i + 15) & 255) << 24, key.charCodeAt(i + 8) & 255 | (key.charCodeAt(i + 9) & 255) << 8 | (key.charCodeAt(i + 10) & 255) << 16 | (key.charCodeAt(i + 11) & 255) << 24];
                k1 = this.x64Multiply(k1, c1);
                k1 = this.x64Rotl(k1, 31);
                k1 = this.x64Multiply(k1, c2);
                h1 = this.x64Xor(h1, k1);
                h1 = this.x64Rotl(h1, 27);
                h1 = this.x64Add(h1, h2);
                h1 = this.x64Add(this.x64Multiply(h1, [0, 5]), [0, 1390208809]);
                k2 = this.x64Multiply(k2, c2);
                k2 = this.x64Rotl(k2, 33);
                k2 = this.x64Multiply(k2, c1);
                h2 = this.x64Xor(h2, k2);
                h2 = this.x64Rotl(h2, 31);
                h2 = this.x64Add(h2, h1);
                h2 = this.x64Add(this.x64Multiply(h2, [0, 5]), [0, 944331445])
            }
            k1 = [0, 0];
            k2 = [0, 0];
            switch (remainder) {
            case 15:
                k2 = this.x64Xor(k2, this.x64LeftShift([0, key.charCodeAt(i + 14)], 48));
            case 14:
                k2 = this.x64Xor(k2, this.x64LeftShift([0, key.charCodeAt(i + 13)], 40));
            case 13:
                k2 = this.x64Xor(k2, this.x64LeftShift([0, key.charCodeAt(i + 12)], 32));
            case 12:
                k2 = this.x64Xor(k2, this.x64LeftShift([0, key.charCodeAt(i + 11)], 24));
            case 11:
                k2 = this.x64Xor(k2, this.x64LeftShift([0, key.charCodeAt(i + 10)], 16));
            case 10:
                k2 = this.x64Xor(k2, this.x64LeftShift([0, key.charCodeAt(i + 9)], 8));
            case 9:
                k2 = this.x64Xor(k2, [0, key.charCodeAt(i + 8)]);
                k2 = this.x64Multiply(k2, c2);
                k2 = this.x64Rotl(k2, 33);
                k2 = this.x64Multiply(k2, c1);
                h2 = this.x64Xor(h2, k2);
            case 8:
                k1 = this.x64Xor(k1, this.x64LeftShift([0, key.charCodeAt(i + 7)], 56));
            case 7:
                k1 = this.x64Xor(k1, this.x64LeftShift([0, key.charCodeAt(i + 6)], 48));
            case 6:
                k1 = this.x64Xor(k1, this.x64LeftShift([0, key.charCodeAt(i + 5)], 40));
            case 5:
                k1 = this.x64Xor(k1, this.x64LeftShift([0, key.charCodeAt(i + 4)], 32));
            case 4:
                k1 = this.x64Xor(k1, this.x64LeftShift([0, key.charCodeAt(i + 3)], 24));
            case 3:
                k1 = this.x64Xor(k1, this.x64LeftShift([0, key.charCodeAt(i + 2)], 16));
            case 2:
                k1 = this.x64Xor(k1, this.x64LeftShift([0, key.charCodeAt(i + 1)], 8));
            case 1:
                k1 = this.x64Xor(k1, [0, key.charCodeAt(i)]);
                k1 = this.x64Multiply(k1, c1);
                k1 = this.x64Rotl(k1, 31);
                k1 = this.x64Multiply(k1, c2);
                h1 = this.x64Xor(h1, k1)
            }
            h1 = this.x64Xor(h1, [0, key.length]);
            h2 = this.x64Xor(h2, [0, key.length]);
            h1 = this.x64Add(h1, h2);
            h2 = this.x64Add(h2, h1);
            h1 = this.x64Fmix(h1);
            h2 = this.x64Fmix(h2);
            h1 = this.x64Add(h1, h2);
            h2 = this.x64Add(h2, h1);
            return ("00000000" + (h1[0] >>> 0).toString(16)).slice(-8) + ("00000000" + (h1[1] >>> 0).toString(16)).slice(-8) + ("00000000" + (h2[0] >>> 0).toString(16)).slice(-8) + ("00000000" + (h2[1] >>> 0).toString(16)).slice(-8)
        }
var values = UARAND+"~~~en-US~~~24~~~4~~~21~~~1920;1080~~~"+height+";"+width+"~~~-180~~~Europe/Unknown~~~1~~~1~~~1~~~1~~~unknown~~~Win32~~~Chromium document Renderer::::application/pdf~pdf;JavaScript document Plugin::Portable Document Format::application/x-google-chrome-pdf~pdf;~extensions:ANGLE_instanced_arrays;EXT_blend_minmax;EXT_color_buffer_half_float;EXT_disjoint_timer_query;EXT_float_blend;EXT_frag_depth;EXT_shader_texture_lod;EXT_texture_compression_bptc;EXT_texture_compression_rgtc;EXT_texture_filter_anisotropic;WEBKIT_EXT_texture_filter_anisotropic;EXT_sRGB;KHR_parallel_shader_compile;OES_element_index_uint;OES_fbo_render_mipmap;OES_standard_derivatives;OES_texture_float;OES_texture_float_linear;OES_texture_half_float;OES_texture_half_float_linear;OES_vertex_array_object;WEBGL_color_buffer_float;WEBGL_compressed_texture_s3tc;WEBKIT_WEBGL_compressed_texture_s3tc;WEBGL_compressed_texture_s3tc_srgb;WEBGL_debug_renderer_info;WEBGL_debug_shaders;WEBGL_depth_texture;WEBKIT_WEBGL_depth_texture;WEBGL_draw_buffers;WEBGL_lose_context;WEBKIT_WEBGL_lose_context;WEBGL_multi_draw~webgl aliased line width range:[1, 1]~webgl aliased point size range:[1, 1024]~webgl alpha bits:8~webgl antialiasing:yes~webgl blue bits:8~webgl depth bits:24~webgl green bits:8~webgl max anisotropy:16~webgl max combined texture image units:32~webgl max cube map texture size:16384~webgl max fragment uniform vectors:1024~webgl max render buffer size:16384~webgl max texture image units:16~webgl max texture size:16384~webgl max varying vectors:30~webgl max vertex attribs:16~webgl max vertex texture image units:16~webgl max vertex uniform vectors:4095~webgl max viewport dims:[32767, 32767]~webgl red bits:8~webgl renderer:WebKit WebGL~webgl shading language version:WebGL GLSL ES 1.0 (OpenGL ES GLSL ES 1.0 Chromium)~webgl stencil bits:0~webgl vendor:WebKit~webgl version:WebGL 1.0 (OpenGL ES 2.0 Chromium)~webgl unmasked vendor:Google Inc. (NVIDIA)~webgl unmasked renderer:ANGLE (NVIDIA, NVIDIA TITAN Xp Direct3D11 vs_5_0 ps_5_0, D3D11)~webgl vertex shader high float precision:23~webgl vertex shader high float precision rangeMin:127~webgl vertex shader high float precision rangeMax:127~webgl vertex shader medium float precision:23~webgl vertex shader medium float precision rangeMin:127~webgl vertex shader medium float precision rangeMax:127~webgl vertex shader low float precision:23~webgl vertex shader low float precision rangeMin:127~webgl vertex shader low float precision rangeMax:127~webgl fragment shader high float precision:23~webgl fragment shader high float precision rangeMin:127~webgl fragment shader high float precision rangeMax:127~webgl fragment shader medium float precision:23~webgl fragment shader medium float precision rangeMin:127~webgl fragment shader medium float precision rangeMax:127~webgl fragment shader low float precision:23~webgl fragment shader low float precision rangeMin:127~webgl fragment shader low float precision rangeMax:127~webgl vertex shader high int precision:0~webgl vertex shader high int precision rangeMin:31~webgl vertex shader high int precision rangeMax:30~webgl vertex shader medium int precision:0~webgl vertex shader medium int precision rangeMin:31~webgl vertex shader medium int precision rangeMax:30~webgl vertex shader low int precision:0~webgl vertex shader low int precision rangeMin:31~webgl vertex shader low int precision rangeMax:30~webgl fragment shader high int precision:0~webgl fragment shader high int precision rangeMin:31~webgl fragment shader high int precision rangeMax:30~webgl fragment shader medium int precision:0~webgl fragment shader medium int precision rangeMin:31~webgl fragment shader medium int precision rangeMax:30~webgl fragment shader low int precision:0~webgl fragment shader low int precision rangeMin:31~webgl fragment shader low int precision rangeMax:30~~~Google Inc. (NVIDIA)~ANGLE (NVIDIA, NVIDIA TITAN Xp Direct3D11 vs_5_0 ps_5_0, D3D11)~~~false~~~false~~~false~~~false~~~false~~~0;false;false~~~Arial;Arial Black;Arial Narrow;Book Antiqua;Bookman Old Style;Calibri;Cambria;Cambria Math;Century;Century Gothic;Comic Sans MS;Consolas;Courier;Courier New;Georgia;Helvetica;Impact;Lucida Console;Lucida Sans Unicode;Microsoft Sans Serif;Monotype Corsiva;MS Gothic;MS PGothic;MS Reference Sans Serif;MS Sans Serif;MS Serif;Palatino Linotype;Segoe Print;Segoe Script;Segoe UI;Segoe UI Light;Segoe UI Semibold;Segoe UI Symbol;Tahoma;Times;Times New Roman;Trebuchet MS;Verdana;Wingdings;Wingdings 2;Wingdings 3~~~"+somegen
var murmur = x64hash128(values, 31);

Example of collecting info

1: {key: 'language', value: 'en-US'}
2: {key: 'color_depth', value: 24}
3: {key: 'device_memory', value: 4}
4: {key: 'hardware_concurrency', value: 21}
5: {key: 'resolution', value: Array(2)}
6: {key: 'available_resolution', value: Array(2)}
7: {key: 'timezone_offset', value: -180}
8: {key: 'timezone', value: 'Europe/Unknown'}
9: {key: 'session_storage', value: 1}
10: {key: 'local_storage', value: 1}
11: {key: 'indexed_db', value: 1}
12: {key: 'open_database', value: 1}
13: {key: 'cpu_class', value: 'unknown'}
14: {key: 'navigator_platform', value: 'Win32'}
15: {key: 'regular_plugins', value: Array(4)}
16: {key: 'canvas', value: 'canvas winding:yes~canvas fp:data:image/png;base64…AAAECBAgQIECAQMsF/g8gYZtepJiizgAAAABJRU5ErkJggg=='}
17: {key: 'webgl', value: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwA…bgl fragment shader low int precision rangeMax:30'}
18: {key: 'webgl_vendor', value: 'Google Inc. (NVIDIA)~ANGLE (NVIDIA, NVIDIA XXX )'}
19: {key: 'adblock', value: false}
20: {key: 'has_lied_languages', value: false}
21: {key: 'has_lied_resolution', value: false}
22: {key: 'has_lied_os', value: false}
23: {key: 'has_lied_browser', value: false}
24: {key: 'touch_support', value: Array(3)}
25: {key: 'js_fonts', value: Array(41)}
26: {key: 'audio_fp', value: 'XXX.XXX'}
get: function(done) {
			var that = this;
			var keys = {
				data: [],
				addPreprocessedComponent: function(pair) {
					var componentValue = pair.value;
					if (typeof that.options.preprocessor === "function") {
						componentValue = that.options.preprocessor(pair.key, componentValue)
					}
					keys.data.push({
						key: pair.key,
						value: componentValue
					})
				}
			};
			keys = this.userAgentKey(keys);
			keys = this.languageKey(keys);
			keys = this.colorDepthKey(keys);
			keys = this.deviceMemoryKey(keys);
			keys = this.pixelRatioKey(keys);
			keys = this.hardwareConcurrencyKey(keys);
			keys = this.screenResolutionKey(keys);
			keys = this.availableScreenResolutionKey(keys);
			keys = this.timezoneOffsetKey(keys);
			keys = this.timezoneKey(keys);
			keys = this.sessionStorageKey(keys);
			keys = this.localStorageKey(keys);
			keys = this.indexedDbKey(keys);
			keys = this.addBehaviorKey(keys);
			keys = this.openDatabaseKey(keys);
			keys = this.cpuClassKey(keys);
			keys = this.platformKey(keys);
			keys = this.doNotTrackKey(keys);
			keys = this.pluginsKey(keys);
			keys = this.canvasKey(keys);
			keys = this.webglKey(keys);
			keys = this.webglVendorAndRendererKey(keys);
			keys = this.adBlockKey(keys);
			keys = this.hasLiedLanguagesKey(keys);
			keys = this.hasLiedResolutionKey(keys);
			keys = this.hasLiedOsKey(keys);
			keys = this.hasLiedBrowserKey(keys);
			keys = this.touchSupportKey(keys);
			keys = this.customEntropyFunction(keys);
			this.fontsKey(keys, function(keysWithFont) {
				that.audioKey(keysWithFont, function(newKeys) {
					that.enumerateDevicesKey(newKeys, function(keysWithDevices) {
						var values = [];
						that.each(keysWithDevices.data, function(pair) {
							var value = pair.value;
							if (value && typeof value.join === "function") {
								values.push(value.join(";"))
							} else {
								values.push(value)
							}
						});
						var murmur = that.x64hash128(values.join("~~~"), 31);
						return done(murmur, keysWithDevices.data)
					})
				})
			})
		}
4 Likes

image
Maybe you can upload somewhere else please . Thanks

https://mega.nz/file/s0IxUA7Q#amuN_fLzxbDjxL31a0ER3xsHLOKdhOexn_4iJLK-alk

May I ask what is this for or how it functions?

@DJHooligan idk why but I’m getting a constant fingerprint no matter what i do
Screenshot_20220905_074943

I used Windows servers 2016/2019/2022, tried to change the useragent value in the constant block, followed all the steps and yet the same fingerprint in the screenshot shows up instead of the correct one ( which appears when i visit FingerprintJS Open Source Demo )

So any idea what’s causing this?

Ps: in the browser location block i only have Edge not Edge Dev, even tho keeping it or changing is giving same result

i got this same error also, fingerprint in not changing on every request

IS IT POSSIBLE TO APPLY THIS FINGERPRINT DATA TO A BROWSER IN PUPPETEER ? IF POSSIBLE KINDLY SHOW HOW

I dont think u use this for puppeteer search on forum u will find

Bro fingerprint is not changing on every request, can you please help?