Rob Northen Copylock – Wikipedia

Rob Northen Copylock (auch einfach bekannt als Copylock) ist ein Kopierschutzsystem, das entwickelt wurde, um das Duplizieren von Datenträgern mit Standard-Diskettenlaufwerken auf den Plattformen Amiga, Atari ST und MS-DOS zu verhindern. Es wurde vom britischen Programmierer Rob Northen nach der Gründung seiner eigenen Firma Copylock Software erstellt. Es wurde hauptsächlich verwendet, um zu verhindern, dass Spiele von normalen Benutzern kopiert werden.

Geschichte[edit]

Im Jahr 1984 wurde Rob Northen von Acornsoft beauftragt, Kopierschutzroutinen für die veröffentlichte Software wie das Original zu schreiben Elite für die BBC Micro. Northen verließ das Unternehmen sechs Monate später und gründete seine eigene Firma Copylock Software, während er noch Teilzeit für Acornsoft arbeitete, um Kopierschutzroutinen, Dateisysteme und Festplatten-Dienstprogramme zu schreiben.

Northens erste kopiergeschützte Software unter dem Namen Copylock wurde 1987 auf dem Atari ST eingeführt. Die erste Version der Copylock-Software wurde verwendet, um die frühen Commodore Amiga- und Atari ST-Spiele zu schützen, die nicht mehrfach geladen waren und sich daher auf einer einzigen Diskette befinden mussten. Zu Beginn schickten die Herausgeber die ungeschützte Master-Festplatte an Northen, der dann das Loader-Programm durch seinen eigenen verschlüsselten Loader ersetzte und die geschützte Master-Disk zur Duplizierung auslieferte.

Auf Anfrage von Spieleentwicklern wie The Bitmap Brothers, die komplexere Schutzprüfungen durchführen wollten, schrieb Northen Unterprogramme, die Entwickler nach ihren eigenen Wünschen implementieren konnten. 1990 kaufte er einen Disk-Duplikator und erstellte daraus Disketten mit darin eingebetteten Copylock-Seriennummern, die er dann anstelle der geschützten Master-Disks an die Entwickler schickte, zusammen mit den Copylock-Routinen, die sie in ihre Spiele aufnehmen sollten. Diese Copylock-Serie kann neuere Spiele mit mehreren Ladevorgängen oder über mehrere Disketten hinweg aufnehmen. Es ermöglichte auch die Aufnahme von Schutzprüfungen an beliebigen Stellen im Spielcode: Ein Beispiel hierfür war die Haken Computerspiel von Ocean Software, das eine Überprüfung des Schutzes im Spiel beinhaltete, die bei einem Fehlschlag dazu führte, dass ein Schlüsselelement, nämlich ein Becher, aus dem Spiel verschwand.[1]

Im Jahr 1990 wurde Copylock auch auf MS-DOS-basierte Systeme portiert. Bis zum Ende des Laufs 1996 waren Berichten zufolge rund 500 kommerzielle Amiga-Spiele mit Copylock geschützt.

Technische Details[edit]

Eine Copylock-geschützte Diskette enthält eine lange Spur, die als Copylock Serial Track bezeichnet wird. Sie kann auf einem Standard-Diskettenlaufwerk gelesen werden, ist jedoch ohne ein ausgeklügeltes Kopiergerät nicht zu schreiben. Die Festplatte enthält einen speziellen Loader, der stark verschlüsselt ist und die Copylock Serial Track lesen und dekodieren kann. Der verschlüsselte Code überprüft, ob die Festplatte über den richtigen Copylock-Serienschlüssel verfügt, der für jedes Spiel eindeutig generiert wird.

Auf der Maschinensprachenebene arbeitet Copylock im Motorola 68000-Trace-Modus, wodurch der Prozessor vor jedem Befehl im Hauptprogramm einen bestimmten Trace-Vektor ausführt. Der Trace-Vektor decodiert den Maschinensprachencode just-in-time vor seiner Ausführung und verschlüsselt ihn nach der Ausführung neu, sodass zu einem bestimmten Zeitpunkt nicht mehr als ein oder zwei Befehle unverschlüsselt im physischen Speicher gespeichert werden. Dies wird als Trace-Vektor-Decoder bezeichnet und wurde ursprünglich auf der Atari ST-Plattform implementiert und anschließend in frühe Amiga-Modelle kopiert, die beide auf der 68000-Architektur basieren.

Erste Serie[edit]

Es gab zwei Arten von Copylock-Routinen der früheren Serie.

In dem intern Typ wird der Copylock-Serienschlüssel für diese bestimmte Software im Hardwareregister D0 übergeben und unter der Speicheradresse $ 24 gespeichert. Erfinderische Programmierer könnten diesen Serienschlüssel für bestimmte Zwecke verwenden, um den potenziellen Cracker zu zwingen, die zusätzlichen Überprüfungen im Spiel zu entfernen. Bei vielen frühen Titeln führten Programmierer jedoch normalerweise nur eine Überprüfung des Serienschlüssels durch, der in einem Programm leicht zu finden und daher zu deaktivieren war.

In dem Verpackung Geben Sie ein, der Code zum Starten des Spiels oder die Startroutine wird verschlüsselt und dann in den Copylock-Code aufgenommen. Die gesamte Überprüfung der Datenträgergültigkeit wird vom Copylock-Code durchgeführt: Bei Erfolg erstreckt sich die Trace-Vektor-Decodierung auf die verschlüsselte Startroutine oder -datei. Die Daten werden dann an den vom Spielcode erwarteten Ort verschoben und die Routine ausgeführt. Diese Art von Copylock der Serie 1 wurde häufig für Spiele verwendet, die mit einem Schlag geladen wurden und nicht erneut auf das Laufwerk zugreifen mussten. Dies bedeutete jedoch, dass der Kopierschutz nach dem Entschlüsseln des Spiels unbrauchbar wurde, da das Spiel dann “einzeln abgelegt” werden konnte, dh vollständig aus dem Speicher gelöscht, auf der Festplatte gespeichert und dann unabhängig von den Copylock-Routinen zum Laufen gebracht werden konnte.

Zweite Serie[edit]

Serie 2 war eine Weiterentwicklung der internen Routinen der Serie 1, die es wiederum leicht machte, frühere Versionen zu umgehen, da viele Programmierer nur eine einfache Schutzprüfung implementierten, bei der der Serienschlüssel von der Copylock Serial Track gelesen und auf Richtigkeit überprüft wurde. Cracker mussten die codierten Copylock-Routinen oft nicht einmal überprüfen, da die Überprüfung der Festplattenauthentizität so implementiert wurde, dass sie anhand des Codes, der sie überprüfte, klar erkennen konnten, wie der Serienschlüssel lautete. Während viele Leute verstanden, wie Copylock funktioniert, hatten sich nur sehr wenige die Zeit genommen, um herauszufinden, wie man einen tatsächlich entschlüsselt. Inzwischen hatte sich Copylock jedoch dahingehend weiterentwickelt, dass Parameter vor der Ausführung an Copylock übergeben werden konnten. Dies bedeutete, dass Copylock nun nicht nur den Serienschlüssel, sondern auch bestimmte spielbezogene Werte in den Inhalt von Registern schreiben konnte, die an Copylock übergeben wurden, oder einfach Schreibe Werte in eine Liste vordefinierter Adressen, damit das Spiel richtig funktioniert.

Die typische, im Allgemeinen falsche Methode zum Knacken eines Copylocked-Spiels bestand darin, den Serienschlüssel abzurufen, den Header des Copylock zu ändern, um den richtigen Serienschlüssel in das Register D0 zu legen, und dann den gesamten Lese- und Decodierungsprozess zu umgehen. Dies würde bedeuten, dass der “Sonderfall” -Code im Copylock niemals ausgeführt würde, was bedeuten würde, dass das Spiel nicht funktionieren würde, wenn nur der Serienschlüssel verwendet würde.

PC-Version[edit]

Es war möglich, Copylock auf den PC zu portieren, da der x86-Mikroprozessor den Trace-Vektor genauso wie der 68000-Prozessor durch einen einstufigen Interrupt oder INT 1 unterstützt. Er manifestierte sich auf etwas andere Weise darin, dass der ausführbare Code des Spiels war vom Copylock-Loader verschlüsselt und “verpackt”. Zur Laufzeit las dieser Loader 4 Sektoren von der Diskette und generierte daraus Prüfsummen. Diese wiederum würden als Schlüssel zum Entschlüsseln des Spielcodes verwendet. Sobald die Entschlüsselung abgeschlossen war, übertrug der Lader die Kontrolle an das Spielprogramm. Die PC-Version war leicht zu umgehen, da der ursprüngliche ausführbare Code des Spiels nur im Loader gespeichert war. Sobald Sie die Festplattenprüfungen und den Verschlüsselungscode hinter sich gelassen haben, mussten Sie nur noch zwei Festplattenschreibvorgänge ausführen, um die unverschlüsselte ausführbare Datei zu sichern. Der erste würde den unveränderten “MZ” -Header ausgeben, und der zweite Schreibvorgang würde den Job beenden, indem der eigentliche Spielcode gespeichert wird. Fabulous Furlough of The Humble Guys hat ein Tool geschrieben, das genau das tut und ein Spiel in weniger als einer Minute “knacken” kann.

Verweise[edit]

Externe Links[edit]