Skip to content

Commit 6703939

Browse files
authored
Update torupload.txt
1 parent d754eae commit 6703939

1 file changed

Lines changed: 0 additions & 149 deletions

File tree

torupload.txt

Lines changed: 0 additions & 149 deletions
Original file line numberDiff line numberDiff line change
@@ -73,152 +73,3 @@ author: BlazeFTL
7373
});
7474
window.addEventListener('load', () => { observer.disconnect(); Document.prototype.createElement = _origCreate; }, { once: true });
7575
})();
76-
77-
/// blaze-set-useragent.js
78-
/// alias blaze-sua.js
79-
(function() {
80-
const UA_ANDROID = 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Mobile Safari/537.36';
81-
const UA_DESKTOP = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36';
82-
83-
const isMobile = /Android|iPhone|iPad|iPod|Mobile/i.test(navigator.userAgent);
84-
const spoofUA = isMobile ? UA_ANDROID : UA_DESKTOP;
85-
86-
try {
87-
Object.defineProperty(navigator, 'userAgent', {
88-
get: () => spoofUA,
89-
configurable: true,
90-
});
91-
} catch(e) {}
92-
93-
try {
94-
Object.defineProperty(navigator, 'appVersion', {
95-
get: () => spoofUA.replace('Mozilla/', ''),
96-
configurable: true,
97-
});
98-
} catch(e) {}
99-
100-
try {
101-
Object.defineProperty(navigator, 'platform', {
102-
get: () => isMobile ? 'Linux armv8l' : 'Win32',
103-
configurable: true,
104-
});
105-
} catch(e) {}
106-
107-
try {
108-
Object.defineProperty(navigator, 'vendor', {
109-
get: () => 'Google Inc.',
110-
configurable: true,
111-
});
112-
} catch(e) {}
113-
114-
// Spoof navigator.userAgentData (Chrome-only modern UA hints API)
115-
const uadBrands = [
116-
{ brand: 'Google Chrome', version: '137' },
117-
{ brand: 'Chromium', version: '137' },
118-
{ brand: 'Not/A)Brand', version: '24' },
119-
];
120-
const uadBrandsFull = [
121-
{ brand: 'Google Chrome', version: '137.0.0.0' },
122-
{ brand: 'Chromium', version: '137.0.0.0' },
123-
{ brand: 'Not/A)Brand', version: '24.0.0.0' },
124-
];
125-
const uadObj = {
126-
brands: uadBrands,
127-
mobile: isMobile,
128-
platform: isMobile ? 'Android' : 'Windows',
129-
getHighEntropyValues: (hints) => Promise.resolve({
130-
brands: uadBrands,
131-
mobile: isMobile,
132-
platform: isMobile ? 'Android' : 'Windows',
133-
platformVersion: isMobile ? '10.0.0' : '15.0.0',
134-
architecture: isMobile ? 'arm' : 'x86',
135-
bitness: '64',
136-
model: '',
137-
uaFullVersion: '137.0.0.0',
138-
fullVersionList: uadBrandsFull,
139-
}),
140-
toJSON: () => ({}),
141-
};
142-
143-
try {
144-
Object.defineProperty(navigator, 'userAgentData', {
145-
get: () => uadObj,
146-
configurable: true,
147-
});
148-
} catch(e) {}
149-
150-
// Sec-CH-UA header values
151-
const secUA = '"Google Chrome";v="137", "Chromium";v="137", "Not/A)Brand";v="24"';
152-
const secUAMobile = isMobile ? '?1' : '?0';
153-
const secUAPlatform = isMobile ? '"Android"' : '"Windows"';
154-
const secUAFullVer = '"137.0.0.0"';
155-
const secUAPlatformVer = isMobile ? '"10.0.0"' : '"15.0.0"';
156-
const secUAArch = isMobile ? '"arm"' : '"x86"';
157-
const secUABitness = '"64"';
158-
const secUAModel = '""';
159-
const secUAFullVerList = '"Google Chrome";v="137.0.0.0", "Chromium";v="137.0.0.0", "Not/A)Brand";v="24.0.0.0"';
160-
161-
function injectSecHeaders(headers) {
162-
const set = (k, v) => {
163-
try { headers.set(k, v); } catch(e) {}
164-
};
165-
set('sec-ch-ua', secUA);
166-
set('sec-ch-ua-mobile', secUAMobile);
167-
set('sec-ch-ua-platform', secUAPlatform);
168-
set('sec-ch-ua-full-version', secUAFullVer);
169-
set('sec-ch-ua-platform-version', secUAPlatformVer);
170-
set('sec-ch-ua-arch', secUAArch);
171-
set('sec-ch-ua-bitness', secUABitness);
172-
set('sec-ch-ua-model', secUAModel);
173-
set('sec-ch-ua-full-version-list', secUAFullVerList);
174-
set('user-agent', spoofUA);
175-
}
176-
177-
// Proxy fetch to inject Sec-CH-UA headers
178-
const _fetch = window.fetch;
179-
window.fetch = new Proxy(_fetch, {
180-
apply(target, thisArg, args) {
181-
try {
182-
let [input, init] = args;
183-
init = init ? Object.assign({}, init) : {};
184-
const headers = new Headers(init.headers || {});
185-
injectSecHeaders(headers);
186-
init.headers = headers;
187-
args = [input, init];
188-
} catch(e) {}
189-
return Reflect.apply(target, thisArg, args);
190-
}
191-
});
192-
193-
// Proxy XMLHttpRequest.setRequestHeader to inject Sec-CH-UA headers on send
194-
const _open = XMLHttpRequest.prototype.open;
195-
const _send = XMLHttpRequest.prototype.send;
196-
const _setHeader = XMLHttpRequest.prototype.setRequestHeader;
197-
198-
XMLHttpRequest.prototype.open = new Proxy(_open, {
199-
apply(target, thisArg, args) {
200-
thisArg._blazeInjectUA = true;
201-
return Reflect.apply(target, thisArg, args);
202-
}
203-
});
204-
205-
XMLHttpRequest.prototype.send = new Proxy(_send, {
206-
apply(target, thisArg, args) {
207-
if (thisArg._blazeInjectUA) {
208-
const setH = (k, v) => {
209-
try { _setHeader.call(thisArg, k, v); } catch(e) {}
210-
};
211-
setH('sec-ch-ua', secUA);
212-
setH('sec-ch-ua-mobile', secUAMobile);
213-
setH('sec-ch-ua-platform', secUAPlatform);
214-
setH('sec-ch-ua-full-version', secUAFullVer);
215-
setH('sec-ch-ua-platform-version', secUAPlatformVer);
216-
setH('sec-ch-ua-arch', secUAArch);
217-
setH('sec-ch-ua-bitness', secUABitness);
218-
setH('sec-ch-ua-model', secUAModel);
219-
setH('sec-ch-ua-full-version-list', secUAFullVerList);
220-
}
221-
return Reflect.apply(target, thisArg, args);
222-
}
223-
});
224-
})();

0 commit comments

Comments
 (0)