Anti-Feature or Feature? Local DRM implementation

Today while walking up and down the hills at fast pace, I remembered something for no reason: How I had to deal with copy protection on extremely expensive specialized software long ago. What baffled me is that well-payed professionals fall for obvious mistakes when designing a protection: Permanent authorization of a computer under full system control by the customer with offline license management does not work. It can't. No matter how well you design your protection, offline license management will be the weakest link of the chain… and it breaks by looking at it once with a mean face.

Okay, what's this about? The software in question was distributed on a standard CD-ROM. After installing it, it was in demo mode. To activate the program, there was the need for an authorization file written by a helper program… which verified the presence of the authorization floppy disk with remaining keys. The floppy would authorize up to five computers at once, but it was also possible to move licenses back to the floppy. That was the weak link! The defeat was inevitable.

floppy5.pngArrow.pngHDD2.png
with the result:
floppy4.pngPlus.pngHDD_Key.png
=================================
===== And the other way round: ======
=================================

HDD_Key.pngArrow.pngfloppy4.png
and the result:
HDD2.pngPlus.pngfloppy5.png

How would one attack this thing and why can't it work even against casual attackers? Let us think about the possible attack surfaces:
  1. Cracking the software -- removing the protection. This is theoretically always possible, but requires very special skills in assembly, reverse engineering, debugging and get arbitrarily ugly… depending on how well the DRM is implemented (encryption, anti-crack, anti-RE…). Having no skills in this regard myself at all, any software is uncrackable for me. Let us just assume they did everything right on the implementation and a talented reverse engineer would need as much time as for cracking Denuvo. (It wasn't the case, but please just pretend it was)
  2. Copy the authorization floppy disk. It was possible in this case, but they used some serious protection on it. Let us just assume they used laser marks/holes (they didn't) which are 100% uncopyable with consumer hardware.
  3. Duplicate installed authorization. Bingo! Anybody can do this.
It turned out that the authorization was a simple hidden binary file… but it's location within the FAT file system was part of data. Don't even think of using Defragmentation tools if you want to keep that software working.
Since the authorization tool allowed moving a license to any Windows drive letter, smart stupid LittleSinchen just thought she could trick the software by using the heavily copy protected floppy disk in drive A:\ to authorize a normal floppy disk in drive B:\ This would produce a portable license (which could also be copied by trivial means). Well… that didn't work. They weren't that stupid: Congratulations, LittleSinchen, you just killed one of five license keys for a 3000 Euro expensive software. Good work, go on! Felt like somebody just slammed their knee into my abdomen.

Okay. Next idea. Can I use imaging software to backup the license? Of course I can! There is nothing it could do to stop me. To catch every possible trick imaginable, I pulled a full image of the complete 30GB HDD. Not on partition level and not a sparse file. Moved the license back to the floppy and restored the image. No matter how they implemented the check, the copy protection on the floppy disk, possible anti-crack… the possibility to move licenses back to the floppy broke the neck of that DRM.

Next up was a brave move: It would have been possible that the floppy contained actually different keys, so I can't uninstall the same key twice from HDD. Turned out: No. I could restore the image again and uninstall an additional key. The authorization software was well-behaved and increased a simple integer back to 5.
Even more brave: What would happen if the floppy had the full 5 keys an I was to uninstall another one? Would the protection acknowledge the obvious tampering and format the protected floppy disk as a cruel punishment? No, it didn't. It increased the number to 6 and 7 and...
Then I went a step further, created two tiny 100 MB partitions, installed a key on one and used the DOS version of Norton Ghost to duplicate the partition. Full HDD images were serious overkill resulting in long wait times. Partition level was enough. Now I could increase my key creations to about two in five minutes. At this point the protection was finished.

It was a little later that I found out the whole protected floppy disk could be copied with PC hardware (the floppy controller in common PCs can in fact evaluate/read things it can't write, but this disk was within range which surprised me).

I have to repeat the main point: Just using the end user interface and imaging software, the protection module itself would produce as many licenses as desired. It provides zero protection against any attacker. No matter how good the actual implementation is, there is no way to prevent this, when allowing moving licenses back.

Back to the title. Anti-Feature or Feature? While I consider any DRM an anti-feature (and this isn't an exception), the nonsense idea of trusting the PC under full user control is so d*mn facepalm-worthy that I would say it is a feature.🤦‍♀️ From the perspective of the software vendor buying a protection on the other hand… Money well wasted!
crying-with-laughter-gif.317247




If anybody got through this… as always: Thanks for reading.

Comments

One possibility is that they knew about this vulnerability, but they were hoping to prevent casual piracy since it still requires some effort (compared to say using the same (pre XP) Windows key on all machines) and increase the chances of any prosecution if any companies using this process were caught since it requires effort (e.g. the BSA's snitch hotline).

In a pre-online based DRM, there was little you could really do without much higher cost such as hardware dongles or technicians.
 
One possibility is that they knew about this vulnerability, but they were hoping to prevent casual piracy since it still requires some effort (compared to say using the same (pre XP) Windows key on all machines) and increase the chances of any prosecution if any companies using this process were caught since it requires effort (e.g. the BSA's snitch hotline).

In a pre-online based DRM, there was little you could really do without much higher cost such as hardware dongles or technicians.
The Windows 95/NT keys were pretty easy to crack, the numbers have to be divisible to 21 so in theory '420' can be essentially a product key. It wasn't until by Windows 98 that they changed the algorithm entirely to letters instead of numbers.
 
Last edited:
  • Like
Reactions: KleinesSinchen
One possibility is that they knew about this vulnerability, but they were hoping to prevent casual piracy since it still requires some effort (compared to say using the same (pre XP) Windows key on all machines) and increase the chances of any prosecution if any companies using this process were caught since it requires effort (e.g. the BSA's snitch hotline).

In a pre-online based DRM, there was little you could really do without much higher cost such as hardware dongles or technicians.
I expected some reply about the "casual piracy" stuff. We are talking about extremely expensive software here. In fact they moved -- when floppy drives disappeared completely -- to USB dongle protection, alternatively internet activation (as far as I know with the possibility to move an activation back to the server, which allows at least some duplication for machines that stay offline from there on).

My point is that allowing the customer to move activation data between two computers is a huge security hole: They are defeating their own DRM. Every standard game protection had higher security because it was set to demand the original CD each time starting. Copying a SecuROM CD is way more effort than creating those floppy activations. There is not even "circumvention software" needed (or whatever they call stuff that deals with DRM).

Binding to the physical token "floppy disk" would have been pretty effective without the possibility to restore used keys back. Knowledge about copying those floppies wasn't common (anymore?). And no, VGACopy/386 is not a duplicator for protected floppies (but an excellent tool for non standard formatting and for trying to read dead diskettes).
===============

I've encountered the same mistake way later (about 2009) in different, but equally expensive software that got activated in the very same way as Windows XP phone activation: Hardware ID encoded within a lot of numbers... and a lot of numbers from the software vendor in return. But the system allowed doing the process without external help from there on: Move license from one PC to another:
  • Click on "Import" on new PC, get numbers.
  • Click "Export" on old PC and enter numbers from new PC.
  • Software terminates license on old PC and creates confirmation code for new PC.
In theory it is a "move", not a "copy". The protectionist claimed the system was safe and the customer could not backup the activation (which was pure nonsense marketing claim).
I used this function to activate the program on a virtual machine. The savestate function of VirtualBox allows creating an arbitrary number of confirmation codes. Zero effort: Two clicks and five seconds to restore the terminated license. It is literally a keygen conveniently available within the protection module.

The Windows 95/NT keys were pretty easy to crack, the numbers have to be divisible to 21 so in theory '420' can be essentially a product key. It wasn't until by Windows 98 that they changed the algorithm entirely to letters instead of numbers.
There was something how one could defeat 98 the same way as 95 by manually entering the decoded value into the registry. Maybe I remembered something wrong here.
XP already had a pretty advanced method with higher mathematical background for generating the serials (and a keygen wouldn't help you getting past the online/phone activation -- which can be done now, and back then by using the corporate edition of XP Pro without activation garbage). I would have to look up the details, it is not something easy to understand.
 
  • Like
Reactions: SylverReZ
There was something how one could defeat 98 the same way as 95 by manually entering the decoded value into the registry. Maybe I remembered something wrong here.
No you can't as that is a part of the Setup, once you've installed 98 you can change the registry value to whatever you want regardless if its valid or a bunch of giberish. If you want to automate the Windows 98 installation with a valid product key, make a new file called "MSBATCH.INF" where the setup files are located on the root, and then add the following lines:

Code:
[Setup]
ProductKey="xxxxx-xxxxx-xxxxx-xxxxx-xxxxx"

Replace the 'ProductKey' value with your own.

There are plenty of examples out there as well as a useful tool bundled with the 98 CD that can create an unattended installation INF file automatically, it can be found in "tools\reskit\batch".
XP already had a pretty advanced method with higher mathematical background for generating the serials (and a keygen wouldn't help you getting past the online/phone activation -- which can be done now, and back then by using the corporate edition of XP Pro without activation garbage). I would have to look up the details, it is not something easy to understand.
I've seen people found a way around it by modifying the registry, but that got later patched out by MS as when I try to do it on SP3 it wouldn't let me.
 
Last edited:
  • Like
Reactions: KleinesSinchen
No you can't as that is a part of the Setup, once you've installed 98 you can change the registry value to whatever you want regardless if its valid or a bunch of giberish.
I've looked it up again, but I'm afraid going into details or even providing links may be against GBAtemp rules. Yeah, I know. Tutorial how to pirate Windows 98… highly interesting nowadays.
What I can say:
Depending on the version (OEM or full) Windows 98 will either install completely before asking for the key or the other way round. If it install completely, at least in the first edition, it is possible to boot safe mode and set the registry value.
There even is a sequence of only two commands within the DOS program debug.exe for supposedly patching out the serial check from a file called pidgin.dll

I haven't checked it.
=====

As for the XP activation registry hacks: They never worked for me ("New!!! 100% working!!!" YouTube video…) – at best the activation wizard claimed "Windows is already activated", but after the 30 days the protection kicks in – endless loop between "Already activated" and "You must activate now" – making actual activation impossible.
 
  • Like
Reactions: SylverReZ
I've looked it up again, but I'm afraid going into details or even providing links may be against GBAtemp rules. Yeah, I know. Tutorial how to pirate Windows 98… highly interesting nowadays.
What I can say:
Depending on the version (OEM or full) Windows 98 will either install completely before asking for the key or the other way round. If it install completely, at least in the first edition, it is possible to boot safe mode and set the registry value.
There even is a sequence of only two commands within the DOS program debug.exe for supposedly patching out the serial check from a file called pidgin.dll
Neat. Never knew this was possible, I've always installed 98 the normal way.

As for the XP activation registry hacks: They never worked for me ("New!!! 100% working!!!" YouTube video…) – at best the activation wizard claimed "Windows is already activated", but after the 30 days the protection kicks in – endless loop between "Already activated" and "You must activate now" – making actual activation impossible.
Not without an proper crack. There is one called "Anti<REDACTED> (can't say the rest, go figure)" which you have to register as a DLL file and then it hooks up to "winlogon.exe" to bypass the activation checks, too bad that I can't mention the name of the crack or provide any links.
 
Last edited:
I expected some reply about the "casual piracy" stuff. We are talking about extremely expensive software here. In fact they moved -- when floppy drives disappeared completely -- to USB dongle protection, alternatively internet activation (as far as I know with the possibility to move an activation back to the server, which allows at least some duplication for machines that stay offline from there on).

My point is that allowing the customer to move activation data between two computers is a huge security hole: They are defeating their own DRM. Every standard game protection had higher security because it was set to demand the original CD each time starting. Copying a SecuROM CD is way more effort than creating those floppy activations. There is not even "circumvention software" needed (or whatever they call stuff that deals with DRM).

Binding to the physical token "floppy disk" would have been pretty effective without the possibility to restore used keys back. Knowledge about copying those floppies wasn't common (anymore?). And no, VGACopy/386 is not a duplicator for protected floppies (but an excellent tool for non standard formatting and for trying to read dead diskettes).

By 'casual' I meant like some dodgy manager/less knowledgeable IT person who isn't able to work out/research the technique, I compared this to the earlier Windows keys because you could very easily pirate it in comparison to this which requires jumping through hoops. Perhaps I should have used 'easy' instead.

I agree it's a DRM security hole, my point was meant to be that it could have been a compromise by the devs or a known exploit they didn't expect many to actually use and even if they did, they could still face legal issues if caught.

Any kind of offline DRM will face vulnerabilities e.g. exploit offline modes, keygens for Adobe, but it's highly likely they're still included out of necessity for certain customers.

Out of curiosity, do you know if these were standard USB drives using a similar technique or something like a microcontroller (think 10NES)?

This actually reminds me of something from work, we have some bespoke customer facing software, but one day we started having issues where it would stop working after so many orders. According to a manager, it turned out that there was DRM on this software but it had never actually been activated in the decade the store had been using it. If true, I wonder if it was the daily reboot which circumvented the DRM for a decade?
 
  • Like
Reactions: KleinesSinchen
Out of curiosity, do you know if these were standard USB drives using a similar technique or something like a microcontroller (think 10NES)?
The dongles? It was too long ago that I had one in my hands. I believe it was a "Sentinel Hardware Key" ←That should directly lead to the marketing brochure.
There are a variety of dongles, from easy binding to a standard USB flash memory (probably internal serial of the stick) up to things that might contain vital information for the execution of a program.

My Nemesis while experimenting with copy protected PC CD-ROMs this years was the (shame!) German "Protect Software GmbH". They now offer the easy form of USB dongle with standard drives → ProtectUSB. That is probably enough for stopping casual copying, but nothing that will stop experienced crackers (ProtectDISC CD/DVD were widely cracked, as with SecuROM, SafeDisc, and even the infamous StarForce).

By 'casual' I meant like some dodgy manager/less knowledgeable IT person who isn't able to work out/research the technique, I compared this to the earlier Windows keys because you could very easily pirate it in comparison to this which requires jumping through hoops. Perhaps I should have used 'easy' instead.
Maybe we have a different view of what is considered to be a hurdle. When I did this back then, my thoughts were: "It can't possibly be that easy…" and then "What?! The thing defeats itself!"
Now that you say it, it requires some logical thinking, some steps to come to the conclusion where the system partially broken by design.

Of course it would have been problematic/costly when legitimate customers needed additional keys for reinstalling or new computers without reusable keys.
The floppy disk as such had a pretty solid protection. Ah! It was so long ago and I don't have access to it anymore. Some sectors had intentionally wrong CRC. Teledisk and/or Anadisk was able to create images and working copies. It took an eternity to read/write a floppy this way.
 
  • Like
Reactions: tech3475

Blog entry information

Author
KleinesSinchen
Views
633
Comments
8
Last update

More entries in Personal Blogs

More entries from KleinesSinchen

Share this entry

General chit-chat
Help Users
    Xdqwerty @ Xdqwerty: https://www.youtube.com/watch?v=GdMSPaHhmbI +1