Clever hacker fits 537,000 domains in a tiny $5 ESP32 ad-blocking dongle — firmware uses only around 50KB of RAM and can answer blocked lookups in 10 millisecon

Clever hacker fits 537,000 domains in a tiny $5 ESP32 ad-blocking dongle — firmware uses only around 50KB of RAM and can answer blocked lookups in 10 millisecon

Follow Tom's Hardware on Google News , or add us as a preferred source , to get our latest news, analysis, & reviews in your feeds.

Zak is a freelance contributor to Tom's Hardware with decades of PC benchmarking experience who has also written for HotHardware and The Tech Report. A modern-day Renaissance man, he may not be an expert on anything, but he knows just a little about nearly everything. ","collapsible":{"enabled":true,"maxHeight":250,"readMoreText":"Read more","readLessText":"Read less"}}), "https://slice.vanilla.futurecdn.net/13-4-25/js/authorBio.js"); } else { console.error('%c FTE ','background: #9306F9; color: #ffffff','no lazy slice hydration function available'); } Zak Killian Contributor Zak is a freelance contributor to Tom's Hardware with decades of PC benchmarking experience who has also written for HotHardware and The Tech Report. A modern-day Renaissance man, he may not be an expert on anything, but he knows just a little about nearly everything.

wakuwaku no matter how cheap a project is purported to be , as long as it requires you to either own a 3d printer, or get someone to print it for you, IT IS NOT CHEAP . Reply

usertests wakuwaku said: no matter how cheap a project is purported to be , as long as it requires you to either own a 3d printer, or get someone to print it for you, IT IS NOT CHEAP . An ever increasing number of people can get cheap access to a 3D printer through libraries (since nobody reads anymore) or makerspaces. Reply

Unolocogringo Firefox + Ghostery +Malwarebytes Browser guard, makes it simple. No hardware needed. Spybot Anti Beacon takes care of windows telemetry. Simple and effective. Reply

PEnns FireFox + UBlock Origin do it without a 3d printer. But nevertheless, kudos!! Reply

USAFRet wakuwaku said: no matter how cheap a project is purported to be , as long as it requires you to either own a 3d printer, or get someone to print it for you, IT IS NOT CHEAP . I print LOTS of things for friends and coworkers for $0. Reply

krisavi wakuwaku said: no matter how cheap a project is purported to be , as long as it requires you to either own a 3d printer, or get someone to print it for you, IT IS NOT CHEAP . There is no NEED for 3d printer. You can print an enclosure, but you don't have to do it. Reply

krisavi Unolocogringo said: Firefox + Ghostery +Malwarebytes Browser guard, makes it simple. No hardware needed. Spybot Anti Beacon takes care of windows telemetry. Simple and effective. That is so one OS specific answer to some neat thing someone uses. A lot of people use PiHole to block ads/domains on phones. You being able to do something on windows would not do much on phones. This project is nice addition to keeping that blocking working while main system is updating. Reply

darkflib If you are hashing and binary searching, a bloom filter might be a better choice if tuned well. Reply

Unolocogringo krisavi said: That is so one OS specific answer to some neat thing someone uses. A lot of people use PiHole to block ads/domains on phones. You being able to do something on windows would not do much on phones. This project is nice addition to keeping that blocking working while main system is updating. I use the same combo on my android phone, except anti beacon, which is windows specific. Works wonders. Kudos to the maker. It fits his specific need. To the other 90++% of us my combo is simple and effective. For windows, those with the knowledge, would edit the hosts file to achieve the same purpose. And I believe Linux has a similar solution. With my limited use of it for folding. Reply

evermorex76 If there was a power outage why would you keep your wireless network up, plus whatever wired connectivity it uses, plus your Internet service provider's device(s) (my AT&T fiber uses a separate converter rather than an integrated fiber port on the gateway), plus whatever non-wireless devices you might need to stay online, but not keep your PiHole powered, unless you're running it on something ridiculously overpowered? On a Raspberry Pi 4, 15W max and probably a lot less as a PiHole wouldn't exactly drain a UPS like a camel at a trough. You are running right on the edge of capacity if that's the straw that breaks the camel's back for runtime. A Raspberry Pi also doesn't take THAT long to boot, and can be done at a convenient time, although I get that there might be some situations where lookups can't take that long (I think your web browsing, which is where the blocking is needed, would tolerate it). Not saying this device is useless or not a neat piece of work, though, just of very limited utility in most situations, and those situations could be very easily mitigated so it wouldn't be needed. Extended power outage, working solely on a mobile device on Wi-Fi and trying not to use mobile data, stretching out UPS runtime as long as possible with just the ISP gateway connected. 537k domains in 4MB didn't seem like much, but then I realized compressing that data wouldn't be possible with the processing power and limited RAM resulting in the need to read the data directly from the flash each time, which wouldn't allow looking at individual lines from a compressed file. I looked up how hashing reduces the size of the text and just got confused. I get the basic idea but not the exact details. I just have never been able to get my head around concepts like bitwise XOR. The math gives me about 2.56MB of space needed for the data to be stored with 537k domains, and about 48% of that with the second copy of the firmware still there. But you make it sound like he couldn't fit any more domains in the list, and 537k was only after deleting the second firmware copy. Does this device really use roughly 1.4MB of its storage space just for each copy of the firmware out of the box? That doesn't leave much for the user to actually do anything with it. I guess it's a very limited device so the limited amount of work it can do means not needing much stuff to be stored, and projects needing more storage would probably need a more powerful device anyway. I'm surprised 4MB chips are even produced anymore, or such tiny RAM chips. If 256k was the original number, but he was able to expand that to 537k, the wording in the article implies there were even more domains but there wasn't space. How is the software choosing which domains to include in the list if the collection of blocklists includes more unique domains than the storage can hold? Does it just drop blocklists one by one until the list is small enough (maybe looking at the number in each blocklist and figuring out a combination of them that would remove the right number, rather than a fixed order that might drop too many unnecessarily)? Then if one of the blocklists grows, it could cause the list to get too big and the device would need to drop even more blocklists. It would constantly become less and less effective at its job as there were more and more domains that it wasn't blocking, but also increasing the size of the list would provide more chances for collisions in the hashes. Was 40 bits chosen specifically as a match to the possible number of domains that could be stored, so doing this with more storage space and more domains would almost immediately require larger hashes to allow for an acceptably low chance of collision? I've considered network level blocking devices a few times, but not being able to manage a single device's access quickly makes it no good for me. With browser extensions, it's just a couple of clicks to temporarily or permanently unblock a site to allow scripts or ads if I need it to work for one piece, but not clutter a permanent allow list, or use a different browser that doesn't have blocking enabled. I use AdGuard's free service on my phone, and it's annoying to not be able to read some sites because an ad domain is blocked so the page blocks the content, and I can't choose to allow it. Reply

Key considerations

  • Investor positioning can change fast
  • Volatility remains possible near catalysts
  • Macro rates and liquidity can dominate flows

Reference reading

More on this site

Informational only. No financial advice. Do your own research.

Leave a Comment