Reverse engineering dongle protected software
I was young, the internet just started and we could get tons of software for free. It was free because somebody out there was “kind” enough to crack/patch the .exe file.
I’ve put “kind” between quotes, because this was the view I had when I was a kid. Now I’m a software engineer and I know how much effort it takes to build software. So please, don’t download cracked software. Support the developer and buy a licence!
Applying such a crack, patching the exe, I always wanted to know how to do such a thing. It turns out you need to understand assembler, a machine language only your CPU understands (and some other nerds out there). As it was too difficult, I never got around to learning it. Until recently (like 20 years later 😊).
A year ago, I bought software (with a license!) that needs a USB dongle to work. It is really cumbersome to have that dongle with you at all time. Especially when you’re on the road. So I looked for ways around it. The first thing I came across was this key emulator called MultiKey. It dumps the memory of your dongle to your registry and then emulates your dongle by reading from your registry. That worked OK, until I wanted to run it on Windows 10. Apparently, Microsoft isn’t such a big fan of MultiKey. In reality it’s not a big fan of unsigned drivers and MultiKey uses an unsigned driver. So…