// ==UserScript== // @name Anti-AdBlocker & DeBlocker // @version 1.1 // @description Remove Anti-AdBlocker & DeBlocker // @author Elwyn // @license MIT // @homepage https://openuserjs.org/scripts/Elwyn/Anti-AdBlocker_DeBlocker // @supportURL https://openuserjs.org/scripts/Elwyn/Anti-AdBlocker_DeBlocker/issues // @namespace https://openuserjs.org/install/Elwyn/Anti-AdBlocker_DeBlocker.user.js // @iconURL data:image/png;base64,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 // @include * // @noframes // @run-at document-start // @grant unsafeWindow // @downloadURL none // ==/UserScript== (function() { var enable_debug = true; // Skip iframes if ( window.location !== window.parent.location ) return; // Exclude domains var excludes = ['360.cn', 'adblockplus.org', 'agar.io', 'aliexpress.com', 'amazon.', 'apple.com', 'ask.com', 'baidu.com', 'bing.com', 'bufferapp.com', 'calm.com', 'chatango.com', 'chromeactions.com', 'dolldivine.com', 'easyinplay.net', 'ebay.com', 'exacttarget.com', 'facebook.com', 'flattr.com', 'flickr.com', 'fsf.org', 'greasyfork.org', 'ghacks.net', 'google.', 'imdb.com', 'imgbox.com', 'imgur.com', 'instagram.com', 'jsbin.com', 'jsfiddle.net', 'linkedin.com', 'live.com', 'mail.ru', 'microsoft.com', 'msn.com', 'openuserjs.org', 'pandoon.info', 'paypal.com', 'pinterest.com', 'plnkr.co', 'popmech.ru', 'preloaders.net', 'qq.com', 'reddit.com', 'stackoverflow.com', 'tampermonkey.net', 'twitter.com', 'vimeo.com', 'wikipedia.org', 'w3schools.com', 'xemvtv.net', 'yahoo.', 'yandex.ru', 'youtu.be', 'youtube.com', 'vod.pl']; if ( new RegExp( excludes.join('|').replace(/\./g,'\.') ).test( location.host ) ) return; // AdBlock Pattern to Search var adblock_pattern = /ad-block|adblock|ad block|bloqueur|bloqueador|Werbeblocker|آدبلوك بلس|блокировщиком/i; var disable_pattern = /kapat|disabl|désactiv|desactiv|desativ|deaktiv|detect|enabled|turned off|turn off|απενεργοποίηση|запрещать|állítsd le|publicités|рекламе|verhindert|advert|kapatınız/i; var is_core_protected = false; var is_anti_adblock = false; var protect_body = false; // HELPER Functions //----------------- function debug( value ) { if ( !enable_debug ) return; if ( typeof value == 'string' ) { console.log( "ANTI-ADBLOCKER: " + value ); } else { console.log( "ANTI-ADBLOCKER: -> "); console.log( value ); } } function addStyle(str) { var node = document.createElement('style'); node.innerHTML = str; document.body.appendChild(node); } function randomInt( min, max ) { // min and max included if ( max === undefined ) { max = min; min = 0; } return Math.floor(min + Math.random() * (max - min + 1)); } function getRandomName( size ) { var chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; var i; var name = ''; for (i = 0; i < (size||randomInt(10,20)); i++) { name += chars.charAt( randomInt(0,chars.length) ); } return name; } function includeElement( el ) { var name = getRandomName(); if ( el.className.length == 0 ) { el.className = name; } else { el.className += ' ' + name; } return '.' + name + ','; } function protectCore() { if ( is_core_protected ) return; is_core_protected = true; // Protect RemoveChild // Blocks the possibility of being able to remove the BODY or the HEAD let $_removeChild = unsafeWindow.Node.prototype.removeChild; unsafeWindow.Node.prototype.removeChild = function( node ) { if ( node.tagName == 'HEAD' || node.tagName == 'BODY' ) return; if ( protect_body && node.parentNode.tagName == 'BODY' ) return; $_removeChild.apply( this, arguments ); }; let $_innerHTML = unsafeWindow.Node.prototype.innerHTML; unsafeWindow.Node.prototype.innerHTML = function( node ) { if ( node.tagName == 'HEAD' || node.tagName == 'BODY' ) return; $_innerHTML.apply( this, arguments ); }; // Protect innerHTML let $_innerHTML_set = Object.getOwnPropertyDescriptor(Element.prototype, 'innerHTML').set; Object.defineProperty(Element.prototype, 'innerHTML', { set: function (value) { if ( this.tagName == 'HEAD' || this.tagName == 'BODY' ) return; //Call the original setter return $_innerHTML_set.call(this, value); } }); } // Main Functions function removeBlackout( el ) { var classes = ''; document.querySelectorAll( 'a,b,center,div,h1,h2,h3,h4,h5,h6,i,font,s,span,strong,p,q,u' ).forEach( ( el ) => { let style = window.getComputedStyle( el ); let height, width; if ( style.getPropertyValue( 'position' ) == 'fixed' ) { height = style.getPropertyValue( 'height' ); width = style.getPropertyValue( 'width' ); if ( ( height == '100%' && width == '100%' ) || ( parseInt( height ) > window.innerHeight - 100 && parseInt( width ) > window.innerWidth - 100 ) ) { classes += includeElement( el ); } } }); if ( classes.length > 0 ) { classes = classes.substring( 0, classes.length - 1 ); debug( 'Blackout classes:' + classes ); // Hide Anti-AdBlocker Blackout Elements addStyle( classes + '{ display: none !important; }' ); // Remove Blur FX of Elements addStyle( '* { -webkit-filter: blur(0px) !important; filter: blur(0px) !important; }' ); } } function removeModal( el ) { debug( 'AntiAdBlocker Found!'); var classes = ''; // Holder of the Modal message for (;;) { classes += includeElement( el ); if ( el.parentNode.tagName == 'BODY' || el.parentNode.tagName == 'HEAD' ) break; el = el.parentNode; } if ( classes.length > 0 ) { classes = classes.substring( 0, classes.length - 1 ); debug( 'Modal classes:' + classes ); // Hide Anti-AdBlocker Modal Elements addStyle( classes + '{ display: none !important; }' ); // Blackout Elements removeBlackout(); // Blocks the possibility of being able to remove the BODY or the HEAD protectCore(); } } document.addEventListener('DOMContentLoaded', function() { // Mutation Observer var MutationObserver = window.MutationObserver || window.WebKitMutationObserver; // Create an observer instance var observer = new MutationObserver( (mutations) => { mutations.forEach( (mutation) => { if ( mutation.addedNodes.length ) { Array.prototype.forEach.call( mutation.addedNodes, (addedNode) => { // skip nodes with undefined text if ( typeof addedNode.innerText == 'undefined' ) return; // skip nodes without text if ( addedNode.innerText.length < 1 ) return; // search texts that ask to deactivate the AdBlock // debug( addedNode.innerText ); if ( adblock_pattern.test( addedNode.innerText ) && disable_pattern.test( addedNode.innerText ) ) { removeModal( addedNode ); } }); } }); }); // Observer observer.observe(document, { childList : true, subtree : true }); let body_style = window.getComputedStyle( document.body ); document.body.style.visibility = 'hidden'; if ( body_style.getPropertyValue( 'visibility' ) == 'visible' ) { protect_body = true; protectCore(); } document.body.style.visibility = 'visible'; },false); })();