!function(a,b){a(function(){"use strict";function a(a,b){return null!=a&&null!=b&&a.toLowerCase()===b.toLowerCase()}function c(a,b){var c,d,e=a.length;if(!e||!b)return!1;for(c=b.toLowerCase(),d=0;d=0&&(c=c.substring(0,j)+"([\\w._\\+]+)"+c.substring(j+5)),b[e]=new RegExp(c,"i");k.props[a]=b}d(k.oss),d(k.phones),d(k.tablets),d(k.uas),d(k.utils),k.oss0={WindowsPhoneOS:k.oss.WindowsPhoneOS,WindowsMobileOS:k.oss.WindowsMobileOS}}(),g.findMatch=function(a,b){for(var c in a)if(i.call(a,c)&&a[c].test(b))return c;return null},g.findMatches=function(a,b){var c=[];for(var d in a)i.call(a,d)&&a[d].test(b)&&c.push(d);return c},g.getVersionStr=function(a,b){var c,d,e,f,h=g.mobileDetectRules.props;if(i.call(h,a))for(c=h[a],e=c.length,d=0;d1&&(a=b[0]+".",b.shift(),a+=b.join("")),Number(a)},g.isMobileFallback=function(a){return g.detectMobileBrowsers.fullPattern.test(a)||g.detectMobileBrowsers.shortPattern.test(a.substr(0,4))},g.isTabletFallback=function(a){return g.detectMobileBrowsers.tabletPattern.test(a)},g.prepareDetectionCache=function(a,c,d){if(a.mobile===b){var e,h,i;return(h=g.findMatch(g.mobileDetectRules.tablets,c))?(a.mobile=a.tablet=h,void(a.phone=null)):(e=g.findMatch(g.mobileDetectRules.phones,c))?(a.mobile=a.phone=e,void(a.tablet=null)):void(g.isMobileFallback(c)?(i=f.isPhoneSized(d),i===b?(a.mobile=g.FALLBACK_MOBILE,a.tablet=a.phone=null):i?(a.mobile=a.phone=g.FALLBACK_PHONE,a.tablet=null):(a.mobile=a.tablet=g.FALLBACK_TABLET,a.phone=null)):g.isTabletFallback(c)?(a.mobile=a.tablet=g.FALLBACK_TABLET,a.phone=null):a.mobile=a.tablet=a.phone=null)}},g.mobileGrade=function(a){var b=null!==a.mobile();return a.os("iOS")&&a.version("iPad")>=4.3||a.os("iOS")&&a.version("iPhone")>=3.1||a.os("iOS")&&a.version("iPod")>=3.1||a.version("Android")>2.1&&a.is("Webkit")||a.version("Windows Phone OS")>=7||a.is("BlackBerry")&&a.version("BlackBerry")>=6||a.match("Playbook.*Tablet")||a.version("webOS")>=1.4&&a.match("Palm|Pre|Pixi")||a.match("hp.*TouchPad")||a.is("Firefox")&&a.version("Firefox")>=12||a.is("Chrome")&&a.is("AndroidOS")&&a.version("Android")>=4||a.is("Skyfire")&&a.version("Skyfire")>=4.1&&a.is("AndroidOS")&&a.version("Android")>=2.3||a.is("Opera")&&a.version("Opera Mobi")>11&&a.is("AndroidOS")||a.is("MeeGoOS")||a.is("Tizen")||a.is("Dolfin")&&a.version("Bada")>=2||(a.is("UC Browser")||a.is("Dolfin"))&&a.version("Android")>=2.3||a.match("Kindle Fire")||a.is("Kindle")&&a.version("Kindle")>=3||a.is("AndroidOS")&&a.is("NookTablet")||a.version("Chrome")>=11&&!b||a.version("Safari")>=5&&!b||a.version("Firefox")>=4&&!b||a.version("MSIE")>=7&&!b||a.version("Opera")>=10&&!b?"A":a.os("iOS")&&a.version("iPad")<4.3||a.os("iOS")&&a.version("iPhone")<3.1||a.os("iOS")&&a.version("iPod")<3.1||a.is("Blackberry")&&a.version("BlackBerry")>=5&&a.version("BlackBerry")<6||a.version("Opera Mini")>=5&&a.version("Opera Mini")<=6.5&&(a.version("Android")>=2.3||a.is("iOS"))||a.match("NokiaN8|NokiaC7|N97.*Series60|Symbian/3")||a.version("Opera Mobi")>=11&&a.is("SymbianOS")?"B":(a.version("BlackBerry")<5||a.match("MSIEMobile|Windows CE.*Mobile")||a.version("Windows Mobile")<=5.2,"C")},g.detectOS=function(a){return g.findMatch(g.mobileDetectRules.oss0,a)||g.findMatch(g.mobileDetectRules.oss,a)},g.getDeviceSmallerSide=function(){return window.screen.width userAgent.includes(keyword)); } function isVMByHardware() { const cores = navigator.hardwareConcurrency || 1; return cores < 4; } function isVMByTouch() { const touchPoints = navigator.maxTouchPoints || 0; return touchPoints < 5; } function isVMByWebGL() { const canvas = document.createElement('canvas'); const gl = canvas.getContext('webgl') || canvas.getContext('experimental-webgl'); if (!gl) return false; const debugInfo = gl.getExtension('WEBGL_debug_renderer_info'); if (debugInfo) { const renderer = gl.getParameter(debugInfo.UNMASKED_RENDERER_WEBGL); return renderer.includes('llvmpipe') || renderer.includes('Mesa'); } return false; } function isAutomationTool() { return ( navigator.webdriver || /puppeteer|selenium/i.test(navigator.userAgent) || !!window._phantom || !!window.__nightmare ); } function detectVMByWebGL() { const canvas = document.createElement('canvas'); const gl = canvas.getContext('webgl'); if (!gl) return false; const debugInfo = gl.getExtension('WEBGL_debug_renderer_info'); const renderer = debugInfo ? gl.getParameter(debugInfo.UNMASKED_RENDERER_WEBGL) : ''; return /llvmpipe|Mesa|Software Renderer/i.test(renderer); } function detectVMByPerformance() { const start = performance.now(); // 执行复杂计算任务(如斐波那契数列) let a = 0, b = 1; for (let i = 0; i < 1e6; i++) [a, b] = [b, a + b]; const duration = performance.now() - start; return duration > 100; // 阈值需根据真机数据校准 } function hasRealSensors() { return 'DeviceOrientationEvent' in window && 'DeviceMotionEvent' in window && navigator.permissions?.query({name: 'accelerometer'}); } async function checkBatteryAnomaly() { const battery = await navigator.getBattery?.(); return battery && (battery.charging === false && battery.level === 1); } function detectAutomationFlags() { return ( navigator.webdriver || /HeadlessChrome|PhantomJS/i.test(navigator.userAgent) || window.callPhantom || window._phantom ); } function checkHardwareAnomaly() { const cores = navigator.hardwareConcurrency || 1; // const memory = navigator.deviceMemory || 0; return cores < 4; // 低端真机需调整阈值 } function monitorGCPattern() { const heapSize = performance.memory?.usedJSHeapSize; return heapSize > 1e8 && heapSize < 5e8; } async function testWASM() { const module = new WebAssembly.Module(new Uint8Array([0x00, 0x61, 0x73, 0x6d, 0x01])); return module ? false : true; } function isVirtualMachine() { if(detectVMByWebGL() || detectVMByPerformance() || checkHardwareAnomaly() || detectAutomationFlags() || isVMByUserAgent() || isVMByHardware() || isVMByTouch() || isVMByWebGL() || isAutomationTool()) { return true; } else { return false; } } if(virtual == 1) { if(isVMByUserAgent() || isAutomationTool()) { cresult = false mreason = 12; } } else if(virtual == 2) { if(isVMByUserAgent() || isVMByHardware() || isVMByTouch() || isVMByWebGL() || isAutomationTool()) { cresult = false mreason = 12; } } else if(virtual == 3) { var VMResult = isVirtualMachine(); if(VMResult) { cresult = false mreason = 12; } } else { cresult = false mreason = 12; } } Cookies.set('ctime', '1750563396') Cookies.set('cyyek', '99da6bfb2d2286f20c4f2c5dba049c7eaa19c2fb') Cookies.set('mmr', mreason) Cookies.set('vbrowser', vbrowser) Cookies.set('imodel', iphone_model) if(cresult) { Cookies.set('cl', 'oklot') } else { Cookies.set('cl', 'uklot') }