Search
Write a publication
Pull to refresh

Как я написал системный AdBlock для Windows, который блокирует рекламу на уровне DNS

Level of difficultyEasy

Устали от рекламы казино перед началом любимого сериала? Я тоже. Особенно раздражает, когда она появляется не в браузере, а в стороннем приложении или даже в лаунчере игр. Так появился JxIteraBlock — мой собственный блокировщик рекламы, который работает не через расширение, а на уровне всей системы.

Зачем вообще писать свой AdBlock?

Раньше я пользовался классическими решениями — uBlock Origin, AdGuard, Pi-hole. Но столкнулся с рядом ограничений:

  • Браузерные блокировщики не работают в мессенджерах, играх и лаунчерах.

  • Pi-hole требует отдельного устройства (или виртуалки).

  • Установка и настройка AdGuard требует регистрации и не всегда предсказуема.

Хотелось чего-то:

  • локального (без зависимости от внешнего сервиса),

  • простого (включил — и забыл),

  • гибкого (возможность белого/чёрного списка),

  • действительно системного — чтобы реклама вообще не доходила до приложений.

Так появился JxIteraBlock.

Как работает JxIteraBlock

В основе лежит простой, но эффективный подход — блокировка DNS-запросов. Когда приложение пытается обратиться к рекламному домену (например, ads.example.com), JxIteraBlock перехватывает этот запрос и возвращает пустой ответ или локальный IP.

📌 Это значит:

  • реклама не загружается вообще (в отличие от скрытия средствами CSS);

  • работает во всех приложениях: браузерах, Telegram, Steam, Discord и даже некоторых играх;

  • не зависит от расширений и обходов анти-AdBlock скриптов.

Технически программа реализована как локальный DNS-прокси:

  • При запуске система перенастраивается на использование 127.0.0.1 как DNS-сервера.

  • JxIteraBlock обрабатывает DNS-запросы, сравнивает их с правилами и решает — пропускать или блокировать.

  • Базовые фильтры совместимы с EasyList, но есть и собственные наборы.

Что уже реализовано

✅ DNS-фильтрация рекламы и трекеров

Работает по аналогии с Pi-hole, но без необходимости в отдельном устройстве. Устанавливается и запускается на самой Windows-системе.

✅ Встроенный белый и чёрный список

Можно вручную разрешить домен или, наоборот, заблокировать то, что пропущено в основных фильтрах.

✅ Фоновый режим

Программа сворачивается в трей и не требует постоянного внимания.

✅ Обновляемые списки блокировки

Фильтры регулярно скачиваются с сервера и обновляются автоматически.

✅ Обход блокировок провайдера

JxIteraBlock может использовать внешние "чистые" DNS (например, 1.1.1.1, 8.8.8.8), тем самым открывая доступ к заблокированным сайтам.

Для кого это

  • Геймеры — убираем рекламу в лаунчерах и игровых клиентах.

  • Родители — защита детей от сомнительного контента в приложениях.

  • Разработчики и технические специалисты — оценят приватность и скорость.

  • Обычные пользователи, уставшие от рекламы даже вне браузера.

Планы на будущее

  • ✍️ Граф статистики заблокированных запросов (в реальном времени).

  • 🌍 Поддержка пользовательских DNS-серверов по списку.

  • 💬 Уведомления при блокировке неизвестного домена (по желанию).

  • 🔄 Возможность создания и публикации своих списков блокировки.

Почему решил поделиться

Сначала это был просто pet-проект для себя. Но потом, дав программу друзьям, получил удивительно положительный фидбэк. Люди не верили, что она действительно блокирует рекламу в Discord, Skype и Steam одновременно.

Решил оформить и выложить, чтобы протестировать гипотезу: можно ли сделать простой, но эффективный системный AdBlock без лишнего.

Если интересно, могу опубликовать технические подробности архитектуры (как работает DNS-перехват, какие списки парсит, как реализована фильтрация и обновления).

Где скачать

Программа доступна для Windows 10/11: 👉 Скачать JxIteraBlock (v0.0.9) [🔒 Безопасно, без телеметрии, без скрытых функций]

Если интересно — пишите в комментариях, с радостью отвечу на вопросы, поделюсь опытом и бэклогом.

P.S.

Да, я в курсе, что Pi-hole уже «всё умеет». Но у него нет GUI, не работает без отдельной машины и не очень дружелюбен для обычного пользователя. JxIteraBlock — попытка сделать Pi-hole внутри Windows — в один клик, с треем и автоматикой.

Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.