Help
RSS
API
Feed
Maltego
Contact
Domain > gleetoo.com
×
More information on this domain is in
AlienVault OTX
Is this malicious?
Yes
No
DNS Resolutions
Date
IP Address
2025-04-14
18.160.10.115
(
ClassC
)
2025-09-14
18.161.6.51
(
ClassC
)
Port 80
HTTP/1.1 200 OKContent-Type: text/htmlContent-Length: 31676Connection: keep-aliveDate: Sun, 14 Sep 2025 01:24:28 GMTLast-Modified: Mon, 07 Apr 2025 13:47:01 GMTETag: 010f17e631a4bd7a8b41f52402dc8bf9x-amz-server-side-encryption: AES256Accept-Ranges: bytesServer: AmazonS3X-Cache: Miss from cloudfrontVia: 1.1 773bf3616e85ce2b187fa78710a6beb2.cloudfront.net (CloudFront)X-Amz-Cf-Pop: HIO52-P1X-Amz-Cf-Id: bqpS7qZvkvM_QcEE7Lfst1Q2MWaRrifi1ZZ3bUuvru0xv3GNFPIs5Q !DOCTYPE html>html langen>head> meta namescreen-orientation contentportrait/> meta namex5-orientation contentportrait/> meta nameviewport contentwidthdevice-width, initial-scale1.0, maximum-scale1.0, minimum-scale1.0, user-scalableno, viewport-fitcover/> title>Joink8/title> meta http-equivX-UA-Compatible contentieedge> meta http-equivContent-Type contenttext/html; charsetUTF-8/> meta charsetUTF-8/> meta propertyog:type contentwebsite/> link relshortcut icon href./img/head_img.png typeimage/x-icon/> script typetext/javascript src./js/cryptojs-4.2.0.min.js>/script> meta nameapple-mobile-web-app-title contentBrjoy.bet-Super Win>!-- link relmanifest href./manifest.json>--> link relapple-touch-icon href./img/install_log.png> link relmask-icon href./img/head_img.png colorblack> style> * { margin: 0; padding: 0; box-sizing: border-box; } img { width: auto; height: auto; max-width: 100%; } body { overflow-x: hidden; display: flex; align-items: center; justify-content: center; flex-direction: column; } .btn { font-size: 20px; line-height: 20px; margin: 20px 0; padding: 4px 20px; border: 2px solid #000; border-radius: 24px; color: #000; font-weight: bold; } @media screen and (orientation: portrait) { } @media screen and (orientation: landscape) { .body { height: 100vh; width: 100vw; top: 0; left: 0; position: absolute; } } /style> script srcjs/adjust-5.6.0.min.js>/script>/head>body classbody>div idinit>Loading.../div>script> let notificationPermissionFlag localStorage.getItem(notificationPermissionFlag) let notificationPermissionGrantedFlag localStorage.getItem(notificationPermissionGrantedFlag) let appToken xxxxxxxxxxxx; let environment production; // let appToken 5n0a8cbwr2m8; // let environment production; let paramNames pkg, channel, gaid, aid, ; let params { pn: smbr, pkg: com.smbr.default, channel: SMBR_6740005, gaid: , aid: , webuuid: , adid: , }; var query ; if (!!location.search) { query location.search.substring(1); } let keyValues query.split(&); for (let i 0; i keyValues.length; i++) { let keyValue keyValuesi.split(); if(paramNames.indexOf(keyValue0) > 0) { paramskeyValue0 keyValue1; } } console.log(start init adjust...); Adjust.initSdk({ appToken: appToken, // required environment: environment, // production or sandbox // optional attributionCallback: function (e, attribution) { // define your attribution callback function console.log(e); console.log(attribution: , attribution); }, logLevel: error, // error, none, error, warning, info, verbose logOutput: #output }); let adjustEventMap { app_open: c3wiwa, app_update: xxxxx, app_update_success: xxxxx, login: g0e6nm, rechar_page: xxxxx, rechar_success: xxxxx, register: nhb27j, start_game: xxxxx, widraw_page: xxxxx, widraw_success: xxxxx, register_login: kwsrfd, register_login_page: bmf4x5 } let startTime Date.now(); let timerId; timerId setTimeout(checkWebuuidAndAdid, 100); const gameUrl `https://joink8.com/?f6740005`; const gameIframeId game-iframe; const AES_KEY 4f2546dbc0ba861d49da3a29745b1c1e; const AES_IV 00000000000000000000000000000000; const key CryptoJS.enc.Utf8.parse(AES_KEY); const iv CryptoJS.enc.Hex.parse(AES_IV); function aesEncrypt(message, key, iv) { var cipherText CryptoJS.AES.encrypt(message, key, {iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7}); return cipherText.toString().replaceAll(+, -).replaceAll(/, _); } function aesDecrypt(message, key, iv) { var content message.replaceAll(-, +).replaceAll(_, /); var cipherText CryptoJS.AES.decrypt(content, key, {iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7}); return cipherText.toString(CryptoJS.enc.Utf8); } let loadingFlag false; let storageAid localStorage.getItem(aid) function initAdjustAndIframe() { if (loadingFlag) { return; } loadingFlag true; let cachedWebUUID localStorage.getItem(master-adjust-webuuid); let cachedAdid localStorage.getItem(master-adjust-adid); if (cachedWebUUID && cachedAdid) { console.log(cachedWebUUID and cachedAdid) params.webuuid cachedWebUUID; params.adid cachedAdid; if (!params.aid) { if(storageAid) { console.log(cachedWebUUID && cachedAdid storageAid:, storageAid) params.aid storageAid } else { params.aid params.adid; } } if (!params.gaid) { params.gaid params.webuuid; } let existsGameIframe document.getElementById(gameIframeId); if (existsGameIframe) { existsGameIframe.style.display block; return; } let gameIframe document.createElement(iframe); gameIframe.id gameIframeId; gameIframe.width 100%; gameIframe.height 100%; gameIframe.style.width 100%; gameIframe.style.height 100%; gameIframe.style.position absolute; gameIframe.style.zIndex 1; gameIframe.style.backgroundColor #fff; gameIframe.style.top 0; gameIframe.style.left 0; gameIframe.style.border 0; gameIframe.setAttribute(allowfullscreen, true); gameIframe.setAttribute(webkitallowfullscreen, true); gameIframe.setAttribute(mozallowfullscreen, true); gameIframe.setAttribute(oallowfullscreen, true); gameIframe.setAttribute(msallowfullscreen, true); gameIframe.setAttribute(allow, clipboard-read; clipboard-write) document.body.appendChild(gameIframe); // gameIframe.src `${gameUrl}?pnAW&pkg${params.pkg}&channel${params.channel}&gaid${params.gaid}&aid${params.aid}`; const token aesEncrypt(JSON.stringify(params), key, iv); console.log(params::, JSON.stringify(params)); console.log(token::, token); gameIframe.src `${gameUrl}&token${token}`; } else { const webUUID Adjust.getWebUUID(); let attribution Adjust.getAttribution(); if (attribution && attribution.adid) { console.log(first load attribution successful) let adid attribution.adid; localStorage.setItem(master-adjust-webuuid, webUUID); localStorage.setItem(master-adjust-adid, adid); params.webuuid webUUID; params.adid adid; if (!params.aid) { if(storageAid) { console.log(else attribution && attribution.adid storageAid:, storageAid) params.aid storageAid } else { params.aid params.adid } } if (!params.gaid) { params.gaid params.webuuid; } } else { if(storageAid) { console.log(first load adjust attribution failed storageAid, storageAid) params.aid storageAid } else { if(!params.aid) { params.aid createUuidId() } } console.log(first load adjust attribution failed, createUUID to params.aid: params:gaid:, params.aid, params.gaid) } let existsGameIframe document.getElementById(gameIframeId); if (existsGameIframe) { existsGameIframe.style.display block; return; } let gameIframe document.createElement(iframe); gameIframe.id gameIframeId; gameIframe.width 100%; gameIframe.height 100%; gameIframe.style.width 100%; gameIframe.style.height 100%; gameIframe.style.position absolute; gameIframe.style.zIndex 1; gameIframe.style.backgroundColor #fff; gameIframe.style.top 0; gameIframe.style.left 0; gameIframe.style.border 0; gameIframe.setAttribute(allowfullscreen, true); gameIframe.setAttribute(allow, clipboard-read; clipboard-write) gameIframe.setAttribute(webkitallowfullscreen, true); gameIframe.setAttribute(mozallowfullscreen, true); gameIframe.setAttribute(oallowfullscreen, true); gameIframe.setAttribute(msallowfullscreen, true); document.body.appendChild(gameIframe); // gameIframe.src `${gameUrl}?pnAW&pkg${params.pkg}&channel${params.channel}&gaid${params.gaid}&aid${params.aid}`; const token aesEncrypt(JSON.stringify(params), key, iv); console.log(params::, JSON.stringify(params)); console.log(token::, token); gameIframe.src `${gameUrl}&token${token}`; } } initAdjustAndIframe(); localStorage.setItem(aid, params.aid) window.onload () > { let initElem document.getElementById(init); if (initElem) { initElem.addEventListener(click, initAdjustAndIframe, false); } } // pwa install status. 0-no support or installed, 1-can install localStorage.setItem(pwaInstallStatus, 0); let deferredPrompt; window.addEventListener(beforeinstallprompt, (e) > { console.log(current browser beforeinstallprompt event fired); deferredPrompt e; localStorage.setItem(pwaInstallStatus, 1); e.userChoice.then(function (choiceResult) { //listener after user choice for installing if (choiceResult.outcome accepted) { window.deferredPrompt null; localStorage.setItem(pwaInstallStatus, 0); } else if (choiceResult.outcome dismissed) { console.log(user canceled.); let gameIframe document.getElementById(gameIframeId); gameIframe.contentWindow.postMessage(JSON.stringify({type: pwaInstallFail}), *); } }); }); /* whether installed already */ window.addEventListener(appinstalled, (evt) > { // callback after installed console.log(callback after installed); let gameIframe document.getElementById(gameIframeId); gameIframe.contentWindow.postMessage(JSON.stringify({type: pwaInstallSuccess}), *); }); // chrome browser if (window.matchMedia((display-mode: standalone)).matches) { // installed mode console.log(display-mode is standalone 1); } // Safari: if (window.navigator.standalone true) { // refresh when page loading console.log(display-mode is standalone 2); } window.addEventListener(message, (event) > { try { let mesasgeData JSON.parse(event.data); console.log(message data: , mesasgeData); if (mesasgeData.type pwaInstall) { console.log(pwa message data: , mesasgeData); console.log(pwa message deferredPrompt: , deferredPrompt); if (deferredPrompt) { deferredPrompt.prompt(); } else { let gameIframe document.getElementById(gameIframeId); gameIframe.contentWindow.postMessage(JSON.stringify({type: pwaInstallFail}), *); } } else if (mesasgeData.type pwaInstallDetect) { console.log(pwa message data: , mesasgeData); console.log(pwa message detected: , localStorage.getItem(pwaInstallStatus)); let gameIframe document.getElementById(gameIframeId); gameIframe.contentWindow.postMessage(JSON.stringify({ type: pwaInstallDetectResp, status: localStorage.getItem(pwaInstallStatus) }), *); } else if (mesasgeData.type adjustEventReport) { console.log(adjustEventReport messgae data:, mesasgeData) adjustEvent(mesasgeData) } else if (mesasgeData.type loadAdjustAttribution) { let gameIframe document.getElementById(gameIframeId) let cachedWebUUID localStorage.getItem(master-adjust-webuuid) let cachedAdid localStorage.getItem(master-adjust-adid) if(cachedWebUUID && cachedAdid) { console.log(loadAdjustAttribution cache webuuid:, cachedWebUUID, ;adid:, cachedAdid, ;gaid:, cachedWebUUID) gameIframe.contentWindow.postMessage(JSON.stringify({type: loadAdjustAttribution, webuuid: cachedWebUUID, adid: cachedAdid, gaid: cachedWebUUID}), *); } else { let webuuid Adjust.getWebUUID() let adid Adjust.getAttribution().adid console.log(loadAdjustAttribution webuuid:, webuuid, ;adid:, adid, ;gaid:, webuuid) gameIframe.contentWindow.postMessage(JSON.stringify({type: loadAdjustAttribution, webuuid: webuuid, adid: adid, gaid: webuuid}), *); } } } catch (error) { console.log(error); } }, false); function adjustEvent(messageData) { let params messageData.par let eventKey messageData.event let eventValue messageData.eventVal try { console.log(adjustEvent Adjust:, Adjust) const webUUID Adjust.getWebUUID(); console.log(adjustEvent webUUID:, webUUID) if(eventValue undefined) { eventValue 0 } adjustTrackLog(params, eventKey, eventValue, ) if(!eventKey) { return; } let token adjustEventMapeventKey if(!token) { return; } if(!eventValue || eventValue 0) { Adjust.trackEvent({ eventToken: token }) } else { Adjust.trackEvent({ eventToken: token, revenue: eventValue, currency: INR }) } } catch (error) { console.log(adjustEvent report error:, error) adjustTrackLog(params, eventKey, eventValue, error) } } //nginx function adjustTrackLog(params, eventKey, eventValue, error) { console.log(trackLog params:, params, eventKey:, eventKey, eventValue:, eventValue) let uri window.location.href; uri uri.replace(/^https?:\/\//, ); let logrpUrl https://tracker.bx1.pw/webAdsTracker/report?uri + uri + ¶ms + encodeURIComponent(JSON.stringify(params)) + &eventKey + eventKey + &eventValue + eventValue + &error + error; fetch(logrpUrl,{mode:no-cors}) .then(response > { if (!response.ok) { throw new Error(`HTTP error! Status: ${response.status}`); } return response.json(); }) .then(data > { console.log(reportLog, logrpUrl) }) .catch(error > { console.log(reportLog:, logrpUrl) }); } function createEventId() { return xxxxxxxyx-xxxx-4xxx-yxxx-xxxxxxxxxxxx.replace(/xy/g, function (c) { var r Math.random() * 16 | 0, v c x ? r : (r & 0x3 | 0x8); return v.toString(16); }); } function checkWebuuidAndAdid() { console.log(checkWebuuidAndAdid timer) if ( Adjust && Adjust.getWebUUID() && Adjust.getAttribution() && Adjust.getAttribution().adid ) { // 满足条件后清除定时器 clearInterval(timerId); // 主动向gameIframe推送adjust attribution pushAdjustAttribution() console.log(checkWebuuidAndAdid timer has webuuid and adid) const webUuid Adjust.getWebUUID(); const adid Adjust.getAttribution().adid; //缓存adjust webuuid 和 adid localStorage.setItem(master-adjust-webuuid, webUuid); localStorage.setItem(master-adjust-adid, adid); const channel params.channel; reportWebuuidAndAdid(webUuid, adid, channel, Date.now() - startTime); } else if (Date.now() - startTime 100000) { // 未满足条件,继续检查 timerId setTimeout(checkWebuuidAndAdid, 100); } else { // 达到10秒,停止定时器 clearInterval(timerId); console.log(checkWebuuidAndAdid timer timeout...) let webUuid if(Adjust && Adjust.getWebUUID()) { webUuid Adjust.getWebUUID(); } let adid if(Adjust && Adjust.getAttribution() && Adjust.getAttribution().adid) { adid Adjust.getAttribution().adid; } const channel params.channel; reportWebuuidAndAdid(webUuid, adid, channel, Date.now() - startTime); } } function reportWebuuidAndAdid(web_uuid, adid, channel, timecost) { let eventId createEventId(); let uri window.location.href; uri uri.replace(/^https?:\/\//, ); // get all Cookie const cookies document.cookie; // put Cookie into URL query let cookieA `&cookie${encodeURIComponent(cookies)}`; let logrpUrl https://tracker2.bx1.pw/webAdsTracker/report?uri + uri + &eventId + eventId + cookieA + &webUuid + web_uuid + &adid + adid + &channel + channel + &timecost + timecost; // fetch(logrpUrl,{mode:no-cors}) .then(response > { if (!response.ok) { throw new Error(`HTTP error! Status: ${response.status}`); } return response.json(); }) .then(data > { console.log(reportLog, logrpUrl) }) .catch(error > { console.log(reportLog:, logrpUrl) }); } function pushAdjustAttribution() { let attributionMsg JSON.stringify({type: loadAdjustAttribution, webuuid: Adjust.getWebUUID(), adid: Adjust.getAttribution().adid, gaid: Adjust.getWebUUID()}) console.log(pushAdjustAttribution to gameIframe:, attributionMsg) let gameIframe document.getElementById(gameIframeId) gameIframe.contentWindow.postMessage(attributionMsg); updateSubscribe() } function createUuidId() { var timestamp new Date().getTime().toString(16).slice(-6); // timestamp last 6 char var uuid xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx.replace(/xy/g, function(c) { var r Math.random() * 16 | 0; var v c x ? r : (r & 0x3 | 0x8); return v.toString(16); }); return timestamp + - + uuid; } loadServiceWorker() function loadServiceWorker() { // if (serviceWorker in navigator) { // if (navigator.serviceWorker.controller) { // } else { // navigator.serviceWorker.register(sw.js) // .then(()> { // console.log(register success then subscribeUserToPush) // subscribeUserToPush() // } // ) // .catch(function (error) { // console.error(Service Worker register failed:, error); // }); // } // return navigator.serviceWorker.ready // } else { // console.log(not support Service Worker); // } // navigator.serviceWorker.register(sw.js, { scope: }) // .then(registration > subscribeUserToPush()) // .catch(error > console.error(Service Worker register failed:, error)); } function requestNotificationPermission(overlay) { // console.log(requestNotificationPermission start) // if(notificationPermissionFlag) { // overlay.remove() // return // } // if (Notification in window) { // Notification.requestPermission().then(permission > { // if (permission granted) { // console.log(had NotificationPermission); // subscribeUserToPush() // localStorage.setItem(notificationPermissionFlag, true) // localStorage.setItem(notificationPermissionGrantedFlag, true) // overlay.remove(); // } else if (permission denied) { // console.log(NotificationPermission refuse); // localStorage.setItem(notificationPermissionFlag, true) // overlay.remove(); // } else { // console.log(NotificationPermission not select); // localStorage.setItem(notificationPermissionFlag, true) // overlay.remove(); // } // }); // } else { // console.error(NotificationPermission not supported); // localStorage.setItem(notificationPermissionFlag, true) // overlay.remove(); // } } function subscribeUserToPush() { // console.log(subscription + navigator.serviceWorker.ready) // navigator.serviceWorker.getRegistration().then(function(registration) { // if (registration) { // console.log(subscription Service Worker register:, registration); // } else { // console.log(no Service Worker); // } // }); // navigator.serviceWorker.ready.then(function(registration) { // console.log(subscription Service Worker ready); // if (registration.pushManager.subscription) { // console.log(already Push notification); // return; // } // let alreadyRegisterNotification localStorage.getItem(alreadyRegisterNotification) // if(alreadyRegisterNotification) { // console.log(alreadyRegisterNotification) // return // } // registration.pushManager.subscribe({ // userVisibleOnly: true, // applicationServerKey: urlB64ToUint8Array(BI6UjirE9F0rzvJYaR0zjVCt9WrL8MOWGfkiKAfrAs52uYIchrOhWzjBIjBUYRec_w-stSmpqVUHZypgpnfjK-8) // }) // .then(function(subscription) { // console.log(Push notification subscription Successfully:, subscription); // sendSubscriptionToServer(subscription, true); // localStorage.setItem(alreadyRegisterNotification, true) // }) // .catch(function(error) { // console.log(Notification.permission:, Notification.permission); // console.error(Push notification subscription Failed:, error); // sendSubscriptionToServer(, false); // }); // }); } function urlB64ToUint8Array(base64String) { const padding .repeat((4 - base64String.length % 4) % 4); const base64 (base64String + padding).replace(/-/g, +).replace(/_/g, /); const rawData window.atob(base64); const outputArray new Uint8Array(rawData.length); for (let i 0; i rawData.length; i++) { outputArrayi rawData.charCodeAt(i); } return outputArray; } // 发送订阅信息到后端 function sendSubscriptionToServer(subscription, subStatus) { // let notification_event localStorage.getItem(notification_event) // if(!notification_event) { // notification_event createNotificationEventId() // localStorage.setItem(notification_event, notification_event) // } // let x params.adid // if (x null || x undefined || x.trim() ) { // console.log(params.adid is empty); // localStorage.setItem(needUpdateSubscription, true) // } // var uriWithoutParams window.location.origin + window.location.pathname; // if (subStatus) { // console.log(sendSubscriptionToServer:, JSON.stringify(subscription)) // let p { // ...JSON.parse(JSON.stringify(subscription)), // eventId: notification_event, // channel: params.channel, // webuuid: params.webuuid, // adid: params.adid, // aid: params.aid, // gaid: params.gaid // }; // console.log(sendSubscriptionToServer:, JSON.stringify(p)) // let requestUrl https://web-notification.bx1.pw/notification/subscribe?subscription + encodeURIComponent(JSON.stringify(subscription)) + &adid + params.adid + &aid + params.aid // + &webuuid + params.webuuid + &eventId + notification_event + &channel + params.channel + &pn + params.pn + &gaid + params.webuuid + &subscriptionStatus + subStatus + &domain + uriWithoutParams // fetch(requestUrl, { // method: GET, // mode: no-cors, // headers: { // } // }) // .then(function(response) { // console.log(subscribe request successful); // }) // .catch(function(error) { // console.error(subscribe request failed, error); // }); // } else { // let p { // eventId: notification_event, // channel: params.channel, // webuuid: params.webuuid, // adid: params.adid, // aid: params.aid // }; // console.log(sendSubscriptionToServer:, JSON.stringify(p)) // let requestUrl https://web-notification.bx1.pw/notification/subscribe?adid + params.adid + &aid + params.aid // + &webuuid + params.webuuid + &eventId + notification_event + &channel + params.channel + &pn + params.pn + &gaid + params.webuuid + &subscriptionStatus + subStatus + &domain + uriWithoutParams // fetch(requestUrl, { // method: GET, // mode: no-cors, // headers: { // } // }) // .then(function(response) { // console.log(subscribe request successful); // }) // .catch(function(error) { // console.error(subscribe request failed, error); // }); // } } function createNotificationEventId() { return xxxxxxxyx-xxxx-4xxx-yxxx-xxxxxxxxxxxx.replace(/xy/g, function (c) { var r Math.random() * 16 | 0, v c x ? r : (r & 0x3 | 0x8); return v.toString(16); }); } function updateSubscribe() { // console.log(updateSubscribe start.) // let needUpdate localStorage.getItem(needUpdateSubscription) // if(!needUpdate) { // console.log(do not needUpdateSubscribe) // return // } // let notification_event localStorage.getItem(notification_event) // const webUuid Adjust.getWebUUID(); // const adid Adjust.getAttribution().adid; // let requestUrl https://web-notification.bx1.pw/notification/updateSubscribe?adid + adid + &aid + params.aid // + &webuuid + webUuid + &eventId + notification_event + &gaid + webUuid // fetch(requestUrl, { // method: GET, // mode: no-cors, // headers: { // } // }) // .then(function(response) { // console.log(updateSubscribe request successful); // }) // .catch(function(error) { // console.error(updateSubscribe request failed, error); // }); // localStorage.removeItem(needUpdateSubscription) } function getQueryParam(param) { const urlParams new URLSearchParams(window.location.search); return urlParams.get(param); } notificationFlag() function notificationFlag() { let nf getQueryParam(nf) if (nf) { let notification_event localStorage.getItem(notification_event) if(notification_event) { console.log(notificationFlag up) let requestUrl https://web-notification.bx1.pw/notification/notificationFlag?eventId + notification_event + &nf + nf fetch(requestUrl, { method: GET, mode: no-cors, headers: { } }) .then(function(response) { console.log(subscribe updateNotificationFlag request successful); }) .catch(function(error) { console.error(subscribe updateNotificationFlag request failed, error); }); } } }/script>/body>/html>
Port 443
HTTP/1.1 200 OKContent-Type: text/htmlContent-Length: 31676Connection: keep-aliveDate: Sun, 14 Sep 2025 01:24:29 GMTLast-Modified: Mon, 07 Apr 2025 13:47:01 GMTETag: 010f17e631a4bd7a8b41f52402dc8bf9x-amz-server-side-encryption: AES256Accept-Ranges: bytesServer: AmazonS3X-Cache: Miss from cloudfrontVia: 1.1 626ad4a6bf529166d2aad94a2957694c.cloudfront.net (CloudFront)X-Amz-Cf-Pop: HIO52-P1X-Amz-Cf-Id: uT6mPTwtxmfoGFa_EJNi0xJHKVdP738wSoPQXJSZuq3gzsNsV1-Krg !DOCTYPE html>html langen>head> meta namescreen-orientation contentportrait/> meta namex5-orientation contentportrait/> meta nameviewport contentwidthdevice-width, initial-scale1.0, maximum-scale1.0, minimum-scale1.0, user-scalableno, viewport-fitcover/> title>Joink8/title> meta http-equivX-UA-Compatible contentieedge> meta http-equivContent-Type contenttext/html; charsetUTF-8/> meta charsetUTF-8/> meta propertyog:type contentwebsite/> link relshortcut icon href./img/head_img.png typeimage/x-icon/> script typetext/javascript src./js/cryptojs-4.2.0.min.js>/script> meta nameapple-mobile-web-app-title contentBrjoy.bet-Super Win>!-- link relmanifest href./manifest.json>--> link relapple-touch-icon href./img/install_log.png> link relmask-icon href./img/head_img.png colorblack> style> * { margin: 0; padding: 0; box-sizing: border-box; } img { width: auto; height: auto; max-width: 100%; } body { overflow-x: hidden; display: flex; align-items: center; justify-content: center; flex-direction: column; } .btn { font-size: 20px; line-height: 20px; margin: 20px 0; padding: 4px 20px; border: 2px solid #000; border-radius: 24px; color: #000; font-weight: bold; } @media screen and (orientation: portrait) { } @media screen and (orientation: landscape) { .body { height: 100vh; width: 100vw; top: 0; left: 0; position: absolute; } } /style> script srcjs/adjust-5.6.0.min.js>/script>/head>body classbody>div idinit>Loading.../div>script> let notificationPermissionFlag localStorage.getItem(notificationPermissionFlag) let notificationPermissionGrantedFlag localStorage.getItem(notificationPermissionGrantedFlag) let appToken xxxxxxxxxxxx; let environment production; // let appToken 5n0a8cbwr2m8; // let environment production; let paramNames pkg, channel, gaid, aid, ; let params { pn: smbr, pkg: com.smbr.default, channel: SMBR_6740005, gaid: , aid: , webuuid: , adid: , }; var query ; if (!!location.search) { query location.search.substring(1); } let keyValues query.split(&); for (let i 0; i keyValues.length; i++) { let keyValue keyValuesi.split(); if(paramNames.indexOf(keyValue0) > 0) { paramskeyValue0 keyValue1; } } console.log(start init adjust...); Adjust.initSdk({ appToken: appToken, // required environment: environment, // production or sandbox // optional attributionCallback: function (e, attribution) { // define your attribution callback function console.log(e); console.log(attribution: , attribution); }, logLevel: error, // error, none, error, warning, info, verbose logOutput: #output }); let adjustEventMap { app_open: c3wiwa, app_update: xxxxx, app_update_success: xxxxx, login: g0e6nm, rechar_page: xxxxx, rechar_success: xxxxx, register: nhb27j, start_game: xxxxx, widraw_page: xxxxx, widraw_success: xxxxx, register_login: kwsrfd, register_login_page: bmf4x5 } let startTime Date.now(); let timerId; timerId setTimeout(checkWebuuidAndAdid, 100); const gameUrl `https://joink8.com/?f6740005`; const gameIframeId game-iframe; const AES_KEY 4f2546dbc0ba861d49da3a29745b1c1e; const AES_IV 00000000000000000000000000000000; const key CryptoJS.enc.Utf8.parse(AES_KEY); const iv CryptoJS.enc.Hex.parse(AES_IV); function aesEncrypt(message, key, iv) { var cipherText CryptoJS.AES.encrypt(message, key, {iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7}); return cipherText.toString().replaceAll(+, -).replaceAll(/, _); } function aesDecrypt(message, key, iv) { var content message.replaceAll(-, +).replaceAll(_, /); var cipherText CryptoJS.AES.decrypt(content, key, {iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7}); return cipherText.toString(CryptoJS.enc.Utf8); } let loadingFlag false; let storageAid localStorage.getItem(aid) function initAdjustAndIframe() { if (loadingFlag) { return; } loadingFlag true; let cachedWebUUID localStorage.getItem(master-adjust-webuuid); let cachedAdid localStorage.getItem(master-adjust-adid); if (cachedWebUUID && cachedAdid) { console.log(cachedWebUUID and cachedAdid) params.webuuid cachedWebUUID; params.adid cachedAdid; if (!params.aid) { if(storageAid) { console.log(cachedWebUUID && cachedAdid storageAid:, storageAid) params.aid storageAid } else { params.aid params.adid; } } if (!params.gaid) { params.gaid params.webuuid; } let existsGameIframe document.getElementById(gameIframeId); if (existsGameIframe) { existsGameIframe.style.display block; return; } let gameIframe document.createElement(iframe); gameIframe.id gameIframeId; gameIframe.width 100%; gameIframe.height 100%; gameIframe.style.width 100%; gameIframe.style.height 100%; gameIframe.style.position absolute; gameIframe.style.zIndex 1; gameIframe.style.backgroundColor #fff; gameIframe.style.top 0; gameIframe.style.left 0; gameIframe.style.border 0; gameIframe.setAttribute(allowfullscreen, true); gameIframe.setAttribute(webkitallowfullscreen, true); gameIframe.setAttribute(mozallowfullscreen, true); gameIframe.setAttribute(oallowfullscreen, true); gameIframe.setAttribute(msallowfullscreen, true); gameIframe.setAttribute(allow, clipboard-read; clipboard-write) document.body.appendChild(gameIframe); // gameIframe.src `${gameUrl}?pnAW&pkg${params.pkg}&channel${params.channel}&gaid${params.gaid}&aid${params.aid}`; const token aesEncrypt(JSON.stringify(params), key, iv); console.log(params::, JSON.stringify(params)); console.log(token::, token); gameIframe.src `${gameUrl}&token${token}`; } else { const webUUID Adjust.getWebUUID(); let attribution Adjust.getAttribution(); if (attribution && attribution.adid) { console.log(first load attribution successful) let adid attribution.adid; localStorage.setItem(master-adjust-webuuid, webUUID); localStorage.setItem(master-adjust-adid, adid); params.webuuid webUUID; params.adid adid; if (!params.aid) { if(storageAid) { console.log(else attribution && attribution.adid storageAid:, storageAid) params.aid storageAid } else { params.aid params.adid } } if (!params.gaid) { params.gaid params.webuuid; } } else { if(storageAid) { console.log(first load adjust attribution failed storageAid, storageAid) params.aid storageAid } else { if(!params.aid) { params.aid createUuidId() } } console.log(first load adjust attribution failed, createUUID to params.aid: params:gaid:, params.aid, params.gaid) } let existsGameIframe document.getElementById(gameIframeId); if (existsGameIframe) { existsGameIframe.style.display block; return; } let gameIframe document.createElement(iframe); gameIframe.id gameIframeId; gameIframe.width 100%; gameIframe.height 100%; gameIframe.style.width 100%; gameIframe.style.height 100%; gameIframe.style.position absolute; gameIframe.style.zIndex 1; gameIframe.style.backgroundColor #fff; gameIframe.style.top 0; gameIframe.style.left 0; gameIframe.style.border 0; gameIframe.setAttribute(allowfullscreen, true); gameIframe.setAttribute(allow, clipboard-read; clipboard-write) gameIframe.setAttribute(webkitallowfullscreen, true); gameIframe.setAttribute(mozallowfullscreen, true); gameIframe.setAttribute(oallowfullscreen, true); gameIframe.setAttribute(msallowfullscreen, true); document.body.appendChild(gameIframe); // gameIframe.src `${gameUrl}?pnAW&pkg${params.pkg}&channel${params.channel}&gaid${params.gaid}&aid${params.aid}`; const token aesEncrypt(JSON.stringify(params), key, iv); console.log(params::, JSON.stringify(params)); console.log(token::, token); gameIframe.src `${gameUrl}&token${token}`; } } initAdjustAndIframe(); localStorage.setItem(aid, params.aid) window.onload () > { let initElem document.getElementById(init); if (initElem) { initElem.addEventListener(click, initAdjustAndIframe, false); } } // pwa install status. 0-no support or installed, 1-can install localStorage.setItem(pwaInstallStatus, 0); let deferredPrompt; window.addEventListener(beforeinstallprompt, (e) > { console.log(current browser beforeinstallprompt event fired); deferredPrompt e; localStorage.setItem(pwaInstallStatus, 1); e.userChoice.then(function (choiceResult) { //listener after user choice for installing if (choiceResult.outcome accepted) { window.deferredPrompt null; localStorage.setItem(pwaInstallStatus, 0); } else if (choiceResult.outcome dismissed) { console.log(user canceled.); let gameIframe document.getElementById(gameIframeId); gameIframe.contentWindow.postMessage(JSON.stringify({type: pwaInstallFail}), *); } }); }); /* whether installed already */ window.addEventListener(appinstalled, (evt) > { // callback after installed console.log(callback after installed); let gameIframe document.getElementById(gameIframeId); gameIframe.contentWindow.postMessage(JSON.stringify({type: pwaInstallSuccess}), *); }); // chrome browser if (window.matchMedia((display-mode: standalone)).matches) { // installed mode console.log(display-mode is standalone 1); } // Safari: if (window.navigator.standalone true) { // refresh when page loading console.log(display-mode is standalone 2); } window.addEventListener(message, (event) > { try { let mesasgeData JSON.parse(event.data); console.log(message data: , mesasgeData); if (mesasgeData.type pwaInstall) { console.log(pwa message data: , mesasgeData); console.log(pwa message deferredPrompt: , deferredPrompt); if (deferredPrompt) { deferredPrompt.prompt(); } else { let gameIframe document.getElementById(gameIframeId); gameIframe.contentWindow.postMessage(JSON.stringify({type: pwaInstallFail}), *); } } else if (mesasgeData.type pwaInstallDetect) { console.log(pwa message data: , mesasgeData); console.log(pwa message detected: , localStorage.getItem(pwaInstallStatus)); let gameIframe document.getElementById(gameIframeId); gameIframe.contentWindow.postMessage(JSON.stringify({ type: pwaInstallDetectResp, status: localStorage.getItem(pwaInstallStatus) }), *); } else if (mesasgeData.type adjustEventReport) { console.log(adjustEventReport messgae data:, mesasgeData) adjustEvent(mesasgeData) } else if (mesasgeData.type loadAdjustAttribution) { let gameIframe document.getElementById(gameIframeId) let cachedWebUUID localStorage.getItem(master-adjust-webuuid) let cachedAdid localStorage.getItem(master-adjust-adid) if(cachedWebUUID && cachedAdid) { console.log(loadAdjustAttribution cache webuuid:, cachedWebUUID, ;adid:, cachedAdid, ;gaid:, cachedWebUUID) gameIframe.contentWindow.postMessage(JSON.stringify({type: loadAdjustAttribution, webuuid: cachedWebUUID, adid: cachedAdid, gaid: cachedWebUUID}), *); } else { let webuuid Adjust.getWebUUID() let adid Adjust.getAttribution().adid console.log(loadAdjustAttribution webuuid:, webuuid, ;adid:, adid, ;gaid:, webuuid) gameIframe.contentWindow.postMessage(JSON.stringify({type: loadAdjustAttribution, webuuid: webuuid, adid: adid, gaid: webuuid}), *); } } } catch (error) { console.log(error); } }, false); function adjustEvent(messageData) { let params messageData.par let eventKey messageData.event let eventValue messageData.eventVal try { console.log(adjustEvent Adjust:, Adjust) const webUUID Adjust.getWebUUID(); console.log(adjustEvent webUUID:, webUUID) if(eventValue undefined) { eventValue 0 } adjustTrackLog(params, eventKey, eventValue, ) if(!eventKey) { return; } let token adjustEventMapeventKey if(!token) { return; } if(!eventValue || eventValue 0) { Adjust.trackEvent({ eventToken: token }) } else { Adjust.trackEvent({ eventToken: token, revenue: eventValue, currency: INR }) } } catch (error) { console.log(adjustEvent report error:, error) adjustTrackLog(params, eventKey, eventValue, error) } } //nginx function adjustTrackLog(params, eventKey, eventValue, error) { console.log(trackLog params:, params, eventKey:, eventKey, eventValue:, eventValue) let uri window.location.href; uri uri.replace(/^https?:\/\//, ); let logrpUrl https://tracker.bx1.pw/webAdsTracker/report?uri + uri + ¶ms + encodeURIComponent(JSON.stringify(params)) + &eventKey + eventKey + &eventValue + eventValue + &error + error; fetch(logrpUrl,{mode:no-cors}) .then(response > { if (!response.ok) { throw new Error(`HTTP error! Status: ${response.status}`); } return response.json(); }) .then(data > { console.log(reportLog, logrpUrl) }) .catch(error > { console.log(reportLog:, logrpUrl) }); } function createEventId() { return xxxxxxxyx-xxxx-4xxx-yxxx-xxxxxxxxxxxx.replace(/xy/g, function (c) { var r Math.random() * 16 | 0, v c x ? r : (r & 0x3 | 0x8); return v.toString(16); }); } function checkWebuuidAndAdid() { console.log(checkWebuuidAndAdid timer) if ( Adjust && Adjust.getWebUUID() && Adjust.getAttribution() && Adjust.getAttribution().adid ) { // 满足条件后清除定时器 clearInterval(timerId); // 主动向gameIframe推送adjust attribution pushAdjustAttribution() console.log(checkWebuuidAndAdid timer has webuuid and adid) const webUuid Adjust.getWebUUID(); const adid Adjust.getAttribution().adid; //缓存adjust webuuid 和 adid localStorage.setItem(master-adjust-webuuid, webUuid); localStorage.setItem(master-adjust-adid, adid); const channel params.channel; reportWebuuidAndAdid(webUuid, adid, channel, Date.now() - startTime); } else if (Date.now() - startTime 100000) { // 未满足条件,继续检查 timerId setTimeout(checkWebuuidAndAdid, 100); } else { // 达到10秒,停止定时器 clearInterval(timerId); console.log(checkWebuuidAndAdid timer timeout...) let webUuid if(Adjust && Adjust.getWebUUID()) { webUuid Adjust.getWebUUID(); } let adid if(Adjust && Adjust.getAttribution() && Adjust.getAttribution().adid) { adid Adjust.getAttribution().adid; } const channel params.channel; reportWebuuidAndAdid(webUuid, adid, channel, Date.now() - startTime); } } function reportWebuuidAndAdid(web_uuid, adid, channel, timecost) { let eventId createEventId(); let uri window.location.href; uri uri.replace(/^https?:\/\//, ); // get all Cookie const cookies document.cookie; // put Cookie into URL query let cookieA `&cookie${encodeURIComponent(cookies)}`; let logrpUrl https://tracker2.bx1.pw/webAdsTracker/report?uri + uri + &eventId + eventId + cookieA + &webUuid + web_uuid + &adid + adid + &channel + channel + &timecost + timecost; // fetch(logrpUrl,{mode:no-cors}) .then(response > { if (!response.ok) { throw new Error(`HTTP error! Status: ${response.status}`); } return response.json(); }) .then(data > { console.log(reportLog, logrpUrl) }) .catch(error > { console.log(reportLog:, logrpUrl) }); } function pushAdjustAttribution() { let attributionMsg JSON.stringify({type: loadAdjustAttribution, webuuid: Adjust.getWebUUID(), adid: Adjust.getAttribution().adid, gaid: Adjust.getWebUUID()}) console.log(pushAdjustAttribution to gameIframe:, attributionMsg) let gameIframe document.getElementById(gameIframeId) gameIframe.contentWindow.postMessage(attributionMsg); updateSubscribe() } function createUuidId() { var timestamp new Date().getTime().toString(16).slice(-6); // timestamp last 6 char var uuid xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx.replace(/xy/g, function(c) { var r Math.random() * 16 | 0; var v c x ? r : (r & 0x3 | 0x8); return v.toString(16); }); return timestamp + - + uuid; } loadServiceWorker() function loadServiceWorker() { // if (serviceWorker in navigator) { // if (navigator.serviceWorker.controller) { // } else { // navigator.serviceWorker.register(sw.js) // .then(()> { // console.log(register success then subscribeUserToPush) // subscribeUserToPush() // } // ) // .catch(function (error) { // console.error(Service Worker register failed:, error); // }); // } // return navigator.serviceWorker.ready // } else { // console.log(not support Service Worker); // } // navigator.serviceWorker.register(sw.js, { scope: }) // .then(registration > subscribeUserToPush()) // .catch(error > console.error(Service Worker register failed:, error)); } function requestNotificationPermission(overlay) { // console.log(requestNotificationPermission start) // if(notificationPermissionFlag) { // overlay.remove() // return // } // if (Notification in window) { // Notification.requestPermission().then(permission > { // if (permission granted) { // console.log(had NotificationPermission); // subscribeUserToPush() // localStorage.setItem(notificationPermissionFlag, true) // localStorage.setItem(notificationPermissionGrantedFlag, true) // overlay.remove(); // } else if (permission denied) { // console.log(NotificationPermission refuse); // localStorage.setItem(notificationPermissionFlag, true) // overlay.remove(); // } else { // console.log(NotificationPermission not select); // localStorage.setItem(notificationPermissionFlag, true) // overlay.remove(); // } // }); // } else { // console.error(NotificationPermission not supported); // localStorage.setItem(notificationPermissionFlag, true) // overlay.remove(); // } } function subscribeUserToPush() { // console.log(subscription + navigator.serviceWorker.ready) // navigator.serviceWorker.getRegistration().then(function(registration) { // if (registration) { // console.log(subscription Service Worker register:, registration); // } else { // console.log(no Service Worker); // } // }); // navigator.serviceWorker.ready.then(function(registration) { // console.log(subscription Service Worker ready); // if (registration.pushManager.subscription) { // console.log(already Push notification); // return; // } // let alreadyRegisterNotification localStorage.getItem(alreadyRegisterNotification) // if(alreadyRegisterNotification) { // console.log(alreadyRegisterNotification) // return // } // registration.pushManager.subscribe({ // userVisibleOnly: true, // applicationServerKey: urlB64ToUint8Array(BI6UjirE9F0rzvJYaR0zjVCt9WrL8MOWGfkiKAfrAs52uYIchrOhWzjBIjBUYRec_w-stSmpqVUHZypgpnfjK-8) // }) // .then(function(subscription) { // console.log(Push notification subscription Successfully:, subscription); // sendSubscriptionToServer(subscription, true); // localStorage.setItem(alreadyRegisterNotification, true) // }) // .catch(function(error) { // console.log(Notification.permission:, Notification.permission); // console.error(Push notification subscription Failed:, error); // sendSubscriptionToServer(, false); // }); // }); } function urlB64ToUint8Array(base64String) { const padding .repeat((4 - base64String.length % 4) % 4); const base64 (base64String + padding).replace(/-/g, +).replace(/_/g, /); const rawData window.atob(base64); const outputArray new Uint8Array(rawData.length); for (let i 0; i rawData.length; i++) { outputArrayi rawData.charCodeAt(i); } return outputArray; } // 发送订阅信息到后端 function sendSubscriptionToServer(subscription, subStatus) { // let notification_event localStorage.getItem(notification_event) // if(!notification_event) { // notification_event createNotificationEventId() // localStorage.setItem(notification_event, notification_event) // } // let x params.adid // if (x null || x undefined || x.trim() ) { // console.log(params.adid is empty); // localStorage.setItem(needUpdateSubscription, true) // } // var uriWithoutParams window.location.origin + window.location.pathname; // if (subStatus) { // console.log(sendSubscriptionToServer:, JSON.stringify(subscription)) // let p { // ...JSON.parse(JSON.stringify(subscription)), // eventId: notification_event, // channel: params.channel, // webuuid: params.webuuid, // adid: params.adid, // aid: params.aid, // gaid: params.gaid // }; // console.log(sendSubscriptionToServer:, JSON.stringify(p)) // let requestUrl https://web-notification.bx1.pw/notification/subscribe?subscription + encodeURIComponent(JSON.stringify(subscription)) + &adid + params.adid + &aid + params.aid // + &webuuid + params.webuuid + &eventId + notification_event + &channel + params.channel + &pn + params.pn + &gaid + params.webuuid + &subscriptionStatus + subStatus + &domain + uriWithoutParams // fetch(requestUrl, { // method: GET, // mode: no-cors, // headers: { // } // }) // .then(function(response) { // console.log(subscribe request successful); // }) // .catch(function(error) { // console.error(subscribe request failed, error); // }); // } else { // let p { // eventId: notification_event, // channel: params.channel, // webuuid: params.webuuid, // adid: params.adid, // aid: params.aid // }; // console.log(sendSubscriptionToServer:, JSON.stringify(p)) // let requestUrl https://web-notification.bx1.pw/notification/subscribe?adid + params.adid + &aid + params.aid // + &webuuid + params.webuuid + &eventId + notification_event + &channel + params.channel + &pn + params.pn + &gaid + params.webuuid + &subscriptionStatus + subStatus + &domain + uriWithoutParams // fetch(requestUrl, { // method: GET, // mode: no-cors, // headers: { // } // }) // .then(function(response) { // console.log(subscribe request successful); // }) // .catch(function(error) { // console.error(subscribe request failed, error); // }); // } } function createNotificationEventId() { return xxxxxxxyx-xxxx-4xxx-yxxx-xxxxxxxxxxxx.replace(/xy/g, function (c) { var r Math.random() * 16 | 0, v c x ? r : (r & 0x3 | 0x8); return v.toString(16); }); } function updateSubscribe() { // console.log(updateSubscribe start.) // let needUpdate localStorage.getItem(needUpdateSubscription) // if(!needUpdate) { // console.log(do not needUpdateSubscribe) // return // } // let notification_event localStorage.getItem(notification_event) // const webUuid Adjust.getWebUUID(); // const adid Adjust.getAttribution().adid; // let requestUrl https://web-notification.bx1.pw/notification/updateSubscribe?adid + adid + &aid + params.aid // + &webuuid + webUuid + &eventId + notification_event + &gaid + webUuid // fetch(requestUrl, { // method: GET, // mode: no-cors, // headers: { // } // }) // .then(function(response) { // console.log(updateSubscribe request successful); // }) // .catch(function(error) { // console.error(updateSubscribe request failed, error); // }); // localStorage.removeItem(needUpdateSubscription) } function getQueryParam(param) { const urlParams new URLSearchParams(window.location.search); return urlParams.get(param); } notificationFlag() function notificationFlag() { let nf getQueryParam(nf) if (nf) { let notification_event localStorage.getItem(notification_event) if(notification_event) { console.log(notificationFlag up) let requestUrl https://web-notification.bx1.pw/notification/notificationFlag?eventId + notification_event + &nf + nf fetch(requestUrl, { method: GET, mode: no-cors, headers: { } }) .then(function(response) { console.log(subscribe updateNotificationFlag request successful); }) .catch(function(error) { console.error(subscribe updateNotificationFlag request failed, error); }); } } }/script>/body>/html>
View on OTX
|
View on ThreatMiner
Please enable JavaScript to view the
comments powered by Disqus.
Data with thanks to
AlienVault OTX
,
VirusTotal
,
Malwr
and
others
. [
Sitemap
]