A professional tactical suite featuring undetectable aimbot, thermal ESP, automated spoofing, and account verification bypass.
// ==UserScript==
// @name Kour Zenith Hack
// @version 1.0.1
// @author AwesomeOddEven-NightKeys-LunarBlink
// @description A professional tactical suite featuring undetectable aimbot, thermal ESP, automated spoofing, and account verification bypass.
// @match *://kour.io/*
// @icon https://www.google.com/s2/favicons?sz=64&domain=kour.io
// @run-at document-start
// @grant unsafeWindow
// @license MIT
// @namespace https://greasyfork.org/users/1594049
// ==/UserScript==
(function() {
'use strict';
// --- STEALTH UTILITIES ---
const cloak = (fn, original) => {
try {
Object.setPrototypeOf(fn, original);
fn.toString = () => original.toString();
} catch (e) {}
return fn;
};
// ============================================================
// MODULE 1: COMBAT & VISUALS (ZENITH)
// ============================================================
(function() {
if (typeof window === 'undefined')
return;
let a = {
'aimbotEnabled': !![],
'aimbotTriggerMode': 'mouse',
'aimbotSpeed': 1,
'colorTolerance': 0x3c,
'espEnabled': !![],
'espColor': {
'r': 0x0,
'g': 0x0,
'b': 0xff
},
'menuTheme': 'default'
}, c = {
'toggleMenu': 'shiftright',
'aimbotToggleKey': 'none',
'espToggleKey': 'none',
'aimbotKey': 'f'
};
const d = localStorage['getItem']('ZenithTacticalKeybinds');
if (d)
try {
Object['assign'](c, JSON['parse'](d));
} catch (z) {
}
const f = () => localStorage['setItem']('ZenithTacticalKeybinds', JSON['stringify'](c));
// Private State
let zenithEspEnabled = a['espEnabled'];
let zenithEspColor = a['espColor'];
let zenithEspDepthHackState = !![];
let h = {
'left': ![],
'right': ![]
}, i = {};
const j = (A, B) => {
if (!A['isTrusted'])
return;
if (A['button'] === 0x0)
h['left'] = B;
if (A['button'] === 0x2)
h['right'] = B;
};
document['addEventListener']('mousedown', A => j(A, !![]), !![]), document['addEventListener']('mouseup', A => j(A, ![]), !![]), document['addEventListener']('keydown', A => {
if (A['target']['tagName'] === 'INPUT' || A['target']['tagName'] === 'TEXTAREA')
return;
i[A['key']['toLowerCase']()] = !![], i[A['code']['toLowerCase']()] = !![];
}, !![]), document['addEventListener']('keyup', A => {
i[A['key']['toLowerCase']()] = ![], i[A['code']['toLowerCase']()] = ![];
}, !![]);
let k = null;
const l = [
{
'min': 0x5c9,
'max': 0x5cb
},
{
'min': 0x611,
'max': 0x613
},
{
'min': 0x15ef,
'max': 0x15f1
},
{
'min': 0xf23,
'max': 0xf25
}
], m = WebGL2RenderingContext['prototype'];
const originalGetContext = HTMLCanvasElement['prototype']['getContext'];
HTMLCanvasElement['prototype']['getContext'] = cloak(new Proxy(originalGetContext, {
'apply'(A, B, C) {
return (C[0x0] === 'webgl' || C[0x0] === 'webgl2') && (C[0x1] = C[0x1] || {}, C[0x1]['preserveDrawingBuffer'] = !![]), Reflect['apply'](...arguments);
}
}), originalGetContext);
let n = null;
const o = HTMLCanvasElement['prototype']['requestPointerLock'];
HTMLCanvasElement['prototype']['requestPointerLock'] = cloak(function () {
return n = this, o['apply'](this, arguments);
}, o);
function p() {
return document['pointerLockElement'] || n || k && k['canvas'] || document;
}
const q = {
'apply'(A, B, C) {
const D = C[0x1], E = B['getParameter'](B['CURRENT_PROGRAM']);
if (E) {
if (!E['uniforms']) {
const F = G => B['getUniformLocation'](E, G);
E['uniforms'] = {
'vertexCount': F('vertexCount'),
'espToggle': F('espToggle'),
'gnilgnim': F('gnilgnim'),
'espColor': F('espColor'),
'espDepthHack': F('espDepthHack')
};
}
if (E['uniforms']['espToggle']) {
k = B;
const G = (H, I) => H && B['uniform1f'](H, I);
G(E['uniforms']['vertexCount'], D), G(E['uniforms']['espToggle'], zenithEspEnabled ? 0x1 : 0x0), G(E['uniforms']['espDepthHack'], zenithEspDepthHackState ? 0x1 : 0x0), G(E['uniforms']['gnilgnim'], 0xcc07c9);
if (E['uniforms']['espColor'] && zenithEspColor) {
const {
r: H,
g: I,
b: J
} = zenithEspColor;
B['uniform3f'](E['uniforms']['espColor'], H / 0xff, I / 0xff, J / 0xff);
}
}
}
return Reflect['apply'](...arguments);
}
};
m['drawElements'] = cloak(new Proxy(m['drawElements'], q), m['drawElements']), m['drawElementsInstanced'] = cloak(new Proxy(m['drawElementsInstanced'], q), m['drawElementsInstanced']);
function s(A) {
return l['map'](({
min: B,
max: C
}) => '(' + A + '\x20>=\x20' + B + '.0\x20&&\x20' + A + '\x20<=\x20' + C + '.0)')['join']('\x20||\x20');
}
const originalShaderSource = m['shaderSource'];
m['shaderSource'] = cloak(new Proxy(originalShaderSource, {
'apply'(A, B, C) {
let [D, E] = C;
if (E['includes']('gl_Position')) {
const F = s('vertexCount');
E = E['replace'](/void\s+main\s*\(\s*\)\s*\{/, 'uniform\x20float\x20vertexCount,\x20espToggle,\x20gnilgnim,\x20espDepthHack;\x0auniform\x20vec3\x20espColor;\x0aout\x20float\x20vVertexCount;\x0avoid\x20main()\x20{\x0avVertexCount\x20=\x20vertexCount;\x0a')['replace'](/(gl_Position\s*=.+;)/, '$1\x0aif\x20(espToggle\x20>\x200.5\x20&&\x20espDepthHack\x20>\x200.5\x20&&\x20(' + F + '))\x20gl_Position.z\x20=\x200.01\x20+\x20gl_Position.z\x20*\x200.1;\x0aif\x20(espToggle\x20>\x200.5\x20&&\x20gnilgnim\x20==\x2013371337.0)\x20gl_Position.z\x20*=\x201.0;');
}
if (E['includes']('SV_Target0')) {
const G = s('vVertexCount');
E = E['replace'](/void\s+main\s*\(\s*\)\s*\{/, 'uniform\x20float\x20espToggle,\x20gnilgnim,\x20espDepthHack;\x0auniform\x20vec3\x20espColor;\x0ain\x20float\x20vVertexCount;\x0avoid\x20main()\x20{')['replace'](/return;/, 'if\x20(espToggle\x20>\x200.5\x20&&\x20(' + G + ')\x20&&\x20SV_Target0.a\x20>\x200.5)\x20SV_Target0\x20=\x20vec4(espColor,\x201.0);\x0aif\x20(gnilgnim\x20==\x2013371337.0)\x20SV_Target0.rgb\x20*=\x201.0;\x0areturn;');
}
return C[0x1] = E, Reflect['apply'](...arguments);
}
}), originalShaderSource);
function t() {
if (a['aimbotTriggerMode'] === 'always')
return document['pointerLockElement'] !== null;
else {
if (a['aimbotTriggerMode'] === 'key') {
const A = c['aimbotKey']['toLowerCase']();
return A !== 'none' && i[A];
} else
return h['left'] || h['right'];
}
}
function u(A, B, C, D, E, F) {
if (D === 0x0)
return ![];
const G = A - F['r'], H = B - F['g'], I = C - F['b'];
return G * G + H * H + I * I <= E * E;
}
function v() {
if (!a['aimbotEnabled'] || !k?.['canvas'] || !t() || !document['pointerLockElement'])
return null;
const {
width: A,
height: B
} = k['canvas'], C = 0x64, D = 0x64, E = A / 0x2, F = B / 0x2, G = Math['floor'](E - C / 0x2), H = Math['floor'](F - D / 0x2), I = new Uint8Array(C * D * 0x4);
let J = null;
try {
J = k['getParameter'](k['FRAMEBUFFER_BINDING']), k['bindFramebuffer'](k['FRAMEBUFFER'], null), k['readPixels'](G, H, C, D, k['RGBA'], k['UNSIGNED_BYTE'], I);
} catch (P) {
return null;
} finally {
try {
k['bindFramebuffer'](k['FRAMEBUFFER'], J);
} catch (Q) {
}
}
let K = Infinity, L = 0x0, M = 0x0;
const N = a['colorTolerance'] || 0x3c, O = zenithEspColor;
for (let R = 0x0; R < I['length']; R += 0x10) {
const S = I[R], T = I[R + 0x1], U = I[R + 0x2], V = I[R + 0x3];
if (u(S, T, U, V, N, O)) {
const W = R / 0x4, X = W % C, Y = Math['floor'](W / C), Z = G + X - E, a0 = -(H + Y - F), a1 = Math['hypot'](Z, a0);
a1 < K && (K = a1, L = Z, M = a0);
}
}
if (K < Infinity)
return {
'bestDX': L,
'bestDY': M
};
return null;
}
function w(A) {
if (!A)
return;
let B = parseFloat(a['aimbotSpeed']) * 0.15;
if (isNaN(B))
B = 0.15;
if (B > 0x3 * 0.15)
B = 0x3 * 0.15;
const C = p();
C['dispatchEvent'](new MouseEvent('mousemove', {
'movementX': Math['round'](A['bestDX'] * B),
'movementY': Math['round'](A['bestDY'] * B),
'bubbles': !![],
'cancelable': !![],
'composed': !![]
}));
}
function x() {
try {
k && (k['isContextLost']() || !k['canvas']?.['isConnected']) && (k = null), a['aimbotEnabled'] && w(v());
} catch (A) {
}
requestAnimationFrame(x);
}
requestAnimationFrame(x);
function y() {
const style = document.createElement('style');
style.textContent = `
:root {
--z-bg: #0d0d0f;
--z-card: #15151a;
--z-acc: #ff2a2a;
--z-acc-glow: rgba(255, 42, 42, 0.4);
--z-txt: #e2e8f0;
--z-txt-mute: #64748b;
--z-brd: rgba(255, 255, 255, 0.08);
}
#zenith-panel {
position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%);
width: 320px; background: var(--z-bg); color: var(--z-txt);
font-family: 'JetBrains Mono', 'Consolas', monospace; border: 1px solid var(--z-acc);
box-shadow: 0 0 30px rgba(0,0,0,0.9), inset 0 0 10px rgba(255, 42, 42, 0.05);
z-index: 10000; display: none; user-select: none; border-radius: 2px;
}
.z-head {
padding: 14px; background: #000; border-bottom: 1px solid var(--z-acc);
display: flex; justify-content: space-between; align-items: center; cursor: move;
}
.z-brand { font-size: 13px; font-weight: 900; letter-spacing: 3px; color: var(--z-acc); text-shadow: 0 0 8px var(--z-acc-glow); }
.z-ver { font-size: 9px; color: var(--z-txt-mute); }
.z-main { padding: 18px; display: flex; flex-direction: column; gap: 16px; }
.z-group { display: flex; flex-direction: column; gap: 10px; }
.z-group-title { font-size: 10px; color: var(--z-acc); text-transform: uppercase; border-left: 2px solid var(--z-acc); padding-left: 8px; margin-bottom: 4px; }
.z-item { display: flex; justify-content: space-between; align-items: center; }
.z-text { font-size: 11px; }
.z-tog { position: relative; width: 30px; height: 16px; cursor: pointer; }
.z-tog input { opacity: 0; width: 0; height: 0; }
.z-box { position: absolute; inset: 0; background: #1e1e24; border: 1px solid var(--z-brd); transition: .2s; }
.z-box:after { position: absolute; content: ""; height: 10px; width: 10px; left: 2px; bottom: 2px; background: #444; transition: .2s; }
input:checked + .z-box { border-color: var(--z-acc); box-shadow: 0 0 5px var(--z-acc-glow); }
input:checked + .z-box:after { transform: translateX(14px); background: var(--z-acc); }
.z-range { -webkit-appearance: none; width: 80px; height: 2px; background: #333; }
.z-range::-webkit-slider-thumb { -webkit-appearance: none; width: 10px; height: 10px; background: var(--z-acc); cursor: pointer; }
.z-select { background: #000; color: #fff; border: 1px solid var(--z-brd); font-size: 10px; padding: 2px; outline: none; }
.z-val { font-size: 10px; color: var(--z-acc); min-width: 20px; text-align: right; }
.z-bind { font-size: 9px; color: var(--z-acc); background: #1a1a1e; padding: 2px 6px; border: 1px solid var(--z-brd); cursor: pointer; }
.z-input { background: #000; color: var(--z-acc); border: 1px solid var(--z-acc); font-size: 10px; width: 20px; text-align: center; outline: none; text-transform: uppercase; }
.z-btn { background: #000; color: var(--z-acc); border: 1px solid var(--z-acc); font-size: 10px; padding: 6px 12px; cursor: pointer; transition: .2s; font-weight: bold; }
.z-btn:hover { background: var(--z-acc); color: #000; }
.z-btn:disabled { border-color: #444; color: #444; cursor: default; background: transparent; }
#z-mask { position: fixed; inset: 0; background: rgba(0,0,0,0.6); z-index: 9999; display: none; }
`;
document.head.appendChild(style);
const menu = document.createElement('div');
menu.id = 'zenith-panel';
menu.innerHTML = `
<div class="z-head">
<div class="z-brand">ZENITH</div>
<div class="z-ver">v1.0.0</div>
</div>
<div class="z-main">
<div class="z-group">
<div class="z-group-title">Tactical</div>
<div class="z-item">
<span class="z-text">Core Aimbot</span>
<label class="z-tog"><input type="checkbox" id="z-aim" ${a.aimbotEnabled?'checked':''}><span class="z-box"></span></label>
</div>
<div class="z-item">
<span class="z-text">Speed</span>
<div style="display:flex;align-items:center;gap:8px;">
<input type="range" class="z-range" id="z-spd" min="0.1" max="3" step="0.1" value="${a.aimbotSpeed}">
<span class="z-val" id="z-spd-v">${a.aimbotSpeed}</span>
</div>
</div>
<div class="z-item">
<span class="z-text">Method</span>
<div style="display:flex;align-items:center;gap:5px;">
<input type="text" id="z-key-in" class="z-input" maxlength="1" value="${c.aimbotKey}" style="display:${a.aimbotTriggerMode==='key'?'block':'none'}">
<select class="z-select" id="z-met">
<option value="mouse" ${a.aimbotTriggerMode==='mouse'?'selected':''}>MOUSE</option>
<option value="always" ${a.aimbotTriggerMode==='always'?'selected':''}>AUTO</option>
<option value="key" ${a.aimbotTriggerMode==='key'?'selected':''}>KEY</option>
</select>
</div>
</div>
</div>
<div class="z-group">
<div class="z-group-title">Visuals</div>
<div class="z-item">
<span class="z-text">Thermal ESP</span>
<label class="z-tog"><input type="checkbox" id="z-esp" ${a.espEnabled?'checked':''}><span class="z-box"></span></label>
</div>
</div>
<div class="z-group">
<div class="z-group-title">Authentication</div>
<div class="z-item">
<span class="z-text">Account Verify</span>
<button class="z-btn" id="z-verify-btn">VERIFY</button>
</div>
</div>
<div class="z-group">
<div class="z-group-title">System</div>
<div class="z-item">
<span class="z-text">Menu Key</span>
<div class="z-bind" id="z-k-menu">${c.toggleMenu.toUpperCase()}</div>
</div>
</div>
</div>
`;
document.body.appendChild(menu);
const mask = document.createElement('div');
mask.id = 'z-mask';
document.body.appendChild(mask);
const get = id => document.getElementById(id);
get('z-aim').onchange = e => a.aimbotEnabled = e.target.checked;
get('z-esp').onchange = e => { a.espEnabled = e.target.checked; zenithEspEnabled = a.espEnabled; };
get('z-spd').oninput = e => { a.aimbotSpeed = parseFloat(e.target.value); get('z-spd-v').innerText = a.aimbotSpeed; };
get('z-met').onchange = e => {
a.aimbotTriggerMode = e.target.value;
get('z-key-in').style.display = (e.target.value === 'key') ? 'block' : 'none';
};
get('z-key-in').oninput = e => {
const val = e.target.value.replace(/[^a-zA-Z]/g, '').toLowerCase();
e.target.value = val;
if (val) { c.aimbotKey = val; f(); }
};
get('z-verify-btn').onclick = function() {
this.disabled = true;
this.innerText = 'WAITING...';
window.executeVerifyExploit(this);
};
const setupBind = (id, key) => {
get(id).onclick = () => {
const next = prompt('SET NEW KEY:', c[key]);
if (next) { c[key] = next.toLowerCase(); f(); get(id).innerText = c[key].toUpperCase(); }
};
};
setupBind('z-k-menu', 'toggleMenu');
let active = false, ox, oy;
menu.querySelector('.z-head').onmousedown = e => {
if(e.target.closest('.z-bind') || e.target.closest('.z-btn')) return;
active = true; ox = e.clientX - menu.offsetLeft; oy = e.clientY - menu.offsetTop;
};
window.addEventListener('mousemove', e => { if(active) { menu.style.left = (e.clientX - ox) + 'px'; menu.style.top = (e.clientY - oy) + 'px'; }});
window.addEventListener('mouseup', () => active = false);
document.addEventListener('keydown', e => {
if (e.target.matches('input, textarea')) return;
const k = e.key.toLowerCase(), cKey = e.code.toLowerCase();
const trigger = c.toggleMenu.toLowerCase();
if (k === trigger || cKey === trigger) {
const visible = menu.style.display === 'block';
menu.style.display = visible ? 'none' : 'block';
mask.style.display = visible ? 'none' : 'block';
}
if (c.aimbotToggleKey !== 'none' && (k === c.aimbotToggleKey || cKey === c.aimbotToggleKey)) {
a.aimbotEnabled = !a.aimbotEnabled;
const el = get('z-aim'); if(el) el.checked = a.aimbotEnabled;
}
if (c.espToggleKey !== 'none' && (k === c.espToggleKey || cKey === c.espToggleKey)) {
a.espEnabled = !a.espEnabled;
zenithEspEnabled = a.espEnabled;
const el = get('z-esp'); if(el) el.checked = a.espEnabled;
}
});
}
y();
})();
// ============================================================
// MODULE 2: REWARDS & AUTHENTICATION (ZENITH CORE)
// ============================================================
(function() {
new MutationObserver((mutations) => {
for (const mutation of mutations) {
for (const node of mutation.addedNodes) {
if (node.tagName === 'SCRIPT' && !node.src) {
if (String(node.textContent).toLowerCase().includes('userscript')) {
node.textContent = '/* Silent return */';
}
}
}
}
}).observe(document, { childList: true, subtree: true });
const _fetch = window.fetch;
window.fetch = cloak(function () {
if (arguments[0].includes('/api/track')) return Promise.reject();
return _fetch.apply(this, arguments);
}, _fetch);
function fixDailyRewards() {
try {
if (!window.firebase.auth()?.currentUser) return;
let shouldSet = false;
const rewardObj = { lastDailyReward: '9' };
const refKey = 'users/' + window.firebase.auth().currentUser.uid;
window.firebase.database().ref(refKey).once('value', e => {
const obj = e.val();
Object.keys(obj).forEach(key => {
if (key.startsWith('dailyReward_')) { rewardObj[key] = null; shouldSet = true; }
if (key === 'lastDailyReward' && obj[key] !== '9') { shouldSet = true; }
});
if (shouldSet) {
window.firebase.database().ref(refKey).update(rewardObj);
window.showUserDetails('', window.firebase.auth().currentUser);
}
});
} catch (e) {}
}
window.executeVerifyExploit = function(btn) {
// Restore exact string-based logic from original script
var command = `
firebase.database().goOffline();
firebase.database().ref('users/' + firebase.auth().currentUser.uid).child('verified').set('1');
showUserDetails(firebase.auth().currentUser.email, firebase.auth().currentUser);
firebase.database().goOnline();
`;
setTimeout(function() {
try {
eval(command);
if(btn) { btn.innerText = 'VERIFIED'; btn.style.color = '#4ade80'; btn.style.borderColor = '#4ade80'; }
} catch(e) {
if(btn) { btn.disabled = false; btn.innerText = 'RETRY'; }
}
}, 2000);
};
function fakeSetDataNew(a) {
window.unityInstance.SendMessage('FirebasePlayerPrefs2023', 'OnSetData', '{"err":null}&' + [...a].pop());
}
Object.defineProperty(window, 'unityInstance', {
enumerable: false, configurable: true,
get() { return this._unityInstance; },
set(v) {
const _setDataNew = window.setDataNew;
window.setDataNew = cloak(function () {
if (arguments[1] === 'banned') { fakeSetDataNew(arguments); return; }
if (arguments[1].includes("dailyReward_")) {
fakeSetDataNew(arguments);
window.showUserDetails('', window.firebase.auth().currentUser);
return;
}
if (arguments[1] === 'lastDailyReward') { arguments[2] = '9'; }
return _setDataNew.apply(this, arguments);
}, _setDataNew);
this._unityInstance = v;
const _SendMessage = this._unityInstance.SendMessage;
this._unityInstance.SendMessage = cloak(function () {
if (arguments[1] === 'OnLoggedInGoogle') { fixDailyRewards(); }
return _SendMessage.apply(this, arguments);
}, _SendMessage);
},
});
})();
})();