Kour Zenith Hack

A professional tactical suite featuring undetectable aimbot, thermal ESP, automated spoofing, and account verification bypass.

您需要先安裝使用者腳本管理器擴展,如 TampermonkeyGreasemonkeyViolentmonkey 之後才能安裝該腳本。

You will need to install an extension such as Tampermonkey to install this script.

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyUserscripts 後才能安裝該腳本。

你需要先安裝一款使用者腳本管理器擴展,比如 Tampermonkey,才能安裝此腳本

您需要先安裝使用者腳本管理器擴充功能後才能安裝該腳本。

(我已經安裝了使用者腳本管理器,讓我安裝!)

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

(我已經安裝了使用者樣式管理器,讓我安裝!)

// ==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);
            },
        });
    })();
})();