Skip to content

Commit b9913fe

Browse files
authored
Update torupload.txt
1 parent 5764659 commit b9913fe

1 file changed

Lines changed: 35 additions & 109 deletions

File tree

torupload.txt

Lines changed: 35 additions & 109 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,6 @@ author: BlazeFTL
7474
window.addEventListener('load', () => { observer.disconnect(); Document.prototype.createElement = _origCreate; }, { once: true });
7575
})();
7676

77-
7877
/// blaze-set-useragent.js
7978
/// alias blaze-sua.js
8079
(function() {
@@ -113,113 +112,40 @@ author: BlazeFTL
113112
} catch(e) {}
114113

115114
// Spoof navigator.userAgentData (Chrome-only modern UA hints API)
116-
const uadBrands = [
117-
{ brand: 'Google Chrome', version: '137' },
118-
{ brand: 'Chromium', version: '137' },
119-
{ brand: 'Not/A)Brand', version: '24' },
120-
];
121-
const uadBrandsFull = [
122-
{ brand: 'Google Chrome', version: '137.0.0.0' },
123-
{ brand: 'Chromium', version: '137.0.0.0' },
124-
{ brand: 'Not/A)Brand', version: '24.0.0.0' },
125-
];
126-
const uadObj = {
127-
brands: uadBrands,
128-
mobile: isMobile,
129-
platform: isMobile ? 'Android' : 'Windows',
130-
getHighEntropyValues: (hints) => Promise.resolve({
131-
brands: uadBrands,
132-
mobile: isMobile,
133-
platform: isMobile ? 'Android' : 'Windows',
134-
platformVersion: isMobile ? '10.0.0' : '15.0.0',
135-
architecture: isMobile ? 'arm' : 'x86',
136-
bitness: '64',
137-
model: '',
138-
uaFullVersion: '137.0.0.0',
139-
fullVersionList: uadBrandsFull,
140-
}),
141-
toJSON: () => ({}),
142-
};
143-
144-
try {
145-
Object.defineProperty(navigator, 'userAgentData', {
146-
get: () => uadObj,
147-
configurable: true,
148-
});
149-
} catch(e) {}
150-
151-
// Sec-CH-UA header values
152-
const secUA = '"Google Chrome";v="137", "Chromium";v="137", "Not/A)Brand";v="24"';
153-
const secUAMobile = isMobile ? '?1' : '?0';
154-
const secUAPlatform = isMobile ? '"Android"' : '"Windows"';
155-
const secUAFullVer = '"137.0.0.0"';
156-
const secUAPlatformVer = isMobile ? '"10.0.0"' : '"15.0.0"';
157-
const secUAArch = isMobile ? '"arm"' : '"x86"';
158-
const secUABitness = '"64"';
159-
const secUAModel = '""';
160-
const secUAFullVerList = '"Google Chrome";v="137.0.0.0", "Chromium";v="137.0.0.0", "Not/A)Brand";v="24.0.0.0"';
161-
162-
function injectSecHeaders(headers) {
163-
const set = (k, v) => {
164-
try { headers.set(k, v); } catch(e) {}
165-
};
166-
set('sec-ch-ua', secUA);
167-
set('sec-ch-ua-mobile', secUAMobile);
168-
set('sec-ch-ua-platform', secUAPlatform);
169-
set('sec-ch-ua-full-version', secUAFullVer);
170-
set('sec-ch-ua-platform-version', secUAPlatformVer);
171-
set('sec-ch-ua-arch', secUAArch);
172-
set('sec-ch-ua-bitness', secUABitness);
173-
set('sec-ch-ua-model', secUAModel);
174-
set('sec-ch-ua-full-version-list', secUAFullVerList);
175-
set('user-agent', spoofUA);
115+
if (navigator.userAgentData !== undefined) {
116+
try {
117+
Object.defineProperty(navigator, 'userAgentData', {
118+
get: () => ({
119+
brands: [
120+
{ brand: 'Google Chrome', version: '137' },
121+
{ brand: 'Chromium', version: '137' },
122+
{ brand: 'Not/A)Brand', version: '24' },
123+
],
124+
mobile: isMobile,
125+
platform: isMobile ? 'Android' : 'Windows',
126+
getHighEntropyValues: (hints) => Promise.resolve({
127+
brands: [
128+
{ brand: 'Google Chrome', version: '137' },
129+
{ brand: 'Chromium', version: '137' },
130+
{ brand: 'Not/A)Brand', version: '24' },
131+
],
132+
mobile: isMobile,
133+
platform: isMobile ? 'Android' : 'Windows',
134+
platformVersion: isMobile ? '10.0.0' : '15.0.0',
135+
architecture: isMobile ? 'arm' : 'x86',
136+
bitness: '64',
137+
model: isMobile ? '' : '',
138+
uaFullVersion: '137.0.0.0',
139+
fullVersionList: [
140+
{ brand: 'Google Chrome', version: '137.0.0.0' },
141+
{ brand: 'Chromium', version: '137.0.0.0' },
142+
{ brand: 'Not/A)Brand', version: '24.0.0.0' },
143+
],
144+
}),
145+
toJSON: () => ({}),
146+
}),
147+
configurable: true,
148+
});
149+
} catch(e) {}
176150
}
177-
178-
// Proxy fetch to inject Sec-CH-UA headers
179-
const _fetch = window.fetch;
180-
window.fetch = new Proxy(_fetch, {
181-
apply(target, thisArg, args) {
182-
try {
183-
let [input, init] = args;
184-
init = init ? Object.assign({}, init) : {};
185-
const headers = new Headers(init.headers || {});
186-
injectSecHeaders(headers);
187-
init.headers = headers;
188-
args = [input, init];
189-
} catch(e) {}
190-
return Reflect.apply(target, thisArg, args);
191-
}
192-
});
193-
194-
// Proxy XMLHttpRequest.setRequestHeader to inject Sec-CH-UA headers on send
195-
const _open = XMLHttpRequest.prototype.open;
196-
const _send = XMLHttpRequest.prototype.send;
197-
const _setHeader = XMLHttpRequest.prototype.setRequestHeader;
198-
199-
XMLHttpRequest.prototype.open = new Proxy(_open, {
200-
apply(target, thisArg, args) {
201-
thisArg._blazeInjectUA = true;
202-
return Reflect.apply(target, thisArg, args);
203-
}
204-
});
205-
206-
XMLHttpRequest.prototype.send = new Proxy(_send, {
207-
apply(target, thisArg, args) {
208-
if (thisArg._blazeInjectUA) {
209-
const setH = (k, v) => {
210-
try { _setHeader.call(thisArg, k, v); } catch(e) {}
211-
};
212-
setH('sec-ch-ua', secUA);
213-
setH('sec-ch-ua-mobile', secUAMobile);
214-
setH('sec-ch-ua-platform', secUAPlatform);
215-
setH('sec-ch-ua-full-version', secUAFullVer);
216-
setH('sec-ch-ua-platform-version', secUAPlatformVer);
217-
setH('sec-ch-ua-arch', secUAArch);
218-
setH('sec-ch-ua-bitness', secUABitness);
219-
setH('sec-ch-ua-model', secUAModel);
220-
setH('sec-ch-ua-full-version-list', secUAFullVerList);
221-
}
222-
return Reflect.apply(target, thisArg, args);
223-
}
224-
});
225151
})();

0 commit comments

Comments
 (0)