您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Masque Tampermonkey + bloqueurs anti-bypass (Revbid, Coinzilla, Netpub...)
// ==UserScript== // @name Anti-Adblock & Bypass Cloaker // @namespace elite.bypass // @version 1.0 // @description Masque Tampermonkey + bloqueurs anti-bypass (Revbid, Coinzilla, Netpub...) // @author Abdelali // @match *://*/* // @run-at document-start // @grant none // ==/UserScript== (function () { 'use strict'; // Étape 1 - Camoufler Tampermonkey const oldDefineProperty = Object.defineProperty; Object.defineProperty = function (obj, prop, descriptor) { if (prop === '__tampermonkey__') return; return oldDefineProperty(obj, prop, descriptor); }; const oldCall = Function.prototype.call; Function.prototype.call = function (...args) { if (this.name === 'toString' && args[0] && args[0].__tampermonkey__) return () => ''; return oldCall.apply(this, args); }; // Étape 2 - Bloquer les scripts des régies avant chargement const blockedPatterns = [ "prebid.revbid.net", "fstatic.netpub.media", "moonboom.net/public/banner.js", "shareus.io/scripts/tag/js/gpt.js", "static.criteo.net/js/ld/publishertag.prebid.js", "cdn.id5-sync.com/api" ]; const observer = new MutationObserver((mutations) => { for (const mutation of mutations) { for (const node of mutation.addedNodes) { if (node.tagName === 'SCRIPT' && node.src) { if (blockedPatterns.some(pattern => node.src.includes(pattern))) { node.remove(); console.warn("❌ Script publicitaire bloqué :", node.src); } } } } }); observer.observe(document.documentElement, { childList: true, subtree: true }); // Étape 3 - Faux positifs (anti-adblock) Object.defineProperty(window, "adblock", { value: false }); Object.defineProperty(window, "adBlockActive", { value: false }); Object.defineProperty(window, "isUsingAdblocker", { value: false }); Object.defineProperty(navigator, "userAgent", { get: () => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 Chrome/119.0.0.0 Safari/537.36" }); // Étape 4 - Cacher les extensions try { delete window.chrome.runtime; } catch (e) {} // Étape 5 - Surpasser les tests fetch / XHR si nécessaire const originalFetch = window.fetch; window.fetch = async (...args) => { const url = args[0]; if (blockedPatterns.some(p => url.includes(p))) { return new Response("", { status: 200, statusText: "OK" }); } return originalFetch(...args); }; const OriginalXHR = window.XMLHttpRequest; function FakeXHR() { const xhr = new OriginalXHR(); const open = xhr.open; xhr.open = function (method, url, ...rest) { if (blockedPatterns.some(p => url.includes(p))) { this.send = () => { this.readyState = 4; this.status = 200; this.responseText = ''; this.onreadystatechange && this.onreadystatechange(); }; } else { open.call(this, method, url, ...rest); } }; return xhr; } window.XMLHttpRequest = FakeXHR; })();