Как стать автором
Поиск
Написать публикацию
Обновить

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

Уровень сложностиПростой

Устали от рекламы казино перед началом любимого сериала? Я тоже. Особенно раздражает, когда она появляется не в браузере, а в стороннем приложении или даже в лаунчере игр. Так появился 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 — в один клик, с треем и автоматикой.

Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.