jumpy-lion 0.0.32 → 0.0.34
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser-controller.d.ts +2 -2
- package/dist/browser-controller.d.ts.map +1 -1
- package/dist/browser-controller.js +59 -21
- package/dist/browser-controller.js.map +1 -1
- package/dist/browser-plugin.d.ts +22 -0
- package/dist/browser-plugin.d.ts.map +1 -1
- package/dist/browser-plugin.js +118 -27
- package/dist/browser-plugin.js.map +1 -1
- package/dist/browser-process/browser.d.ts +15 -0
- package/dist/browser-process/browser.d.ts.map +1 -1
- package/dist/browser-process/browser.js +38 -3
- package/dist/browser-process/browser.js.map +1 -1
- package/dist/browser-process/process.d.ts +9 -0
- package/dist/browser-process/process.d.ts.map +1 -1
- package/dist/browser-process/process.js +99 -5
- package/dist/browser-process/process.js.map +1 -1
- package/dist/crawler.d.ts +18 -2
- package/dist/crawler.d.ts.map +1 -1
- package/dist/crawler.js +4 -5
- package/dist/crawler.js.map +1 -1
- package/dist/fingerprinting/anti-webgpu/background.d.ts +2 -0
- package/dist/fingerprinting/anti-webgpu/background.d.ts.map +1 -0
- package/dist/fingerprinting/anti-webgpu/background.js +6 -0
- package/dist/fingerprinting/anti-webgpu/background.js.map +1 -0
- package/dist/fingerprinting/anti-webgpu/data/content_script/inject.d.ts +2 -0
- package/dist/fingerprinting/anti-webgpu/data/content_script/inject.d.ts.map +1 -0
- package/dist/fingerprinting/anti-webgpu/data/content_script/inject.js +50 -0
- package/dist/fingerprinting/anti-webgpu/data/content_script/inject.js.map +1 -0
- package/dist/fingerprinting/anti-webgpu/data/content_script/page_context/inject.d.ts +2 -0
- package/dist/fingerprinting/anti-webgpu/data/content_script/page_context/inject.d.ts.map +1 -0
- package/dist/fingerprinting/anti-webgpu/data/content_script/page_context/inject.js +179 -0
- package/dist/fingerprinting/anti-webgpu/data/content_script/page_context/inject.js.map +1 -0
- package/dist/fingerprinting/anti-webgpu/data/popup/popup.d.ts +2 -0
- package/dist/fingerprinting/anti-webgpu/data/popup/popup.d.ts.map +1 -0
- package/dist/fingerprinting/anti-webgpu/data/popup/popup.js +95 -0
- package/dist/fingerprinting/anti-webgpu/data/popup/popup.js.map +1 -0
- package/dist/fingerprinting/anti-webgpu/lib/chrome.d.ts +2 -0
- package/dist/fingerprinting/anti-webgpu/lib/chrome.d.ts.map +1 -0
- package/dist/fingerprinting/anti-webgpu/lib/chrome.js +255 -0
- package/dist/fingerprinting/anti-webgpu/lib/chrome.js.map +1 -0
- package/dist/fingerprinting/anti-webgpu/lib/common.d.ts +2 -0
- package/dist/fingerprinting/anti-webgpu/lib/common.d.ts.map +1 -0
- package/dist/fingerprinting/anti-webgpu/lib/common.js +87 -0
- package/dist/fingerprinting/anti-webgpu/lib/common.js.map +1 -0
- package/dist/fingerprinting/anti-webgpu/lib/config.d.ts +2 -0
- package/dist/fingerprinting/anti-webgpu/lib/config.d.ts.map +1 -0
- package/dist/fingerprinting/anti-webgpu/lib/config.js +13 -0
- package/dist/fingerprinting/anti-webgpu/lib/config.js.map +1 -0
- package/dist/fingerprinting/anti-webgpu/lib/runtime.d.ts +2 -0
- package/dist/fingerprinting/anti-webgpu/lib/runtime.d.ts.map +1 -0
- package/dist/fingerprinting/anti-webgpu/lib/runtime.js +109 -0
- package/dist/fingerprinting/anti-webgpu/lib/runtime.js.map +1 -0
- package/dist/fingerprinting/fingerprint-injector.d.ts +85 -1
- package/dist/fingerprinting/fingerprint-injector.d.ts.map +1 -1
- package/dist/fingerprinting/fingerprint-injector.js +188 -90
- package/dist/fingerprinting/fingerprint-injector.js.map +1 -1
- package/dist/fingerprinting/fingerprint-overrides/audio-spoofing.d.ts +6 -0
- package/dist/fingerprinting/fingerprint-overrides/audio-spoofing.d.ts.map +1 -0
- package/dist/fingerprinting/fingerprint-overrides/audio-spoofing.js +87 -0
- package/dist/fingerprinting/fingerprint-overrides/audio-spoofing.js.map +1 -0
- package/dist/fingerprinting/fingerprint-overrides/canvas-protection.d.ts +6 -0
- package/dist/fingerprinting/fingerprint-overrides/canvas-protection.d.ts.map +1 -0
- package/dist/fingerprinting/fingerprint-overrides/canvas-protection.js +95 -0
- package/dist/fingerprinting/fingerprint-overrides/canvas-protection.js.map +1 -0
- package/dist/fingerprinting/fingerprint-overrides/client-rect-spoofing.d.ts +6 -0
- package/dist/fingerprinting/fingerprint-overrides/client-rect-spoofing.d.ts.map +1 -0
- package/dist/fingerprinting/fingerprint-overrides/client-rect-spoofing.js +96 -0
- package/dist/fingerprinting/fingerprint-overrides/client-rect-spoofing.js.map +1 -0
- package/dist/fingerprinting/fingerprint-overrides/font-spoofing.d.ts +7 -0
- package/dist/fingerprinting/fingerprint-overrides/font-spoofing.d.ts.map +1 -0
- package/dist/fingerprinting/fingerprint-overrides/font-spoofing.js +219 -0
- package/dist/fingerprinting/fingerprint-overrides/font-spoofing.js.map +1 -0
- package/dist/fingerprinting/fingerprint-overrides/index.d.ts +19 -0
- package/dist/fingerprinting/fingerprint-overrides/index.d.ts.map +1 -0
- package/dist/fingerprinting/fingerprint-overrides/index.js +19 -0
- package/dist/fingerprinting/fingerprint-overrides/index.js.map +1 -0
- package/dist/fingerprinting/fingerprint-overrides/locale-spoofing.d.ts +6 -0
- package/dist/fingerprinting/fingerprint-overrides/locale-spoofing.d.ts.map +1 -0
- package/dist/fingerprinting/fingerprint-overrides/locale-spoofing.js +262 -0
- package/dist/fingerprinting/fingerprint-overrides/locale-spoofing.js.map +1 -0
- package/dist/fingerprinting/fingerprint-overrides/mouse-humanization.d.ts +7 -0
- package/dist/fingerprinting/fingerprint-overrides/mouse-humanization.d.ts.map +1 -0
- package/dist/fingerprinting/fingerprint-overrides/mouse-humanization.js +103 -0
- package/dist/fingerprinting/fingerprint-overrides/mouse-humanization.js.map +1 -0
- package/dist/fingerprinting/fingerprint-overrides/performance-spoofing.d.ts +6 -0
- package/dist/fingerprinting/fingerprint-overrides/performance-spoofing.d.ts.map +1 -0
- package/dist/fingerprinting/fingerprint-overrides/performance-spoofing.js +228 -0
- package/dist/fingerprinting/fingerprint-overrides/performance-spoofing.js.map +1 -0
- package/dist/fingerprinting/fingerprint-overrides/platform-consistency.d.ts +20 -0
- package/dist/fingerprinting/fingerprint-overrides/platform-consistency.d.ts.map +1 -0
- package/dist/fingerprinting/fingerprint-overrides/platform-consistency.js +227 -0
- package/dist/fingerprinting/fingerprint-overrides/platform-consistency.js.map +1 -0
- package/dist/fingerprinting/fingerprint-overrides/runtime-enable-bypass.d.ts +6 -0
- package/dist/fingerprinting/fingerprint-overrides/runtime-enable-bypass.d.ts.map +1 -0
- package/dist/fingerprinting/fingerprint-overrides/runtime-enable-bypass.js +84 -0
- package/dist/fingerprinting/fingerprint-overrides/runtime-enable-bypass.js.map +1 -0
- package/dist/fingerprinting/fingerprint-overrides/stealth-script.d.ts +6 -0
- package/dist/fingerprinting/fingerprint-overrides/stealth-script.d.ts.map +1 -0
- package/dist/fingerprinting/fingerprint-overrides/stealth-script.js +440 -0
- package/dist/fingerprinting/fingerprint-overrides/stealth-script.js.map +1 -0
- package/dist/fingerprinting/fingerprint-overrides/ua-ch.d.ts +6 -0
- package/dist/fingerprinting/fingerprint-overrides/ua-ch.d.ts.map +1 -0
- package/dist/fingerprinting/fingerprint-overrides/ua-ch.js +95 -0
- package/dist/fingerprinting/fingerprint-overrides/ua-ch.js.map +1 -0
- package/dist/fingerprinting/fingerprint-overrides/webgl-spoofing.d.ts +12 -0
- package/dist/fingerprinting/fingerprint-overrides/webgl-spoofing.d.ts.map +1 -0
- package/dist/fingerprinting/fingerprint-overrides/webgl-spoofing.js +167 -0
- package/dist/fingerprinting/fingerprint-overrides/webgl-spoofing.js.map +1 -0
- package/dist/fingerprinting/fingerprint-overrides/webgpu-spoofing.d.ts +6 -0
- package/dist/fingerprinting/fingerprint-overrides/webgpu-spoofing.d.ts.map +1 -0
- package/dist/fingerprinting/fingerprint-overrides/webgpu-spoofing.js +205 -0
- package/dist/fingerprinting/fingerprint-overrides/webgpu-spoofing.js.map +1 -0
- package/dist/fingerprinting/fingerprint-overrides/webrtc-spoofing.d.ts +6 -0
- package/dist/fingerprinting/fingerprint-overrides/webrtc-spoofing.d.ts.map +1 -0
- package/dist/fingerprinting/fingerprint-overrides/webrtc-spoofing.js +96 -0
- package/dist/fingerprinting/fingerprint-overrides/webrtc-spoofing.js.map +1 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/page.d.ts +1 -0
- package/dist/page.d.ts.map +1 -1
- package/dist/page.js +42 -1
- package/dist/page.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +5 -3
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Platform Consistency Script
|
|
3
|
+
* Ensures all browser properties match the specified platform (1:1 fingerprinting)
|
|
4
|
+
*/
|
|
5
|
+
export const createPlatformConsistencyScript = (platform, fingerprintData) => {
|
|
6
|
+
// Platform-specific configurations for 1:1 consistency
|
|
7
|
+
const platformConfigs = {
|
|
8
|
+
'Win32': {
|
|
9
|
+
devicePixelRatio: 1.0,
|
|
10
|
+
screenDepth: 24,
|
|
11
|
+
colorDepth: 24,
|
|
12
|
+
hardwareConcurrency: 8,
|
|
13
|
+
maxTouchPoints: 0,
|
|
14
|
+
platform: 'Win32',
|
|
15
|
+
oscpu: 'Windows NT 10.0; Win64; x64',
|
|
16
|
+
vendor: '',
|
|
17
|
+
vendorSub: '',
|
|
18
|
+
productSub: '20030107',
|
|
19
|
+
cookieEnabled: true,
|
|
20
|
+
onLine: true,
|
|
21
|
+
language: 'en-US',
|
|
22
|
+
languages: ['en-US', 'en'],
|
|
23
|
+
userAgent: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36',
|
|
24
|
+
appVersion: '5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36',
|
|
25
|
+
appName: 'Netscape',
|
|
26
|
+
appCodeName: 'Mozilla',
|
|
27
|
+
product: 'Gecko',
|
|
28
|
+
plugins: [
|
|
29
|
+
{ name: 'Chrome PDF Plugin', filename: 'internal-pdf-viewer', description: 'Portable Document Format' },
|
|
30
|
+
{ name: 'Chrome PDF Viewer', filename: 'mhjfbmdgcfjbbpaeojofohoefgiehjai', description: 'Portable Document Format' },
|
|
31
|
+
{ name: 'Native Client', filename: 'internal-nacl-plugin', description: 'Native Client Executable' },
|
|
32
|
+
{ name: 'Microsoft Edge PDF Plugin', filename: 'edge-pdf-viewer', description: 'Microsoft Edge PDF Viewer' },
|
|
33
|
+
{ name: 'Widevine Content Decryption Module', filename: 'widevinecdmadapter', description: 'Enables Widevine licenses for playback of HTML audio/video content' },
|
|
34
|
+
],
|
|
35
|
+
mimeTypes: [
|
|
36
|
+
{ type: 'application/pdf', suffixes: 'pdf', description: 'Portable Document Format' },
|
|
37
|
+
{ type: 'application/x-nacl', suffixes: '', description: 'Native Client Executable' },
|
|
38
|
+
{ type: 'application/x-pnacl', suffixes: '', description: 'Portable Native Client Executable' },
|
|
39
|
+
{ type: 'application/x-ppapi-widevine-cdm', suffixes: '', description: 'Widevine Content Decryption Module' },
|
|
40
|
+
],
|
|
41
|
+
// Windows-specific connection properties
|
|
42
|
+
connection: {
|
|
43
|
+
downlink: 10,
|
|
44
|
+
effectiveType: '4g',
|
|
45
|
+
onchange: null,
|
|
46
|
+
rtt: 50,
|
|
47
|
+
saveData: false,
|
|
48
|
+
type: 'ethernet',
|
|
49
|
+
},
|
|
50
|
+
},
|
|
51
|
+
'MacIntel': {
|
|
52
|
+
devicePixelRatio: 2.0,
|
|
53
|
+
screenDepth: 30,
|
|
54
|
+
colorDepth: 30,
|
|
55
|
+
hardwareConcurrency: 8,
|
|
56
|
+
maxTouchPoints: 0,
|
|
57
|
+
platform: 'MacIntel',
|
|
58
|
+
oscpu: undefined,
|
|
59
|
+
vendor: 'Google Inc.',
|
|
60
|
+
vendorSub: '',
|
|
61
|
+
productSub: '20030107',
|
|
62
|
+
cookieEnabled: true,
|
|
63
|
+
onLine: true,
|
|
64
|
+
language: 'en-US',
|
|
65
|
+
languages: ['en-US', 'en'],
|
|
66
|
+
plugins: [
|
|
67
|
+
{ name: 'Chrome PDF Plugin', filename: 'internal-pdf-viewer' },
|
|
68
|
+
{ name: 'Chrome PDF Viewer', filename: 'mhjfbmdgcfjbbpaeojofohoefgiehjai' },
|
|
69
|
+
],
|
|
70
|
+
},
|
|
71
|
+
'Linux x86_64': {
|
|
72
|
+
devicePixelRatio: 1.0,
|
|
73
|
+
screenDepth: 24,
|
|
74
|
+
colorDepth: 24,
|
|
75
|
+
hardwareConcurrency: 8,
|
|
76
|
+
maxTouchPoints: 0,
|
|
77
|
+
platform: 'Linux x86_64',
|
|
78
|
+
oscpu: 'Linux x86_64',
|
|
79
|
+
vendor: 'Google Inc.',
|
|
80
|
+
vendorSub: '',
|
|
81
|
+
productSub: '20030107',
|
|
82
|
+
cookieEnabled: true,
|
|
83
|
+
onLine: true,
|
|
84
|
+
language: 'en-US',
|
|
85
|
+
languages: ['en-US', 'en'],
|
|
86
|
+
plugins: [
|
|
87
|
+
{ name: 'Chrome PDF Plugin', filename: 'internal-pdf-viewer' },
|
|
88
|
+
],
|
|
89
|
+
},
|
|
90
|
+
};
|
|
91
|
+
const defaultConfig = platformConfigs[platform] || platformConfigs['Linux x86_64'];
|
|
92
|
+
// Merge fingerprint data with defaults if provided
|
|
93
|
+
const config = fingerprintData ? {
|
|
94
|
+
...defaultConfig,
|
|
95
|
+
...fingerprintData,
|
|
96
|
+
// Ensure platform consistency
|
|
97
|
+
platform: fingerprintData.platform || platform,
|
|
98
|
+
} : defaultConfig;
|
|
99
|
+
return `
|
|
100
|
+
(() => {
|
|
101
|
+
'use strict';
|
|
102
|
+
|
|
103
|
+
// Platform Consistency for ${platform}
|
|
104
|
+
const config = ${JSON.stringify(config)};
|
|
105
|
+
|
|
106
|
+
// Override navigator properties for platform consistency
|
|
107
|
+
Object.defineProperty(navigator, 'platform', { get: () => config.platform, configurable: false });
|
|
108
|
+
Object.defineProperty(navigator, 'vendor', { get: () => config.vendor, configurable: false });
|
|
109
|
+
Object.defineProperty(navigator, 'vendorSub', { get: () => config.vendorSub, configurable: false });
|
|
110
|
+
Object.defineProperty(navigator, 'productSub', { get: () => config.productSub, configurable: false });
|
|
111
|
+
Object.defineProperty(navigator, 'hardwareConcurrency', { get: () => config.hardwareConcurrency, configurable: false });
|
|
112
|
+
Object.defineProperty(navigator, 'maxTouchPoints', { get: () => config.maxTouchPoints, configurable: false });
|
|
113
|
+
Object.defineProperty(navigator, 'cookieEnabled', { get: () => config.cookieEnabled, configurable: false });
|
|
114
|
+
Object.defineProperty(navigator, 'onLine', { get: () => config.onLine, configurable: false });
|
|
115
|
+
Object.defineProperty(navigator, 'language', { get: () => config.language, configurable: false });
|
|
116
|
+
Object.defineProperty(navigator, 'languages', { get: () => config.languages, configurable: false });
|
|
117
|
+
|
|
118
|
+
// Additional navigator properties for Windows consistency
|
|
119
|
+
if (config.userAgent) {
|
|
120
|
+
Object.defineProperty(navigator, 'userAgent', { get: () => config.userAgent, configurable: false });
|
|
121
|
+
}
|
|
122
|
+
if (config.appVersion) {
|
|
123
|
+
Object.defineProperty(navigator, 'appVersion', { get: () => config.appVersion, configurable: false });
|
|
124
|
+
}
|
|
125
|
+
if (config.appName) {
|
|
126
|
+
Object.defineProperty(navigator, 'appName', { get: () => config.appName, configurable: false });
|
|
127
|
+
}
|
|
128
|
+
if (config.appCodeName) {
|
|
129
|
+
Object.defineProperty(navigator, 'appCodeName', { get: () => config.appCodeName, configurable: false });
|
|
130
|
+
}
|
|
131
|
+
if (config.product) {
|
|
132
|
+
Object.defineProperty(navigator, 'product', { get: () => config.product, configurable: false });
|
|
133
|
+
}
|
|
134
|
+
if (config.oscpu !== undefined) {
|
|
135
|
+
Object.defineProperty(navigator, 'oscpu', { get: () => config.oscpu, configurable: false });
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
// Override navigator.plugins for Windows consistency
|
|
139
|
+
if (config.plugins) {
|
|
140
|
+
Object.defineProperty(navigator, 'plugins', {
|
|
141
|
+
get: () => {
|
|
142
|
+
const arr = Object.create(PluginArray.prototype);
|
|
143
|
+
config.plugins.forEach((p, i) => {
|
|
144
|
+
const plugin = Object.create(Plugin.prototype);
|
|
145
|
+
plugin.name = p.name;
|
|
146
|
+
plugin.filename = p.filename;
|
|
147
|
+
plugin.description = p.description;
|
|
148
|
+
plugin.length = 1;
|
|
149
|
+
plugin[0] = config.mimeTypes?.[i] || { type: 'application/pdf', suffixes: 'pdf', description: 'Portable Document Format' };
|
|
150
|
+
arr[i] = plugin;
|
|
151
|
+
arr[p.name] = plugin;
|
|
152
|
+
});
|
|
153
|
+
arr.length = config.plugins.length;
|
|
154
|
+
arr.item = (index) => arr[index] || null;
|
|
155
|
+
arr.namedItem = (name) => arr[name] || null;
|
|
156
|
+
arr.refresh = () => {};
|
|
157
|
+
return arr;
|
|
158
|
+
},
|
|
159
|
+
configurable: false,
|
|
160
|
+
enumerable: true
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
// Override navigator.mimeTypes for Windows consistency
|
|
165
|
+
if (config.mimeTypes) {
|
|
166
|
+
Object.defineProperty(navigator, 'mimeTypes', {
|
|
167
|
+
get: () => {
|
|
168
|
+
const arr = Object.create(MimeTypeArray.prototype);
|
|
169
|
+
config.mimeTypes.forEach((m, i) => {
|
|
170
|
+
const mimeType = Object.create(MimeType.prototype);
|
|
171
|
+
mimeType.type = m.type;
|
|
172
|
+
mimeType.suffixes = m.suffixes;
|
|
173
|
+
mimeType.description = m.description;
|
|
174
|
+
mimeType.enabledPlugin = config.plugins?.[0] || null;
|
|
175
|
+
arr[i] = mimeType;
|
|
176
|
+
arr[m.type] = mimeType;
|
|
177
|
+
});
|
|
178
|
+
arr.length = config.mimeTypes.length;
|
|
179
|
+
arr.item = (index) => arr[index] || null;
|
|
180
|
+
arr.namedItem = (name) => arr[name] || null;
|
|
181
|
+
return arr;
|
|
182
|
+
},
|
|
183
|
+
configurable: false,
|
|
184
|
+
enumerable: true
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
// Override navigator.connection for Windows consistency
|
|
189
|
+
if (config.connection && navigator.connection) {
|
|
190
|
+
Object.keys(config.connection).forEach(key => {
|
|
191
|
+
Object.defineProperty(navigator.connection, key, {
|
|
192
|
+
value: config.connection[key],
|
|
193
|
+
writable: false,
|
|
194
|
+
configurable: true
|
|
195
|
+
});
|
|
196
|
+
});
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
// Override screen properties
|
|
200
|
+
Object.defineProperty(window, 'devicePixelRatio', { get: () => config.devicePixelRatio, configurable: false });
|
|
201
|
+
Object.defineProperty(screen, 'colorDepth', { get: () => config.colorDepth, configurable: false });
|
|
202
|
+
Object.defineProperty(screen, 'pixelDepth', { get: () => config.screenDepth || config.colorDepth, configurable: false });
|
|
203
|
+
|
|
204
|
+
// Ensure WebGL returns platform-appropriate values
|
|
205
|
+
const getParameterProto = WebGLRenderingContext.prototype.getParameter;
|
|
206
|
+
WebGLRenderingContext.prototype.getParameter = function(param) {
|
|
207
|
+
if (param === 0x9245 || param === 0x9246) { // UNMASKED_VENDOR_WEBGL / UNMASKED_RENDERER_WEBGL
|
|
208
|
+
// Return platform-appropriate GPU with corrected ANGLE token count
|
|
209
|
+
if (config.platform === 'Win32') {
|
|
210
|
+
return param === 0x9245
|
|
211
|
+
? 'NVIDIA Corporation'
|
|
212
|
+
: 'ANGLE (NVIDIA, NVIDIA GeForce GTX 1660 Ti Direct3D 11.0)'; // Fixed: fewer tokens
|
|
213
|
+
} else if (config.platform === 'MacIntel') {
|
|
214
|
+
return param === 0x9245 ? 'Apple Inc.' : 'ANGLE (Apple, Apple M1 Pro, OpenGL 4.1)';
|
|
215
|
+
} else {
|
|
216
|
+
return param === 0x9245 ? 'Intel' : 'ANGLE (Intel, Mesa Intel(R) UHD Graphics 630, OpenGL 4.6)';
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
return getParameterProto.apply(this, arguments);
|
|
220
|
+
};
|
|
221
|
+
|
|
222
|
+
if (typeof WebGL2RenderingContext !== 'undefined') {
|
|
223
|
+
WebGL2RenderingContext.prototype.getParameter = WebGLRenderingContext.prototype.getParameter;
|
|
224
|
+
}
|
|
225
|
+
})();`;
|
|
226
|
+
};
|
|
227
|
+
//# sourceMappingURL=platform-consistency.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platform-consistency.js","sourceRoot":"","sources":["../../../src/fingerprinting/fingerprint-overrides/platform-consistency.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime-enable-bypass.d.ts","sourceRoot":"","sources":["../../../src/fingerprinting/fingerprint-overrides/runtime-enable-bypass.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,eAAO,MAAM,wBAAwB,WAAkB,GAAG,KAAG,OAAO,CAAC,IAAI,CA8ExE,CAAC"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Runtime.enable Bypass
|
|
3
|
+
* Prevents CDP detection through console.log(Error) technique
|
|
4
|
+
*/
|
|
5
|
+
export const setupRuntimeEnableBypass = async (client) => {
|
|
6
|
+
// Intercept Runtime.enable calls to prevent detection
|
|
7
|
+
await client.send('Runtime.evaluate', {
|
|
8
|
+
expression: `
|
|
9
|
+
(() => {
|
|
10
|
+
// Store the original CDP send method if accessible
|
|
11
|
+
if (window.__CDP_CLIENT__) {
|
|
12
|
+
const originalSend = window.__CDP_CLIENT__.send;
|
|
13
|
+
window.__CDP_CLIENT__.send = function(method, params) {
|
|
14
|
+
// Block or modify Runtime.enable calls
|
|
15
|
+
if (method === 'Runtime.enable') {
|
|
16
|
+
console.log('Runtime.enable blocked');
|
|
17
|
+
return Promise.resolve({});
|
|
18
|
+
}
|
|
19
|
+
return originalSend.apply(this, arguments);
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
// Additional protection against CDP detection
|
|
24
|
+
const originalError = Error;
|
|
25
|
+
let errorCounter = 0;
|
|
26
|
+
|
|
27
|
+
window.Error = new Proxy(originalError, {
|
|
28
|
+
construct(target, args) {
|
|
29
|
+
const error = Reflect.construct(target, args);
|
|
30
|
+
|
|
31
|
+
// Detect CDP serialization attempts
|
|
32
|
+
const stack = new originalError().stack;
|
|
33
|
+
if (stack && stack.includes('__puppeteer_evaluation_script__')) {
|
|
34
|
+
// This is likely a CDP evaluation, modify behavior
|
|
35
|
+
Object.defineProperty(error, 'stack', {
|
|
36
|
+
get() {
|
|
37
|
+
return 'Error\\n at <anonymous>:1:1';
|
|
38
|
+
},
|
|
39
|
+
configurable: false
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
return error;
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
// Protect against console-based CDP detection
|
|
48
|
+
const protectedConsole = new Proxy(console, {
|
|
49
|
+
get(target, prop) {
|
|
50
|
+
const original = target[prop];
|
|
51
|
+
if (typeof original === 'function') {
|
|
52
|
+
return new Proxy(original, {
|
|
53
|
+
apply(fn, thisArg, args) {
|
|
54
|
+
// Filter out Error objects that might be used for CDP detection
|
|
55
|
+
const filteredArgs = args.map(arg => {
|
|
56
|
+
if (arg instanceof Error && arg.stack) {
|
|
57
|
+
// Check if this might be a CDP detection attempt
|
|
58
|
+
const stackString = arg.stack.toString();
|
|
59
|
+
if (stackString.includes('Error.captureStackTrace') ||
|
|
60
|
+
stackString.includes('__puppeteer_evaluation_script__')) {
|
|
61
|
+
return arg.toString();
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
return arg;
|
|
65
|
+
});
|
|
66
|
+
return Reflect.apply(fn, thisArg, filteredArgs);
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
return original;
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
try {
|
|
75
|
+
Object.defineProperty(window, 'console', {
|
|
76
|
+
value: protectedConsole,
|
|
77
|
+
writable: false,
|
|
78
|
+
configurable: false
|
|
79
|
+
});
|
|
80
|
+
} catch (e) {}
|
|
81
|
+
})();`,
|
|
82
|
+
});
|
|
83
|
+
};
|
|
84
|
+
//# sourceMappingURL=runtime-enable-bypass.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime-enable-bypass.js","sourceRoot":"","sources":["../../../src/fingerprinting/fingerprint-overrides/runtime-enable-bypass.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,EAAE,MAAW,EAAiB,EAAE;IACzE,sDAAsD;IACtD,MAAM,MAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE;QAClC,UAAU,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAyEd;KACD,CAAC,CAAC;AACP,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stealth-script.d.ts","sourceRoot":"","sources":["../../../src/fingerprinting/fingerprint-overrides/stealth-script.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,eAAO,MAAM,mBAAmB,QAAO,MAkbtC,CAAC"}
|