Bypassing arbitrary website restrictions with a user agent switcher

Or how to download a Windows ISO from Microsoft without using the ‘Create Media Tool’

Or how to bypass a “This website was only designed for Chrome because our developers forgot what the Internet was like in 1999” block

Often, I find myself needing a Windows ISO. Thanks to Microsoft’s change in heart (or maybe revenue model) over the last decade, you can now easily download a safe, official ISO from Microsoft direct instead of hunting around on dodgy websites on the internet. However, Microsoft still plays some tricks when it comes to downloading ISOs. I primarily use a Mac as my daily driver, but when I need to download an ISO on a Windows machine, I get a different experience.

When I go to the Windows 10 ISO download page from Microsoft (which, by the way, is – however, given that Microsoft has announced that Windows 10 licenses will no longer be sold after January 31, 2023, I don’t know how long this link will remain valid. You’ve been warned future internet citizen.), Microsoft wants me to use their Media Creation Tool. This is a handy utility if you’re not familar with tools like rufus to create your own media. But the problem I’ve noticed is that even if you just want the ISO, this tool is S-L-O-W-W-W-W. It “preps” and does “cleanup” so it’s more than just a fancy wget or curl tool. And when it downloads the ISO, it seems to download slower than my browser. But I use the same URL from my Mac and obviously it doesn’t prompt me. So how do I get the no nonsense direct ISO? Trick Microsoft into thinking I’m on my Mac!

Whatever browser you use on Windows, there should be an extension that lets you change your User Agent. This is a string your browser sends to the server in the request that says “Hey! I’m Chrome version 109 running the WebKit engine on a Windows 10 amd64 machine.” The server looks at this and goes, “here’s the web page for you that contains content for Windows 10 amd64 machines!” If you’re wondering how websites seem to know how to suggest a download for you, this is basically it.

By switching the user agent, you can have your browser tell the page, “Hey! I’m Chrome 109 running WebKit on an Intel Macintosh running Mac OS X 13.0.1” and then the server returns the page designed for a Mac – since Macs can’t run the Media Creation Tool, you get a page with two download links for 32-bit and 64-bit ISO images.

And just like that, you can download a Windows 10 ISO without any fuss!

You can also do this trick to bypass restrictions set based on your OS and/or browser. I wrote a quick script to detect browser and OS. By default, this is what is shows:

But let’s say that I’m using a site that only works for Firefox on a Mac.

And just like that, I now appear to be using Firefox on a Mac even though I didn’t change systems!

Enjoy your new freedom!

Leave a Comment

Your email address will not be published. Required fields are marked *