A CD-ROM copy protection technology developed and licensed by Macrovision.

It provides a range of functionality for software developers, and can be used to either lock the software so it can only be installed from the original CD, lock the software that it can only be run when the original CD is present, or require that the original CD be re-inserted every few days. You can normally tell when it has been added to a program due to the delay while the digital signature is detected, and the splash screen which is normally displayed during this period.

It sucks. There are various different versions. Some don't work with certain drives and some have illegal "cracks" to allow the software to be copied. It's generally cracked within a couple of days of the software being release, especially if the developers haven't sunk a lot of time into integrating it deeply with the game. Clone CD can be used to copy most versions, depending on whether or not your CD Writer has the necessary features. You can usually just use Daemon Tools to make a disc image and then turn on its SafeDisc emulation, too.

Easy to use, compatible. It is easy to apply, simply requiring the "wrapping" of the software with the SafeDisc software and a slight addition to the mastering process of the disc. Additional protection can be added using a special API. It's compatible with Windows and MacOS, and the newer binary releases of WineX also include support for it. It is Yellow Book compliant.

Depending on how it is used, it can considerably slow down games and other software which use it, especially at startup time.

Non-programmers, please ignore the following emphasized text, as you will find it tedious and boring. Skip ahead to the juicy stuff. SafeDisc encryption is done in the application at the code level. You include the SafeDisc libraries and specify which functions are to be encrypted. These functions must be declared as standard C functions within the global scope, and can be given any of five levels of "security". Each level runs slower than the previous, and provides better encryption. The fastest check a developer can encrypt a function with runs at 50 milliseconds. The level five check takes about ten seconds to process. From a cracking standpoint, using the higher level checks means that end users may have to run their "unSafeDisc" cracking program for ten to thirty seconds instead of the split second it would normally take to crack the game. That's the problem with using a common encryption library. The crackers only need to figure it out once.

One of the conveniences of SafeDisc as a developer, is that your functions are merely tagged with information for the SafeDisc generator. This information is ignored until the actual mastering happens, so your application can be run freely without worrying about the encryption. Unfortunately, this also means that you're not likely to see the performance hit you're going to suffer until you're gold mastering. The worst example of this so far that I am aware of is Morrowind, which upon original release had encrypted one of its basic functions that was run every game update. As a result, people who removed the SafeDisc encryption with a "unSafeDisc" tool had better performance than those who didn't. Since this was such a cutting edge game, which was already slow to begin with, people who would normally never even care about removing copy protection were stripping it from their games just so they could play it at a reasonable speed. The first patch released for Morrowind remedied this, presumably by moving the checks into more uncommon code blocks.

Log in or register to write something here or to contact authors.