Logo Helden des Bildschirms
Zurück

Was ist eigentlich der Sinn von Anti-Adblockern / Wie leicht lassen sie sich umgehen

Vorschaubild

Was ist eigentlich der Sinn von Anti-Adblockern?

Das ist eigentlich leicht zu erklären, sie sollen den Nutzer dazu bringen den Adblocker zu deaktivieren.
Das Ziel ist aber nicht der Fachinformatiker, dieser könnte eine solche Blockade im Schlaf umgehen.
Wie das geht, zeige ich unten oder sogar auf der Seite als ironischer Witz. :D
Ich hatte hier vor einigen Jahren auch einen Beitrag veröffentlicht, wie man die meisten Anti-Adblocker umgeht:
Anti Adblock Killer, weg mit der Werbung.

Im Endeffekt geht es nur darum den Aufwand den Adblocker zu deaktivieren leichter zu gestalten, als ihn zu umgehen für den normalen Nutzer.

Die simple Erkennungsfunktion:

Es wird mithilfe von einer Anfrage an Google-Ads-Server geprüft, ob ein Adblocker diese blockiert.

const googleAdUrl = 'https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js'
try {
await fetch(new Request(googleAdUrl)).catch(_ => adBlockEnabled = true)
} catch (e) {
adBlockEnabled = true
} finally {
console.log(AdBlock Enabled: ${adBlockEnabled})
}

Dazu wird noch eine Prüfung des Bereichs vorgenommen, welcher die Werbung enthält.
Ist der Bereich nicht mehr vorhanden oder der Abstand zu klein, wird der Adblocker erkannt, welcher diese Anfragen gefälscht durchlässt.

setTimeout(function() {
var a = document.querySelector('.showads'),
adBlockEnabled = a ? (a.offsetHeight ? false : true) : true;
console.log('ads blocked?', adBlockEnabled)
if (document.querySelector('.showads').offsetHeight <= 65 || document.querySelector('.adsbygoogle').offsetHeight <= 5 || adBlockEnabled == true ) {
alert("Bitte deaktiviere deinen Adblock. :)");
adBlockEnabled = true;
}
}, 200);

Problem, dass passiert alles Clientseitig, wenn etwas Clientseitig passiert, muss man immer Wege suchen, um die Umgehung so schwer zu machen, dass es sich vom Aufwand und Nutzen nicht lohnt es zu umgehen.

In diesem Beispiel könnte man die Prüfung auf Adblocker noch erschweren, indem man den Request an Google in der Funktion erneut durchführt.
Damit Bots zu aufwendig werden, wäre eine Nutzung von reCAPTCHA V2 oder das hinzufügen einer Login-Funktion von anderen Sozialen Netzwerken eine Möglichkeit.


Wie leicht lassen sie sich umgehen?

Wie ich oben schon angedeutet habe, sehr leicht, wenn man weiß, wie sie funktionieren.

Externe Umgehung:

document.querySelector('.showads').offsetHeight = 6;
document.querySelector('.adsbygoogle').offsetHeight = 66;
adBlockEnabled = false;
checkrobot();

Wir versuchen die Funktionsvariablen so zu manipulieren, dass die If Abfrage zu unseren Gunsten verläuft.
Hier könnte man jetzt einfach das Element mit der Größe erstellen und die Variablen neu setzen und zum Schluss die Funktion ausführen.

Injektion Umgehung:

grecaptcha.ready(function() {
grecaptcha.execute('6Lc9k8kfAAAAAAC0AdMMQAZ6u25VOlgzh7L9zbuW', {action: 'submit'}).then(function(token) {
document.getElementById("adkey_text_outinput").value = token;
document.getElementById("adkey_text_input").value = document.getElementById("adkey_text_outinput").value;
}
});
});

Hier bauen wir die Funktion eines Scripts um, um eine Funktion wieder nutzbar zu machen.
In dem Fall wird einfach der Code von dem Anti-Adblock-Script entfernt und direkt der gewünschte Code ausgeführt.
Da es keine Möglichkeit gibt, diese Veränderung der Webseite zu erkennen, mithilfe von einem Hashwert von einem Code-Bereich zum Beispiel, welche man ja auch umgehen kann, ist das ein einfacher Weg.
Der Code kann als Bookmark oder über die Konsole ausgeführt oder direkt in die Seite injiziert werden mittels Plugin und eigener Oberfläche.

Bot Anfrage Umgehung:

https://heldendesbildschirms.dynv6.net/giveaway/index.php&email=email%40web.de&name=Name&adkey_text_input=< AdKey >&subscribe=subscribe&submit=

Die eleganteste Lösung von allen Lösungen, hier wird direkt die gewünschte Anfrage ausgefüllt und an den Server gesendet.


Wer seinen Spaß haben will und etwas Zeitverschwenden möchte, kann das oben gezeigte ja hier mit der momentan noch Demo Page versuchen.
Bitte aber keine DDoS Angriffe, also nicht mit Anfragen bombardieren, ich bin mir sicher ihr könnt das, das müsst ihr nicht zeigen.

Also wir haben gelernt, es geht nur darum normale Nutzer darauf hinzuweisen ihren Adblock doch bitte abzuschalten für diesen Dienst.
Die Umgehung ist immer möglich, da die Kontrolle auf dem Computer des Nutzers geschieht.
Für die Umgehung muss man den Code verstehen können und kann ihn dann auf sehr vielen Wegen umgehen.

Da ich damals Cheats gebaut habe, einfach aus Interesse, fällt mir die Umgehung besonders leicht.
Hier muss man sich nicht mit DMA/Kernel Lücken/Hijacking/Injektions usw. beschäftigen.
Vor ein paar Jahren habe ich darüber auch schon etwas geschrieben (Beitrag), das könnte ich eigentlich auch updaten und ein paar Beispiele (External Menu für Grand Theft Auto V External Go für Counter-Strike: Global Offensive) zeigen, wie sie Funktionieren/Entwicklung/Anti-Cheat-Systeme.


Ich hoffe ihr konntet etwas lernen und ich wünsche viel Spaß beim Zeitverschwenden und freue mich schon über eure Lösungen und Verbesserungen auf beiden Seiten. :)


Empfehlungen:

Notebook:
*Lenovo Legion 5 Laptop 43,9 cm (17,3 Zoll, 1920x1080, Full HD, WideView, entspiegelt) Gaming Notebook (AMD Ryzen 7 5800H, 16GB RAM, 1TB SSD, NVIDIA GeForce RTX 3070, Windows 10 Home) dunkelblau 1.799,00 € (16.05.2022)
*Lenovo Legion 5 Pro Suche

RAM:
*Crucial Ballistix BL2K16G32C16S4B 3200 MHz, DDR4, DRAM, Gaming Kit Speicher für Laptop, 32GB (16GB x2), CL16 75,00 € (21.05.2022)
*Crucial Ballistix BL2K8G32C16S4B 3200 MHz, DDR4, DRAM, Gaming Kit Speicher für Laptop, 16GB (8GB x2), CL16 75,00 € (21.05.2022)
*G.SKILL F4-3200C16D-16GIS Aegis DDR4 16GB PC 3200 CL16 KIT (2x8GB) 65,89 € (21.05.2022)

*Amazon Prime erst probieren, dann zahlen. 10 Euro Rabatt auf die erste Bestellung mit dem Code GIFT10

Als Amazon-Partner verdiene ich an qualifizierten Verkäufen, bei Links mit einem *.

Neutral:
geizhals.de RAM Suche
geizhals.de Notebook Suche

Votes: up: 16 down: 206.05.2022 22:34