Reverse Engineering MediaCreationTool.exe

The future is less frustrating! I spent about 6 hours the other day trying to create a bootable USB drive so I could re-install Windows 11 on my Alienware Aurora R15 AMD box. I wanted to play Star Craft 2 again and it was crashing on my Bazzite install.

I have done this, what must be, thousands of times since the 90s. I tried all the old ways I knew to do it, then looked up the new ways. Nothing worked. When I did get a Windows Setup screen to boot, it couldn’t detect my hard drive. I tried side-loading the drivers, nothing worked.

MediaCreationTool.exe was Windows only and I didn’t have any windows computers anymore. Just Mac and Linux. Eventually, I remembered by pure chance that I had an Asus ROG hand-held gaming device that ran Windows 11 and had a USB-C port. That worked. I was able to use it to flash the USB, this time the installer recognized much more of my hardware and I installed likely because it came with updated drivers pre-installed.

I woke up this morning still annoyed that something so basic as installing an OS had become so enshitified. And I had a crazy thought.

I downloaded MediaCreationTool.exe to my Mac, and asked Claude to reverse engineer it for the purposes of creating a cross-platform version.

I set Claude to Opus 4.6 Max thinking/effort and gave it a single prompt:

Let’s have some fun and help the indsutry at the same time. I would like to disassemble/reverse engineer the
mediacreationtool.exe in this folder so we can make a cross-platform version for people who only have access to
Mac/Linux. Something Microsoft arguably should be doing to help convert people, but that I had a real need for just
yesterday. Instead of having this tool available, I spent 6 hours trying different things until I ultimately
rememberd that the ONLY windows device I had was a portable gaming console from ASUS. That saved my butt, but it was a pain. If you’re ok with that, then what I’d like to do is first plan out the steps we should take

Claude was game, said it was more like Wine than it was like black hat exploitation and set off. 5 min later it had analyzed the binary, deconstructed the protocols used, and created the plan then started executing on it. The vast majority of the time was spent trying to work around getting IP rate limited/blocked from hitting the server a little too hard in an early attempt.

23 minutes and 38 seconds later it had a working version

According to the status bar the cost was $2.70

Now available, free, open source, works on Mac and Linux:

https://github.com/Xatter/winiso