|

|
COPY PROTECTION TO DATE
Copy protection for early home computer software, especially games, began a long cat-and-mouse struggle between publishers and crackers. The technologies employed for software copy protection and video games have been or still are:
1st Wave: Hardware solutions:
Floppy Disks: The first protection of floppy disks changed the marks on each sector. The floppy produced could not be copied without special software. By 1980, a copier was introduced which copied floppy disks an entire track at a time, ignoring how the sectors were marked.
CD’s: Floppy disks were replaced by CDs as the preferred method of distribution. Companies such as Macrovision and Sony provided copy protection schemes, which wrote data to places on the CD-ROM where a CD-R drive cannot normally write.
Dongles: A dongle is a piece of hardware containing an electronic serial number which binds a user license to an application. The protection requires the dongle to be present in the machine and can be both inconvenient for the user and expensive for the publisher.
2nd Wave: Key and Licensing solutions:
Registration Key: A registration key consists of a series of letters and numbers or name and serial number. Currently, almost all business applications and games use registration keys. The registration key must be entered correctly and must be valid (fitting an internal algorithm), otherwise the application will not start.
Keyfile: A file with a key or usually multiple keys must be present on the user’s system.
Phone Activation: The user must call and register the product to receive a computer-specific serial number.
Email Activation: The user must run a program on his system and mail the output to the publisher. This output is fed into a key generator and returns a system specific key, given to the user.
3rd Wave: Code solutions:
Static Encryption: The executable files reside on disk in encrypted format but are decrypted as they are loaded into memory.
Dynamic Encryption:: Portions of the application reside on disk in encrypted form and are only decrypted on an as needed basis when in memory. As the decrypted portions of the code are used, some systems re-encrypt the used portions while others leave them decrypted. Greater level of security may result in a performance penalty. Therefore, some developers provide an SDK.
Code Morphing or Obfuscation: A technology based on re-arranging the code, making it very difficult to read and understand but while remaining fully functional. Transformation of the code back to its more readable format is not necessary. As a result, the code is very difficult to reverse engineer, understand and tamper with. This technology includes using Virtual Machines for interpreting the code.
In-line Tamper Protection: Code is added to the application to protect it against tampering. The protection is typically based on checksum calculations of critical code.
Anti-Debug Code: Debuggers are commonly used to crack applications. Anti-debug code will not permit debuggers to attach themselves to the running application. Anti-debug code verifies that certain bits in the system are not set, or tries to add another debugger to the process (no more than one is ever allowed) or monitors that certain timing information is below certain values (timing increases significantly with a debugger).
|

|

|
|

|