Pull to refresh

Обход блокировки баннера AdBlock Plus и Adguard + Anti-Adblock

Reading time 3 min
Views 62K
Всё больше и больше веб-мастера задаются вопросом, как же обойти блокировку баннера и вывести из строя расширение AdBlock Plus и Adguard?
Оказывается, осуществить обход блокировки баннеров можно при помощи JavaScript и HTML, используя альтернативные теги, например, DIV.

Итак, что же нам потребуется?

  • Базовые знания JavaScript;
  • Базовые знания HTML.


Приступим


Давайте рассмотрим следующий JavaScript код (код полностью рабочий):

/**
	@name: Banner Creater
	@versoin: v. 0.4 final
	@author: Mr.MEX
	@site: hyperworld.ru
*/
function bannerCreater(opt){
	opt = opt || {};
	var h = opt.h,
		w = opt.w,
		link = opt.link,
		img = opt.img,
		title = opt.title,
		target = opt.target,
		attach = opt.attach,
		create = true,
		div = document.createElement('div'),
		result = '',
		words = '0123456789qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM',
		max_position = words.length - 1,
		logging = opt.logging
	;
	for(i = 0; i < 10; ++i) {
		position = Math.floor (Math.random() * max_position);
		result = result + words.substring(position, position + 1);
	}
	var idgen = result;
	if (h == null) {
		h = 60;
	} else if (w == null) {
		w = 468;
	} else if (link == null) {
		console.error('Не указана ссылка, баннер не будет создан.');
		create = false;
	} else if (img == null) {
		console.error('Не указана ссылка на изображение, баннер не будет создан.');
		create = false;
	} else if (title == null) {
	
	} else if (target == null) {
		target = '_blank';
	} else if (attach == null) {
		console.error('Не указан id элемента, в который будет встроен баннер, баннер не будет создан.');
		create = false;
	} else if (logging == null){
		logging = false;
	}
	if (create == true) {
		div.setAttribute('id',idgen);
		div.setAttribute('style','width:'+w+'px !important;height:'+h+'px !important;background-image:url(\''+img+'\') !important;background-repeat:repeat repeat !important;background-position:center center !important;cursor:pointer !important;');
		if (title) {
			div.setAttribute('title',title);
		}
		div.setAttribute('onclick', 'window.open(\''+link+'\', \''+target+'\')',0);
		document.getElementById(attach).appendChild(div);
		if (logging == true){
			console.log('Успешно создан баннер для сайта '+link+' с ID: '+idgen+', размерами '+w+'x'+h+'px в блоке '+attach+'.');
		}
	}
}

Вроде всё просто, не правда ли?

Давайте сделаем пример.

JavaScript:

bannerCreater({
	attach: 'hsBnr', // Айди куда аттачим
	w: 468, // Ширина баннера
	h: 60, // Высота баннера
	link: 'http://coffeebreak.rusff.ru/', // Линк на сайт
	img: 'http://savepic.net/5248295.png', // Изображение (не должно нести в себе 468x60, иначе блокировщик спалит)
	title: 'Ролевой Каталог CoffeeBreak', // Тайтл (хинт) при наведении курсора
	target: '_blank', // Таргет (режим открытия новой ссылки)
	logging: true // Включить логгинг
});


HTML:

<div id="bannerContainer"></div>
<script>createBanner();</script>

Вот пример:

image
Рабочий пример на JSfiddle.
Как видно, ни Adguard, ни AdBlock Plus баннер не заблокировали.

Выводим из строя Adguard и AdBlock Plus в браузерах Webkit (Yandex, Amigo), Blink (Google Chrome, Opera)


Встраиваем в страницу JavaScript код (можно создать js и приаттачить в шапку страницы):

/**
	@name: Anti-AdBlock for Webkit Browsers
	@version: 0.2 dev. 3
	@author: Mr.MEX
	@site: hyperworld.ru
*/
function antiadblock(){
	var var1 = $('iframe[style="visibility: visible; position: fixed !important; display: block !important; border: 0px !important; -webkit-box-shadow: rgba(0, 0, 0, 0.498039) 5px 5px 20px; z-index: 2147483647; left: 50px; top: 50px; width: 416px; height: 195px; opacity: 0.7;"]'),
		var2 = $('iframe[style="visibility: visible; position: fixed !important; display: block !important; border: 0px !important; -webkit-box-shadow: rgba(0, 0, 0, 0.498039) 5px 5px 20px; z-index: 2147483647; left: 50px; top: 50px; width: 416px; height: 195px;"]'),
		var3 = $('iframe[id="adguard-assistant-dialog"]'),
		var4 = $('iframe[class="sg_ignore adg-view-important"]'),
		div = $('div[class="__adblockplus__overlay"]'),
		div2 = $('div[class="sg_border"]'),
		div3 = $('div[class="sg_border sg_bottom_border"]')
	;
	var1.remove();
	var2.remove();
	var3.remove();
	var4.remove();
	div.remove();
	div2.remove();
	div3.remove();
	setTimeout(function(){antiadblock();},250);
}
console.info('Скрипт Anti-AdBlock сейчас будет запущен...');
antiadblock();
console.info('Скрипт Anti-AdBlock работает.');

И что же этот скрипт делает?

А делает он кое что прекрасное, а именно, удаляет все теги, которые были встроены расширениями Adguard и Adblock Plus.

Когда начинает работать данный скрипт?

Работать он начинает тогда, когда пользователь решит заблокировать баннер вручную, но у него это не выйдет. При попытке блокировки расширение попросту «вешается».

Заключение


Нет ничего проще, чем взять обмануть да ещё и поломать расширения блокировки рекламы.
Знаю, что есть множество других решений, но я решил сделать что-то своё.

Всем удачи!
Tags:
Hubs:
-5
Comments 25
Comments Comments 25

Articles