2026/07/20

Adblocker de 500 mil domínios em ESP32

Um programador condensou um adblocker de 500 mil domínios num pequeno ESP32 de baixo custo.

Numa altura em que o Chrome está a dificultar a tarefa dos adblockers, temos mais um exemplo criativo do que é possível fazer-se por apenas alguns euros.

Um programador criou um filtro DNS com bloqueio de publicidade que corre num ESP32-C3, um microcontrolador que custa poucos euros. Apesar do hardware bastante limitado, o projecto consegue bloquear mais de 537 mil domínios, utilizando apenas cerca de 50KB de RAM e respondendo a pedidos bloqueados em aproximadamente 10 milissegundos.

O segredo está na forma como os domínios são armazenados. Em vez de guardar a lista completa em texto, que ultrapassaria as capacidades do pequeno microcontrolador, o sistema converte cada domínio numa hash de 40 bits, organizando tudo numa tabela optimizada que cabe nos 4MB de memória flash do dispositivo. Quando recebe um pedido DNS, o ESP32 gera o mesmo hash e faz uma pesquisa para determinar se o domínio deve ser bloqueado ou encaminhado para um servidor DNS externo.



O projecto foi criado para funcionar como servidor DNS de reserva numa rede doméstica, entrando em acção quando soluções mais completas, como o Pi-hole, ficam indisponíveis. Para aumentar a capacidade de armazenamento, o programador optou por desactivar as actualizações OTA, libertando espaço suficiente para duplicar o número de domínios bloqueados, passando de 250 mil para mais de 530 mil.

Embora não ofereça funcionalidades avançadas como estatísticas detalhadas ou histórico de consultas, a solução destaca-se pela simplicidade, baixo consumo energético, e custo reduzido. Alimentado apenas por uma qualquer porta USB (neste caso foi encaixado numa porta USB do router), este pequeno ESP32 demonstra que é possível criar um sistema de bloqueio de publicidade bastante eficiente com hardware extremamente económico e compacto.

2 comentários:

  1. Não entendo como ele faz para bloquear... Ou seja, mete num USB do router para energia mas como é feito o bloqueio?

    ResponderEliminar
  2. Boas Ricardo. Não é só " mete num USB" Pode ser alimentado por qq porta 5v desde powerbanks, porta usb do router, na PS, primeiro de tudo é ter o repositório e configurar com o teu SSID e passswd em "secrets".. depois deves ir ao IP do teu router e ver que IP apanhou o ESP32-C3 anota esse IP cola no browser e siga. Pronto tens quase isso preparado. Esse IP do ESP32-C3 é que vai servir de DNS nos teus equipamentos na tua rede. Basta pores esse DNS fixo nos teus equipamentos, TV, Smartphones, PC etc.. Vê o short: https://www.youtube.com/shorts/bI-Ds75eXF8

    ResponderEliminar