Skip to content

Instantly share code, notes, and snippets.

@Fweak
Created July 1, 2023 03:55
Show Gist options
  • Save Fweak/b59ca038289d95e371f6fc440ca2406b to your computer and use it in GitHub Desktop.
Save Fweak/b59ca038289d95e371f6fc440ca2406b to your computer and use it in GitHub Desktop.
Kick Fingeprinting system... (is it fpjs)?? You dont even need to provide fingerprint just pass empty string and it works...
const renderer = (() => {
const canvas = document.createElement('canvas');
const context =
canvas.getContext('webgl') ||
canvas.getContext('experimental-webgl');
if (!context) return null;
const renderer = context.getExtension('WEBGL_debug_renderer_info');
if (!renderer) return null;
return {
vendor: context.getParameter(renderer.UNMASKED_VENDOR_WEBGL),
renderer: context.getParameter(
renderer.UNMASKED_RENDERER_WEBGL
),
};
})();
const battery = (async () => {
let battery;
if ('getBattery' in navigator) battery = await navigator.getBattery();
else return null;
return {
level: battery.level,
charging: battery.charging,
chargingTime: battery.chargingTime,
dischargingTime: battery.dischargingTime,
};
})();
const navConnection = (() => {
const conn =
navigator.connection ||
navigator.mozConnection ||
navigator.webkitConnection;
return {
type: conn ? conn.type : null,
effectiveType: conn ? conn.effectiveType : null,
downlink: conn ? conn.downlink : null,
rtt: conn ? conn.rtt : null,
};
})();
const canSetLocalCookie = () => {
try {
return (
localStorage.setItem('test', 'test'),
localStorage.removeItem('test'),
!0
);
} catch {
return !1;
}
};
const canSetSessionCookie = () => {
try {
return (
sessionStorage.setItem('test', 'test'),
sessionStorage.removeItem('test'),
!0
);
} catch {
return !1;
}
};
const isInExtensionEnv = () => {
const userAgentLow = window.navigator.userAgent.toLowerCase();
switch (true) {
case userAgentLow.includes('chrome'):
return (
window.chrome !== void 0 &&
window.chrome.webstore !== void 0
);
case userAgentLow.includes('firefox'):
return window.InstallTrigger !== void 0;
case userAgentLow.includes('safari'):
return window.ApplePaySession !== void 0;
}
};
const canvasData = () => {
const canvas = document.createElement('canvas');
const context = canvas.getContext('2d');
context && context.fillText('!kickCE0105', 0, 0); // same one even old version of kick
return canvas.toDataURL();
};
/**
* const n = Date.now()
, i = this.mouseMovements[this.mouseMovements.length - 1];
let r = 0;
if (i) {
const s = n - i.s
, l = Math.sqrt((e.clientX - i.x) ** 2 + (e.clientY - i.y) ** 2);
r = s > 0 ? l / s : 0;
const c = 10
, d = 100;
if (l < c || s < d)
return
}
const a = {
x: e.clientX,
y: e.clientY,
s: n,
t: r
};
this.mouseMovements.push(a),
this.mouseMovements.length > 10 && (this.mouseMovements = this.mouseMovements.slice(-10))
*/
const mouseMovements = [
{
x: 1026,
y: 1016,
s: 1688181395625,
t: 2.358474082961269,
},
{
x: 1006,
y: 1057,
s: 1688181395759,
t: 0.3404326784464789,
},
{
x: 1016,
y: 1052,
s: 1688181395929,
t: 0.06576670522058205,
},
{
x: 1024,
y: 1040,
s: 1688181396044,
t: 0.12541047914657352,
},
{
x: 765,
y: 829,
s: 1688183440813,
t: 0.00016337730823290576,
},
{
x: 942,
y: 844,
s: 1688183440913,
t: 1.7763445611704956,
},
{
x: 1096,
y: 878,
s: 1688183441016,
t: 1.5311513789294229,
},
{
x: 1017,
y: 972,
s: 1688183441116,
t: 1.2278843593759146,
},
{
x: 1010,
y: 1062,
s: 1688183441233,
t: 0.771553946740855,
},
{
x: 1013,
y: 1044,
s: 1688183441398,
t: 0.11059568236905853,
},
];
const payload = [
canvasData(),
navigator.userAgent,
navigator.language,
navigator.platform,
new Date().getTimezoneOffset(),
`${window.screen.width}x ${window.screen.height}`,
[].map((ie) => `${ie.x}.${ie.y}.${ie.t}.${ie.s}`).join('|'), // MouseMovements
!!window.navigator.webdriver,
Object.getOwnPropertyDescriptor(window.navigator, 'languages') !==
void 0,
Object.getOwnPropertyDescriptor(window.navigator, 'plugins') !== void 0,
[
'indexedDB' in window,
'openDatabase' in window,
'navigator.hardwareConcurrency',
'navigator.getGamepads',
'window.WebGLRenderingContext',
].filter((ie) => !ie).length,
isInExtensionEnv(),
renderer.vendor,
renderer.renderer,
window.screen.width,
window.screen.height,
window.outerWidth,
window.outerHeight,
window.innerWidth,
window.innerHeight,
battery.level,
battery.charging,
battery.chargingTime,
battery.dischargingTime,
navConn.type,
navConn.effectiveType,
navConn.downlink,
navConn.rtt,
canSetLocalCookie(),
canSetSessionCookie(),
navigator.cookieEnabled,
];
const payloadEncoded = new TextEncoder().encode(payload);
const payloadToBase64 = btoa(
String.fromCharCode.apply(null, new Uint8Array(payloadEncoded))
);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment