Thanks to visit codestin.com
Credit goes to www.scribd.com

0% found this document useful (0 votes)
21 views6 pages

BlockBlockAdBlock-3 User

Uploaded by

usabhprx
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
21 views6 pages

BlockBlockAdBlock-3 User

Uploaded by

usabhprx
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 6

// ==UserScript==

// @name BlockBlockAdBlock
// @namespace ZOWEB
// @version 3
// @description Blocks BlockAdBlock scripts. Toggleable if required.
// @match *://*/*
// @run-at document-start
// @license MIT
// @noframes
// @downloadURL
https://update.greasyfork.org/scripts/373960/BlockBlockAdBlock.user.js
// @updateURL
https://update.greasyfork.org/scripts/373960/BlockBlockAdBlock.meta.js
// ==/UserScript==

function addFunction(func, exec) {


// wait for document.head
const int = setInterval(() => {
if (!document.head) return;

console.debug("Inserting script.");
const script = document.createElement("script");
script.textContent = "-" + func + (exec ? "()" : "");
document.head.appendChild(script);
setTimeout(script.remove.bind(script), 0);

clearInterval(int);
}, 0);
}

addFunction(function() {
let hasEvaled = false, firstEvalId, firstEvalCode;

const oldEval = window.eval;

function runEval(d) {
const id = Math.floor(Math.random() * 20), runChecker =
Math.floor(Math.random() * 255).toString(16);

function b(checker) {
if (checker === runChecker) {
console.warn("bbab * Running eval script!");
return oldEval(d);
} else console.error("bbab * Invalid checker! Eval will only run with
the checker specified.");
}

if (!hasEvaled) {
hasEvaled = true;
firstEvalId = id;
firstEvalCode = runChecker;

runFirstTime();
}

if (localStorage.getItem("bbab") !== "disable") {


console.warn(" * ---- * --- * --- * ---- *");
console.warn("bbab * Eval script was blocked *");
console.warn("bbab * From:", (new Error()).stack.split("\n")[1]);
console.warn("bbab * [ To run this script, type the following into the
console: ]");
console.warn("bbab * [ window._bbab_" + id + "(\"" + runChecker +
"\") ]");
console.warn("bbab * [ To print this script, type the following into
the console: ]");
console.warn("bbab * [ window._bbab_p_" + id + " ]");

window["_bbab_" + id] = a => b(a);


window["_bbab_" + id].toString = () => "[function BlockBlockAdBlock]";
window["_bbab_p_" + id] = d;
} else {
console.warn("bbab * Letting through eval script as we are disabled.");
return oldEval(d);
}

return new Error("Eval script was blocked.");


}

window.eval = d => runEval(d);


window.eval.toString = () => "function eval() {\n [native code]\n}";
window.eval.toString.toString = () => "function toString() {\n [native
code]\n}";

const elem = document.createElement("p");


const targeter = document.createElement("button");
const hider = document.createElement("button");

function runFirstTime() {
console.info("Inserting popup if enabled");

// if we've visited this page multiple times add a popup to say so


if (localStorage.getItem("bbab.visited") === "yes") {
elem.id = "BBAB_POPUP";
elem.style.position = "fixed";
elem.style.bottom = ".5em";
elem.style.right = ".5em";
elem.style.padding = "1em";
elem.style.backgroundColor = "#314159";
elem.style.color = "#eff4ff";
elem.style.borderRadius = "3px";
elem.style.fontFamily = "sans-serif";
elem.style.fontSize = "16px";
elem.style.zIndex = "999999";

const href = document.createElement("a");


href.href = "#";
href.style.color = "#99a9e6";
href.style.textDecoration = "underline";

const reloadLink = document.createElement("a");


reloadLink.href = "#";
reloadLink.style.color = "#99a9e6";
reloadLink.style.textDecoration = "underline";
reloadLink.textContent = "Reload to update";
reloadLink.onclick = location.reload.bind(location, true);

const antiDMCA = document.createElement("small");


antiDMCA.style.fontSize = "0.75em";
antiDMCA.style.display = "none";
antiDMCA.textContent = "Note: blocking BlockAdBlock is not against the
DMCA (as much as they want you to think it is)";
window.addEventListener("keydown", e => {
if (e.key !== "F12") return;
antiDMCA.style.display = "";
});

if (localStorage.getItem("bbab") !== "disable") {


elem.textContent = "Disabling your adblocker on pages you visit
frequently will help them survive. ";
href.textContent = "Turn off BlockBlockAdBlock";

href.addEventListener("click", e => {
e.preventDefault();

localStorage.setItem("bbab", "disable");

elem.remove();
window["_bbab_" + firstEvalId](firstEvalCode);
});
} else {
elem.textContent = "";
href.textContent = "Enable BBAB";

href.addEventListener("click", e => {
e.preventDefault();

localStorage.setItem("bbab", "enable");

elem.textContent = "";
elem.appendChild(reloadLink);
});
}

elem.appendChild(href);
elem.appendChild(document.createElement("br"));
elem.appendChild(antiDMCA);

console.debug("Inserting elem");
document.body.appendChild(elem);
}
localStorage.setItem("bbab.visited", "yes");
}

window.onload = () => {
console.debug("Checking if we've been blocked");

// add another element incase BlockAdBlock does magic


// which seems to hide from MutationObservers????????
targeter.style.zIndex = "999999";
targeter.style.position = "fixed";
targeter.style.left = "4em";
targeter.style.bottom = ".5em";
targeter.style.borderRadius = "3px";
targeter.style.backgroundColor = "#eff4ff";
targeter.style.border = "1px solid #314159";
targeter.style.color = "#314159";
targeter.style.cursor = "pointer";
targeter.style.fontFamily = "sans-serif";
targeter.style.fontSize = "16px";
targeter.style.padding = ".1em .3em";
targeter.textContent = "Delete Annoying Element";

hider.style.zIndex = "999999";
hider.style.position = "fixed";
hider.style.left = ".5em";
hider.style.bottom = ".5em";
hider.style.borderRadius = "3px";
hider.style.backgroundColor = "#eff4ff";
hider.style.border = "1px solid #314159";
hider.style.color = "#314159";
hider.style.cursor = "pointer";
hider.style.fontFamily = "sans-serif";
hider.style.fontSize = "16px";
hider.style.padding = ".1em .3em";
hider.style.transition = "200ms ease-out";
hider.textContent = "[Hide]";

function toggleElements() {
if (localStorage.getItem("bbab.visibility") === "visible") {
targeter.style.display = "none";
elem.style.display = "none";
localStorage.setItem("bbab.visibility", "hidden");

hider.style.bottom = "-.7em";
hider.textContent = "____";
} else {
hider.textContent = "[Hide]";
targeter.style.display = "";
elem.style.display = "";
localStorage.setItem("bbab.visibility", "visible");

hider.style.bottom = ".5em";
}
}

// toggle twice to go back to normal


toggleElements();
toggleElements();

document.body.appendChild(hider);
document.body.appendChild(targeter);

hider.onclick = () => toggleElements();


targeter.onclick = () => {
const overlay = document.createElement("div");
overlay.style.position = "fixed";
overlay.style.zIndex = "99999";
overlay.style.background = "rgba(255,255,255,0.6)";
overlay.style.cursor = "select";
overlay.style.pointerEvents = "none";
overlay.style.border = "1px dashed black";
document.body.appendChild(overlay);

targeter.style.pointerEvents = "none";
targeter.style.opacity = "0.4";
hider.style.pointerEvents = "none";
hider.style.opacity = "0.4";
elem.style.pointerEvents = "none";
elem.style.opacity = "0.4";

let target = {remove(){}};


function mouseMove(e) {
target = e.target;
const targetPos = target.getBoundingClientRect();

overlay.style.top = `${targetPos.top}px`;
overlay.style.left = `${targetPos.left}px`;
overlay.style.width = `${targetPos.width}px`;
overlay.style.height = `${targetPos.height}px`;
}

function mouseDown(e) {
e.preventDefault();

window.removeEventListener("mousemove", mouseMove);
window.removeEventListener("mousedown", mouseDown);
window.removeEventListener("keydown", keyDown);
target.remove();
overlay.remove();

targeter.style.pointerEvents = "";
targeter.style.opacity = "";
hider.style.pointerEvents = "";
hider.style.opacity = "";
elem.style.pointerEvents = "";
elem.style.opacity = "";
}

function keyDown(e) {
console.log(e.key);
if (e.key !== "Esc") return;

e.preventDefault();

window.removeEventListener("mousemove", mouseMove);
window.removeEventListener("mousedown", mouseDown);
window.removeEventListener("keydown", keyDown);
overlay.remove();

targeter.style.pointerEvents = "";
targeter.style.opacity = "";
hider.style.pointerEvents = "";
hider.style.opacity = "";
elem.style.pointerEvents = "";
elem.style.opacity = "";
}

window.addEventListener("mousemove", mouseMove);
window.addEventListener("mousedown", mouseDown);
window.addEventListener("keydown", keyDown);
};

if (localStorage.getItem("bbab") !== "disable" &&


document.getElementById("babasbmsgx") !== null)
document.getElementById("babasbmsgx").remove();
};
}, true);

console.info("You are being protected.");

You might also like