Rob Northen copylock
From Wikipedia, the free encyclopedia
Rob Northen Copylock is a copy-protection system to prevent disk duplication with standard floppy disk drives on the Amiga and Atari ST platforms. It was used mainly to copy-protect games from being copied by regular users.
A copylocked floppy disk contains long tracks, which can be read on a standard floppy drive but are impossible to write without a sophisticated disk duplication machine. The disk contains a special loader for long tracks and an encrypted code block. The encrypted code verifies that the disk is authentic, that it contains the original long track and the protection. To prevent a hostile programmer from bypassing the execution of the encrypted code (that checks authenticity), the encrypted code may cause side-effects that are later checked when the program is being run. Failing these checks would cause the program to prevent further use. Therefore a successful attacker would have to insert a new loader to replace the long track loader, bypass the encrypted code and bypass all later checks during the run-time of the program.
On the machine language level the copylock works by using Motorola 68000 trace mode that causes the processor to execute a specific trace vector before each instruction in the main program. The trace vector decodes the machine language code just-in-time before it is executed and re-encrypts it after it has been executed, so that no more than just one or two instructions are decrypted in the physical memory at any given time. This is called a trace vector decoder. The trace vector decoder system was originally implemented on the Atari platform and afterwards copied to early Amiga models, which share the same processor architecture.