Skip to content

lastref/MSBlock

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MSBlock — Tam Kapsamlı Reklam Engelleyici

Full-featured MV3 ad blocker for Chrome/Brave/Edge/Opera. Blocks YouTube ads without ever breaking video playback. 212k+ network rules, cosmetic filtering, scriptlets, element picker. Zero telemetry, zero remote code. English docs: see code comments; UI is Turkish.

Chrome, Brave, Edge ve Opera'da çalışan; YouTube reklamlarını video oynatmayı bozmadan engelleyen; internetteki reklamları, izleyicileri ve zararlı alan adlarını kaynağından kesen Manifest V3 tarayıcı eklentisi.

Tüm işlem cihazınızda gerçekleşir. MSBlock hiçbir veri toplamaz, hiçbir sunucuya bilgi göndermez, uzaktan kod çalıştırmaz.

superadblocktest %82 adblock-tester 100/100
superadblocktest.com: %82 (engelleyicisiz %6) adblock-tester.com: 100/100
YouTube reklamsız TRT canlı reklamsız
YouTube: reklamsız, kesintisiz oynatma TRT 1 canlı: anti-adblock duvarı atlatıldı, yayın akıyor

Neden MSBlock?

MSBlock uBlock Origin Lite AdBlock Plus DNS engelleyici (Pi-hole vb.)
Chrome MV3'te tam çalışır
Ağ kuralı sayısı 212.085 ~50-100k (varsayılan az) daha az listeye bağlı
Kozmetik filtreleme (boş kutu kalmaz) ✅ 22.9k seçici kısıtlı ❌ yapamaz
Scriptlet / anti-adblock savunması ✅ 2.026 alan kısıtlı
Öğe seçici (tıkla-gizle)
Kendi filtrelerini yazma ✅ ağ + kozmetik alan bazlı
YouTube reklam engelleme ✅ 3 katman kısmi kısmi ❌ (video kırar!)
Anti-adblock duvarı atlatma ✅ 3 katman (mock SDK + scriptlet + duvar sökücü)
Video oynatma garantisi derleyici seviyesinde ❌ googlevideo riski
"Kabul edilebilir reklam" istisnası ❌ yok yok ⚠️ varsayılan AÇIK yok
Veri toplama / telemetri ❌ sıfır sıfır ⚠️ sıfır
Türkçe reklam listesi + arayüz ✅ dahili manuel
Zararlı yazılım koruması (URLHaus) listeye bağlı

Fark yaratan iki tasarım kararı:

  1. Video asla kırılmaz. DNS/hosts tabanlı çözümler googlevideo.com sunucularını engelleyip videoların kendisini bozar. MSBlock derleyicisi bu sınıf kuralları derleme anında reddeder ve test paketi her derlemede "hiçbir kural video URL'siyle eşleşemez" garantisini doğrular.
  2. Skor için site kırılmaz. Çerez onay platformları, A/B test araçları gibi "engellenirse site bozulur" alanlar bilinçli olarak engellenmez — uBlock Origin felsefesi: reklamı engelle, web'i kırma.

Özellikler

  • 216.000+ ağ kuralı — EasyList, EasyPrivacy, uBlock Origin filtreleri (ads + privacy + badware + unbreak + quick-fixes), AdGuard DNS filtresi, anti-adblock circumvention listeleri (abp-filters-anti-cv + AdGuard antiadblock), Peter Lowe, URLHaus zararlı yazılım listesi ve Türk reklam listesinden derlenir
  • Anti-adblock atlatma (3 katman) — "reklam engelleyici tespit edildi" duvarları yüzünden açılmayan video ve siteler açılır:
    1. Sahte IMA/GPT SDK yönlendirmesi — Google IMA/GPT reklam SDK'ları engellenmek yerine zararsız taklitlerine yönlendirilir; oynatıcı SDK'yı "yüklendi" görür, reklam ister, "reklam yok" yanıtı alır, içeriği oynatır. tabii.com ve TRT canlı yayın bu yöntemle sorunsuz açılır.
    2. Scriptlet motoruabort-current-inline-script, set-constant, override-property-read, no-setTimeout-if, no-setInterval-if, prevent-eval-if, nowebrtc scriptlet'leri; 10.000+ alanda anti-adblock tespit betiklerini etkisizleştirir
    3. Genel duvar sökücü — listede olmayan siteler için: tüm ekranı kaplayan "reklam engelleyici" uyarı katmanını kaldırır, kaydırmayı geri açar, duraklatılan videoyu devam ettirir (yalnızca gerçek adblock duvarlarında; giriş/çerez/paywall modallarına dokunmaz)
  • Kozmetik filtreleme — 13.700+ genel seçici ve 9.200+ alana özel seçici; sayfaya USER origin CSS ile enjekte edilir, sayfa bunu ne görebilir ne kaldırabilir
  • Scriptlet motoru — uBlock Origin scriptlet'lerinin derlenmiş alt kümesi (set-constant, json-prune, abort-on-property-read/write); 2.000+ alanda anti-adblock savunması. Tamamı paketle gelir, uzaktan kod yok
  • YouTube: üç katmanlı koruma
    1. Ağ katmanı: yalnızca reklam uçları (/api/stats/ads, /pagead/ …) engellenir — googlevideo.com video sunucularına asla dokunulmaz
    2. Veri katmanı: JSON.parse / Response.json kancaları oynatıcı yanıtından adPlacements, adSlots, playerAds alanlarını temizler
    3. Oynatıcı katmanı: yine de sızan reklam (ör. sunucu taraflı eklenen) anında atlanır (sustur → 16x hızlandır → sona sar → "Atla"ya bas); anti-adblock uyarı pencereleri otomatik kapatılır
  • Öğe seçici — sayfadaki herhangi bir öğeyi tıklayıp kalıcı olarak gizle (kendi filtrelerine yazılır)
  • Site bazlı izin listesi — tek tuşla bu sitede engellemeyi kapat (Alt+Şift+B kısayolu)
  • Kendi filtrelerin — ABP/uBO söz dizimiyle ağ ve kozmetik filtre yaz
  • Rozet sayacı — sekmede engellenen istek sayısı
  • Hızlı düzeltmeler — uBO quick-fixes listesi (yalnızca resmî adresten, isteğe bağlı, günlük) dinamik kurallara işlenir; içerik yalnızca veri olarak ayrıştırılır

Kurulum (geliştirici modu)

  1. Tarayıcıda chrome://extensions (Brave: brave://extensions, Edge: edge://extensions, Opera: opera://extensions) aç
  2. Sağ üstten Geliştirici modunu aç
  3. Paketlenmemiş öğe yükle → bu klasörü (MSBlock) seç

Firefox notu: Firefox MV3'te arka plan "event page" kullanır. manifest.json içindeki background bölümüne "scripts": ["src/background.js"] ekleyip browser_specific_settings.gecko.id tanımlamak gerekir; DNR kural setleri Firefox 113+ ile uyumludur.

Mimari

build/fetch-lists.mjs   → listeleri resmî kaynaklardan indirir (SHA-256 kayıtlı)
build/compile.mjs       → ABP söz dizimi → DNR JSON + kozmetik indeks + scriptlet config
src/lib/abp-parser.mjs  → paylaşılan ayrıştırıcı (derleyici + kullanıcı filtreleri)
src/background.js       → kozmetik enjeksiyon, izin listesi, dinamik kurallar, mesajlaşma
src/content/cosmetic.js → her karede kozmetik CSS talebi (document_start)
src/content/yt-main.js  → YouTube MAIN-world JSON temizliği
src/content/youtube.js  → oynatıcı bekçisi: reklam atlama + anti-adblock kapatma
src/content/scriptlets-main.js → scriptlet motoru (yalnızca paketli config)
src/content/antiadblock.js → genel anti-adblock duvar sökücü (emniyet katmanı)
src/redirect/google-ima.js → sahte Google IMA SDK (reklam duvarlarını atlatır)
src/redirect/gpt.js       → sahte Google Publisher Tag
rulesets/               → derlenmiş kural setleri (9 DNR + kozmetik + scriptlet)

Anti-adblock atlatma nasıl çalışır?

tabii.com / TRT canlı yayın gibi siteler Google IMA reklam SDK'sının (imasdk.googleapis.com/.../ima3.js) yüklenip yüklenmediğini kontrol eder; engellenirse "reklam engelleyici tespit edildi" der ve videoyu duraklatır. MSBlock bu SDK'yı engellemek yerine zararsız bir taklidine yönlendirir (web_accessible_resources + DNR redirect). Oynatıcı SDK'yı yüklenmiş görür → reklam ister → taklit "reklam yok / hata" der → oynatıcı içeriğe geçer. Video dağıtımına (m3u8 manifest, CDN) hiç dokunulmaz, sadece reklam mantığı devre dışı kalır. Liste tabanlı scriptlet'ler ve genel duvar sökücü, IMA kullanmayan diğer siteleri kapsar.

Neden videolar kırılmıyor?

YouTube, reklamları da videoları da aynı CDN'den (googlevideo.com) dağıtır. Hosts tabanlı listeler bazen r3---sn-*.googlevideo.com gibi sunucuları engeller — sonuç: reklam değil, videonun kendisi kırılır. MSBlock derleyicisi bu tür kuralları derleme anında reddeder (isPlaybackBreaking), test paketi de hiçbir derlenmiş kuralın googlevideo/videoplayback ile eşleşemeyeceğini her derlemede doğrular. Reklamlar ağ yerine veri ve oynatıcı katmanında kesilir.

Yeniden derleme

npm run build     # listeleri indir + derle
npm test          # birim + kapsam testleri (30 test)
node test/e2e/run.mjs --runs 5   # gerçek tarayıcıda uçtan uca test

Güvenlik

  • İzinler asgari: declarativeNetRequest, storage, scripting, tabs, alarms
  • eval yok, uzak kod yok, WebAssembly yok; scriptlet'ler paketli ve beyaz listeli
  • Kozmetik seçiciler enjeksiyondan önce sözdizimsel olarak doğrulanır ({ } ; \ ve url() reddedilir)
  • Kullanıcı filtreleri ve quick-fixes içeriği yalnızca veri olarak ayrıştırılır; redirect, csp gibi kod-etkili seçenekler dinamik kurallarda reddedilir
  • Mesajlaşmada alan adı, içerikten değil sender.url'den alınır (sahte mesaj koruması)
  • Hiçbir telemetri, hiçbir dış istek (yalnızca isteğe bağlı quick-fixes güncellemesi, sabit HTTPS adres)

Test sonuçları (gerçek tarayıcı, 5 tur)

Test Engelleyicisiz MSBlock
superadblocktest.com %6 %82
obfusgated.com ad-block-test %14 %85
adblock-tester.com 43/100 100/100
canyoublockit.com extreme reklamlar yüklendi tüm bölmeler boş
YouTube (monetize video) reklam yedi, video gecikti reklamsız, kesintisiz
TRT 1 canlı / tabii.com "reklam engelleyici tespit edildi" duvarı duvar yok, yayın akıyor

Ayrıntı, tur-tur tutarlılık tablosu ve "kalan %15 neden bilinçli engellenmiyor" analizi: TEST-RESULTS.md. Ham JSON + ekran görüntüleri: test/e2e/results/.

About

Tam kapsamlı MV3 reklam engelleyici — YouTube reklamlarını video oynatmayı bozmadan engeller. Full-featured MV3 ad blocker, YouTube-safe by design. 212k+ rules, cosmetic filtering, scriptlets, zero telemetry.

Topics

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors