Ringo Kakera

[Script] Supprimer les ADF.LY

Recommended Posts

Prérequis :

- Installer Tampermonkey (sur Chrome) ou Greasemonkey (sur Firefox)

- Avoir le script ci-dessous

// ==UserScript==
// @name           adf.ly && lienscash.com && adfoc.us && bc.vc && sh.st bypasser
// @namespace      tag: adfly,lienscash,adfocus,bcvc,shst,bypasser
// @version        1.7
// @description    Ignorar links do adf.ly, lienscash.com, adfoc.us, bc.vc e sh.st.
// @grant          none
// @include        http://q.gs/*
// @include        http://9.bb/*
// @include        http://u.bb/*
// @include        http://j.gs/*
// @include        http://adf.ly/*
// @include        http://www.lienscash.com/l/*
// @include        http://lienscash.com/l/*
// @include        http://adfoc.us/*
// @include        http://bc.vc/*
// @include        http://sh.st/*
// ==/UserScript==

// Current version: check line 4 [@version header]
// Changelog:
// Version 1.7
// - fixed sh.st bypasser.
// Version 1.6.2
// - fixed AGAIN the adf.ly bypasser (really adfly? "hitommy"?)
// Version 1.6.1
// - fixed again the adf.ly bypasser (nice try?)
// Version 1.6
// - reverse engineered new adf.ly protection. Good job, it was /quite/ difficult!
// Version 1.5.1
// - fixed adf.ly bypasser, bimm.in bypasser coming soon...
// Version 1.5
// - fixed adf.ly bypasser. Nice try adf.ly, nice try!
// - fixed bc.vc bypasser.
// Version 1.4.1
// - fixed adfoc.us bypasser
// Version 1.4
// - fixed bc.vc bypasser finally. No more 1 star reviews for me :)
// - fixed the double redirection message.
// Version 1.3
// - fixed a bad typo in bc.vc bypasser, maybe it should fix some problems the users have
// - added a 100% fail safe method for adf.ly bypasser, it should now work for every link!
// - added a small credit string while redirecting, for bad users which do not check for updates! :D
// - added @grant directive as requested by http://wiki.greasespot.net/@grant
// [ not a changelog entry: remember to report any issues to the userscript URL, aka http://userscripts.org/scripts/show/122331 ]
// Version 1.2.1
// - fixed adfly's bypasser bug with urls like adf.ly/number/site.com
// Version 1.2.0
// - bypassed new adfly's protection
// - added new bypasser: bc.vc
// - new script headers added (updating notification?)
// Version 1.1.1
// - small bugfixes
// Version 1.1
// - improvements all around the code
// Version 1.0
// - Initial release

/**
 * NOTE: The real and UNIQUE version of this bypasser is located at http://userscripts.org/scripts/show/122331.
 * Any other page or script which uses this source OR claims to be this script, it is a fake.
 * Please note that the author is named Robertof, and you can check his website at http://r.usr.sh.
 * You can PM me on Userscripts if you find any copy.
 * The last warning: I'm NOT responsible for ANY damages caused by UNOFFICIAL scripts downloaded from
 * websites which aren't http://userscripts.org/scripts/show/122331.
 * Enjoy.
 * Robertof
 */

(function() {
	var loc = document.location.href, interval, secinterval, bypassers = {
		adfly: function() {
			var tehregxp = /var zzz = ['"]([^'"]+)['"]/,
				reg2     = /\/locked(?:\/|\?url=)([a-zA-Z0-9\-_]+)/,
				reg3     = /\d+\/(http.+?)$/i,
				reg4     = /\d+\/([a-zA-Z\-]+\.[a-zA-Z\-]+.*)/i,
				reg5     = /blocked\.php(?:\?t=1)?$/;
			if (loc.match (reg2))
			{
				clearInterval (interval);
				var uri = (reg2.exec (loc))[1];
				document.title = "** Waiting .. **";
				secinterval = setInterval (function() {
					if (document.getElementById ("continue").style.display != "none")
						bypassers.doRedirect ("http://adf.ly/" + uri);
				}, 1000);
			}
			else if (loc.match (reg3))
			{
				clearInterval (interval);
				bypassers.doRedirect ((reg3.exec (loc))[1]);
			}
			else if (loc.match (reg4))
			{
				clearInterval (interval);
				bypassers.doRedirect ("http://" + (reg4.exec (loc))[1]);
			}
			else if (document.head.innerHTML.match (tehregxp))
			{
				document.title = "** adfly bypasser: Bypassing the link... **";
				clearInterval (interval);
				bypassers._inject (function() {
					// set base64 helper for decoding adfly's base64
					// thanks to webtoolkit for the code
					var Base64 = {
						// private property
						_keyStr: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",

						// public method for encoding
						encode: function (input) {
							var output = "";
							var chr1, chr2, chr3, enc1, enc2, enc3, enc4;
							var i = 0;

							input = Base64._utf8_encode(input);

							while (i < input.length) {

								chr1 = input.charCodeAt(i++);
								chr2 = input.charCodeAt(i++);
								chr3 = input.charCodeAt(i++);

								enc1 = chr1 >> 2;
								enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
								enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
								enc4 = chr3 & 63;

								if (isNaN(chr2)) {
									enc3 = enc4 = 64;
								} else if (isNaN(chr3)) {
									enc4 = 64;
								}

								output = output + this._keyStr.charAt(enc1) + this._keyStr.charAt(enc2) + this._keyStr.charAt(enc3) + this._keyStr.charAt(enc4);

							}

							return output;
						},

						// public method for decoding
						decode: function (input) {
							var output = "";
							var chr1, chr2, chr3;
							var enc1, enc2, enc3, enc4;
							var i = 0;

							input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");

							while (i < input.length) {

								enc1 = this._keyStr.indexOf(input.charAt(i++));
								enc2 = this._keyStr.indexOf(input.charAt(i++));
								enc3 = this._keyStr.indexOf(input.charAt(i++));
								enc4 = this._keyStr.indexOf(input.charAt(i++));

								chr1 = (enc1 << 2) | (enc2 >> 4);
								chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
								chr3 = ((enc3 & 3) << 6) | enc4;

								output = output + String.fromCharCode(chr1);

								if (enc3 != 64) {
									output = output + String.fromCharCode(chr2);
								}
								if (enc4 != 64) {
									output = output + String.fromCharCode(chr3);
								}

							}

							output = Base64._utf8_decode(output);

							return output;

						},

						// private method for UTF-8 encoding
						_utf8_encode: function (string) {
							string = string.replace(/\r\n/g, "\n");
							var utftext = "";

							for (var n = 0; n < string.length; n++) {

								var c = string.charCodeAt(n);

								if (c < 128) {
									utftext += String.fromCharCode(c);
								} else if ((c > 127) && (c < 2048)) {
									utftext += String.fromCharCode((c >> 6) | 192);
									utftext += String.fromCharCode((c & 63) | 128);
								} else {
									utftext += String.fromCharCode((c >> 12) | 224);
									utftext += String.fromCharCode(((c >> 6) & 63) | 128);
									utftext += String.fromCharCode((c & 63) | 128);
								}

							}

							return utftext;
						},

						// private method for UTF-8 decoding
						_utf8_decode: function (utftext) {
							var string = "";
							var i = 0;
							var c = c1 = c2 = 0;

							while (i < utftext.length) {

								c = utftext.charCodeAt(i);

								if (c < 128) {
									string += String.fromCharCode(c);
									i++;
								} else if ((c > 191) && (c < 224)) {
									c2 = utftext.charCodeAt(i + 1);
									string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
									i += 2;
								} else {
									c2 = utftext.charCodeAt(i + 1);
									c3 = utftext.charCodeAt(i + 2);
									string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
									i += 3;
								}

							}

							return string;
						}
					};
					// adf.ly updates? Not scaring me! 15/07/13: Take this adfly ^_^
					window.onbeforeunload = null;
					var neededVar = ysmm;
					var __t = neededVar.indexOf ("?");
					var __u = neededVar.indexOf ("!HiTommy");
					if (__u != -1)
						neededVar = neededVar.substr (0, __u);
					if (__t != -1)
						neededVar = neededVar.substr (0, __t);
					/*if (document.head.innerHTML.match (/view6\.js/))
						neededVar = ysmm;
					else
						neededVar = zzz;*/
					if (easyUrl == 'true') {
						document.head.innerHTML = "<title>** Redirect in progress</title>";
						document.body.innerHTML = "Ignorando este link (redirecionando para " + neededVar + "), aguarde...";
						window.location = neededVar;
					} else {
						var f = "", z = "";
						for (var l = 0; l < neededVar.length; l++) {
							if (l % 2 == 0)
								f += neededVar.charAt (l);
							else
								z  = neededVar.charAt (l) + z;
						}
						var result = f + z;
						result     = Base64.decode (result);
						result     = result.substring (result.length - (result.length - 2));
						document.head.innerHTML = "<title>** Redirect in progress</title>";
						document.body.innerHTML = "Ignorando este link (redirecionando para " + result + "), aguarde...";
						window.location = result;
					}
				});
				//bypassers.doRedirect ((tehregxp.exec (document.head.innerHTML))[1]);
			}
			else if (loc.match (reg5))
			{
				clearInterval (interval);
				var errorMsg = "** ERROR: adf.ly detected our bypassing attempt.\n";
				errorMsg    += "Please report the problem on the following url: http://userscripts.org/scripts/discuss/122331 and INCLUDE the adfly link.\n";
				errorMsg    += "Thanks, Robertof (the script author - and note that I'm NOT an Arabian guy or something)";
				alert (errorMsg);
			}
			else {
				clearInterval(interval);
				alert ("Something went wrong! Please report the problem on the following url: http://userscripts.org/scripts/discuss/122331 and INCLUDE the adfly link!");
			}
		},
		lienscash: function() {
			var matches = /<a href="([^"]+)">skip/;
			if (document.body.innerHTML.match (matches))
			{
				clearInterval (interval);
				bypassers.doRedirect ((matches.exec (document.body.innerHTML))[1]);
			}
		},
		adfocus: function() {
			var regxp = /var click_url = ["']([^"']+)["']/;
			if (document.body.innerHTML.match (regxp))
				bypassers.doRedirect ( ( regxp.exec (document.body.innerHTML.replace(/\/\/var\sclick_url\s=.+/, "")) )[1] );
			//alert(document.body.innerHTML.replace(/\/\/var\sclick_url\s=.+/, ""));
		},
		shst: function() {
			var matches = /<a class="skip-btn" href="([^"]+)" id="skip_button">/;
			if (document.body.innerHTML.match (matches))
			{
				clearInterval (interval);
				bypassers.doRedirect ((matches.exec (document.body.innerHTML))[1]);
			}
		},
		bcvc: function() {
			// bypassing this site is harder than expected, because
			// to get the link it does an AJAX request
			// so we should make one too :(
			// inject script
			bypassers._inject (function() {
				// get AJAX data from the page
				var ajaxrx = /\{(opt:'make.+)/; //?rgs:\{[^\}+]\})/;
				if (document.body.innerHTML.match (ajaxrx))
				{
					var p = ajaxrx.exec(document.body.innerHTML)[1];
					// opt:'make_log',args:{aid:626,lid:1689504,oid:1684,ref: ''}},
					p = p.substr (0, (p.length - 1)); // remove final ;
					var _a = eval ('({' + p + ')');
					//alert(_a.args.aid);
					// do request
					document.head.innerHTML = "<title>** Bypassing, please wait..</title>";
					document.body.innerHTML = "Eu vou ignorar este site ruim, por favor, aguarde alguns segundos...<br /><strong style='font-size:18px;' id='sReplace'>0</strong>";
					//alert (_a.opt);
					//return;
					var gayCallback = function (myself, retShit, count) {
						document.getElementById('sReplace').innerHTML = "Try #" + count + ": " + ( count == 1 ? "a few more.." : ( count == 2 ? "just a few tries left.." : ( count == 3 ? "so close.." : ( count == 4 ? "almost done.." : ( count == 5 ? "GOTCHA! (probably)" : (count > 5 ? "wait, what?" : "a moment.." ) ) ) ) ) );
						// scumbag bc.vc which changes ajax.fly.php in ajax.fly2.php :>
						$.post ("http://bc.vc/fly/ajax.fly2.php", retShit, function (res) {
							var jsono = eval ('(' + res + ')');
							if (jsono.message) {
								document.head.innerHTML = "<title>** Redirect in progress **</title>";
								document.body.innerHTML = "Ignorando este link (redirecionando para " + jsono.message.url + "), aguarde...";
								window.location = jsono.message.url;
								return;
							}
							else
								setTimeout (function(){myself (myself, retShit, ++count);}, 1000);
						});
					};
					gayCallback (gayCallback, _a, 0);
					// old code kept for debugging reasons
					/*_a.opt = 'check_log';
					var _intAu = setInterval (function () {
						$.post ('http://bc.vc/fly/ajax.fly.php', _a, function (res) {
							var sonOf = eval ('(' + res + ')');
							if (!sonOf.message)
								return;
							clearInterval (_intAu);
							_a.opt = 'make_log';
							$.post ('http://bc.vc/fly/ajax.fly.php', _a, function (r) {
								var _j = eval ('(' + r + ')');
								if (_j.message) {
									document.head.innerHTML = "<title>** Redirect in progress **</title>";
									document.body.innerHTML = "Ignorando este link (redirecionando para " + _j.message.url + "), aguarde...";
									document.body.innerHTML += "<br />Multiple bad-sites bypasser is brought to you by Robertof. Always check <a href='http://userscripts.org/scripts/show/122331'>this link</a> for updates and to report issues!";
									window.location = _j.message.url;
								}
								else {
									document.body.innerHTML = "bc.vc denied our request, waiting a bit and then reloading..";
									alert (JSON.stringify (_j));
									setTimeout (function() { window.location = document.location.href; }, 3000);
								}
							});
						});
					}, 1000);*/
				}
			});
		},
		doRedirect: function (uri) {
			document.head.innerHTML = "<title>** Redirect in progress **</title>";
			document.body.innerHTML = "Ignorando este link (redirecionando para " + uri + "), agurade...";
			window.location = uri;
		},
		_inject: function (fn) {
			// inject a script into the webpage
			var _scr = document.createElement ("script");
			_scr.appendChild (document.createTextNode ("(" + fn + ")();"));
			(document.body || document.head || document.documentElement).appendChild (_scr);
		}
	};
	if (loc.indexOf ("adf.ly") !== -1 || loc.indexOf ("q.gs") !== -1 || loc.indexOf("9.bb") !== -1 || loc.indexOf ("u.bb") !== -1 || loc.indexOf ("j.gs") !== -1)
		interval = setInterval (bypassers.adfly, 1000);
	else if (loc.indexOf ("lienscash.com") !== -1)
		interval = setInterval (bypassers.lienscash, 1000);
	else if (loc.indexOf ("bc.vc") !== -1)
		bypassers.bcvc();
	else if (loc.indexOf ("sh.st") !== -1)
		bypassers.shst();
	else
		bypassers.adfocus();
})();

Partager ce message


Lien à poster
Partager sur d’autres sites

marche pas chez moi une explication plus détaillé aurez été cool.

Partager ce message


Lien à poster
Partager sur d’autres sites
il y a 14 minutes, mizu a déclaré:

marche pas chez moi une explication plus détaillé aurez été cool.

https://github.com/reek/anti-adblock-killer

Les instructions sont en bas, do you speak very good in english ?

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant