Kopierschutz
Was soll durch den Kopierschutz verhindert werden?
- Die Weitergabe von nicht installierten und installierten Systemdisketten soll verhindert werden.
- Das Anfertigen von Sicherheitskopien von nicht installierten und installierten Systemdisketten soll verhindert werden. Die Sicherheitskopien wurden, deshalb gleich mit ausgeliefert. Die Diskette „Sicherheitsystem“ enthält, bis auf den Diskettennamen, die gleichen Daten wie die Diskette „System“.
- Die Weitegabe von nicht installierten Applikationsdisketten soll verhindert werden.
- Das Anfertigen von Sicherheitskopien von nicht installierten Applikationsdisketten soll verhindert werden.
Was wird durch den Kopierschutz nicht verhindert?
- Die Weitergabe von installierten Applikationsdisketten, wird durch den Kopierschutz nicht verhindert.
- Das Anfertigen von Sicherheitskopien von installierten Applikationsdisketten, wird durch den Kopierschutz nicht verhindert.
Woraus besteht der Kopierschutz?
- Der Kopierschutz besteht aus 2 Teilen.
- Teil 1: Daten, welche an speziellen Stellen der Systemdisketten bzw. Applikationsdisketten gespeichert worden sind. Dieser Teil wird im Weiteren, als „GEOS Lücken Daten“ bezeichnet.
- Teil 2: Programmcode, welcher diese Daten überprüft und entscheidet, ob die vorhandenen Daten gültig sind. Dieser Teil wird im Weiteren, als „Kopierschutzprüfung“ bezeichnet.
Welche Disketten sind Kopiergeschützt?
- GEOS 2.0 für C64 und 128 besteht jeweils aus 4 doppelseitigen Disketten. Hinzu kommen 2 doppelseitige Disketten für die GEORAM Versionen von GEOS 2.0 für C64 und C128. Es sind also 20 einzelne Diskettenseiten bzw. 20 einzelne Diskettenimages.
- GEOS 64 2.0 Disk Bitte melde dich an, um diesen Link zu sehen. Seite A „System“ Kopierschutz: ja
- GEOS 64 2.0 Disk Bitte melde dich an, um diesen Link zu sehen. Seite B „Applikations“ Kopierschutz: ja („GEOWRITE“)
- GEOS 64 2.0 Disk Bitte melde dich an, um diesen Link zu sehen. Seite A „Sicherheitsystem“ Kopierschutz: ja
- GEOS 64 2.0 Disk Bitte melde dich an, um diesen Link zu sehen. Seite B „Write Utilities“ Kopierschutz: ja* („GEOMERGE“)
- GEOS 64 2.0 Disk Bitte melde dich an, um diesen Link zu sehen. Seite A „GeoSpell deutsch“ Kopierschutz: nein
- GEOS 64 2.0 Disk Bitte melde dich an, um diesen Link zu sehen. Seite B „GeoSpell engl.“ Kopierschutz: nein
- GEOS 64 2.0 Disk Bitte melde dich an, um diesen Link zu sehen. Seite A „Druckertreiber“ Kopierschutz: nein
- GEOS 64 2.0 Disk Bitte melde dich an, um diesen Link zu sehen. Seite B „Neue GEOS-Trei.“ Kopierschutz: nein
- GEOS 128 2.0 Disk Bitte melde dich an, um diesen Link zu sehen. Seite A „System“ Kopierschutz: ja
- GEOS 128 2.0 Disk Bitte melde dich an, um diesen Link zu sehen. Seite B „Applikations“ Kopierschutz: ja („GEOWRITE“)
- GEOS 128 2.0 Disk Bitte melde dich an, um diesen Link zu sehen. Seite A „Sicherheitsystem“ Kopierschutz: ja
- GEOS 128 2.0 Disk Bitte melde dich an, um diesen Link zu sehen. Seite B „Write Utilities“ Kopierschutz: ja* („GEOMERGE“)
- GEOS 128 2.0 Disk Bitte melde dich an, um diesen Link zu sehen. Seite A „GeoSpell deutsch“ Kopierschutz: nein
- GEOS 128 2.0 Disk Bitte melde dich an, um diesen Link zu sehen. Seite B „GeoSpell engl.“ Kopierschutz: nein
- GEOS 128 2.0 Disk Bitte melde dich an, um diesen Link zu sehen. Seite A „Druckertreiber“ Kopierschutz: nein
- GEOS 128 2.0 Disk Bitte melde dich an, um diesen Link zu sehen. Seite B „weitere Treiber“ Kopierschutz: nein
- GEOS 2.0r GEORAM Disk Bitte melde dich an, um diesen Link zu sehen. Seite A 64 „System“ Kopierschutz: ja
- GEOS 2.0r GEORAM Disk Bitte melde dich an, um diesen Link zu sehen. Seite B 128 „System“ Kopierschutz: ja
- GEOS 2.0r GEORAM Disk Bitte melde dich an, um diesen Link zu sehen. Seite A 64 „Sicherheitsystem“ Kopierschutz: ja
- GEOS 2.0r GEORAM Disk Bitte melde dich an, um diesen Link zu sehen. Seite B 128 „Sicherheitsystem“ Kopierschutz: ja
-
* Von den „Write Utilities“ mit der Applikation „GEOMERGE“ gibt es verschiedene Versionen. Die Versionen vor April 1992 wurden mit dem Kopierschutz ausgeliefert. Die Versionen, welche nach April 1992 ausgeliefert wurden, besaßen keinen Kopierschutz mehr. Der Kopierschutz wurde durch den Hersteller selbst entfernt, da es wohl Probleme mit der Installationsroutine mit bestimmten Laufwerken gegeben hat.
- Es sind aber auch andere GEOS Applikationen mit demselben Kopierschutz ausgeliefert worden.
Wann wird eine „Kopierschutzprüfung“ durchgeführt?
- Beim Booten des GEOS-Systems, werden die „GEOS Lücken Daten“ überprüft, es wird also die „Kopierschutzprüfung“ durchgeführt.
- Eine „Kopierschutzprüfung“ erfolgt sowohl auf nicht installierten als auch auf installierten Systemdisketten.
- Beim Installieren einer nicht installierten Applikation, werden die „GEOS Lücken Daten“ überprüft, es wird also die „Kopierschutzprüfung“ durchgeführt.
- Beim Starten von installierten Applikationen erfolgt keine „Kopierschutzprüfung“.
Was passiert, wenn die „GEOS Lücken Daten“ ungültig oder nicht vorhanden sind?
- Beim Booten von einer Systemdiskette mit ungültigen oder nicht vorhanden „GEOS Lücken Daten“, wird durch die „Kopierschutzprüfung“ ein Reset ausgelöst und der Rechner somit zurückgesetzt.
- Beim Installieren einer Applikation mit ungültigen oder nicht vorhanden „GEOS Lücken Daten“, wird eine Fehlermeldung ausgeben und die Installation abgebrochen.
Wo genau befinden sich die „GEOS Lücken Daten“ auf den kopiergeschützten Disketten?
- Das Commodore DOS sieht vor und nach einem Datenblock eine kleine Lücke von ein paar Bytes vor.
- Diese Bytes werden nur durch das Formatieren einer Diskette durch das Commodore DOS geschrieben.
- Das Commodore DOS setzt alle Lücken-Bytes auf den Wert $55.
- Die „GEOS Lücken Daten“ hingegen enden immer mit den Werten $55 $67 $55 $55 $55 $67 vor der nächsten SYNC Markierung.
- In Angang D ist der Sektor 0 (Spur 21) einer GEOS Systemdiskette einmal schematisch dargestellt.
- Bis auf die „GEOS Lücken Daten“ entsprechen die kopiergeschützten GEOS Disketten dem Commodore DOS Format.
Was ist ein Sektor?
- Eine Diskette im 1541 Format unterteilt sich in Spuren und Sektoren.
- Jeder Sektor enthält einen Datenblock (hier sind die reinen Nutzdaten gemeint) von 254 Zeichen Daten. Zwei zusätzliche Bytes bilden einen Zeiger zum nächsten Block, dadurch wird es möglich, mit Files zu arbeiten, die länger als ein Block sind. Eine 1541-Diskette enthält 35 Spuren (Ringe), die von 1 bis 35 durchnummeriert sind. Da die Spuren verschieden lang sind, enthalten sie eine verschiedene Anzahl von Sektoren. Die Nummerierung von Sektoren beginnt mit dem Sektor 0.
- Die Abbildung in Anhang C zeigt den Aufbau eines Diskettensektors. Die Abbildung ist einer Abbildung aus dem VC 1541 Floppy Disk Bedienungshandbuch nachempfunden. Auch diese Abbildung zeigt die Lücken vor (Lücke1) und nach (Lücke2) dem Datenblock.
Was ist ein Sektor Vorspann(Header)-Block?
- Jeder Sektor besitzt einen Vorspann(Header)-Block.
- Der Vorspann(Header)-Block eines Sektors ermöglicht es dem Commodore DOS, die Spur und den Sektor zu identifizieren. Er besteht aus einer Synchronmarkierung (SYNC), acht Bytes identifizierenden Informationen, und einer Vorspann(Header)-Block-Lücke.
- Ein Vorspann(Header)-Block wird nur während der Formatierung geschrieben. Danach wird er niemals neu geschrieben.
- Nach einer Formatierung besteht jede Vorspann(Header)-Block-Lücke aus acht Bytes mit dem Wert $55.
- Das Commodore DOS liest die Daten der Vorspann(Header)-Block-Lücke niemals.
Was ist ein Sektor Daten-Block?
- Jeder Sektor besitzt einen Daten-Block.
- Ein Daten-Block eines Sektors speichert die 256 Datenbytes für diesen Sektor. Er besteht aus einer Synchronmarkierung, einer Datenblock-ID, den 256 Bytes Daten, eine Daten-Block Prüfsumme, zwei aus Bytes $00 und eine Daten-Block-Lücke.
- Die Länge der Daten-Block Lücke variiert von in der Regel von 4 bis 12 Byte.
- Die Daten-Block Lücke zwischen dem letzten Sektor einer Spur und dem Sektor 0 ist meist länger. Bis zu 100 Bytes kann diese Lücke lang sein.
- Nach einer Formatierung besitzen alle Bytes der Daten-Block-Lücken den Wert $55.
- Das Commodore DOS liest die Daten der Daten-Block-Lücken niemals.
- Sollen Daten auf einer Diskette gespeichert werden, dann werden immer gesamte Datenblöcke (einschließlich der vorhergehenden Synchronmarkierung) neu geschrieben.
- Das Commodore DOS beginnt immer erst nach den 8 Bytes der Vorspann(Header)-Block-Lücke mit dem Schreiben eines Daten-Blocks.
Was ist eine SYNC Markierung?
- Jeder Vorspann(Header)-Block und jeder Daten-Block beginnt mit einer SYNC Markierung.
- Eine SYNC Markierung ist eine ganz besondere Kennzeichnung innerhalb einer Spur.
- Eine SYNC Markierung besteht aus 10 oder mehr aufeinanderfolgenden 1-Bits (das Commodore DOS verwendet normalerweise 40 dieser 1-Bits).
- Dieses besondere Muster von Bits, kennzeichnet den Anfang eines Vorspann(Header)-Block oder eines Daten-Blocks.
- Die Hardware in einem 1541-Laufwerk kann diese Kennzeichnung erkennen und dem Commodore DOS signalisieren, dass eine neuer Daten- oder Vorspann(Header)-Block kommt.
Wozu dienen die Lücken vor und nach dem Datenblock?
- Beim Schreiben eines Daten-Blocks kann nicht sichergestellt werden, dass die Daten genau an die richtige Stelle auf der Diskette geschrieben werden.
- Dadurch kann der Anfang aber auch das Ende eines Daten-Blocks etwas Verschoben auf die Diskette geschrieben werden.
- Damit dabei keine Daten der Vorspann(Header)-Blöcke überschrieben werden, wurden die Lücken vor und nach dem Daten-Block eingefügt.
- Die Lücken sind also der Spielraum für die Position eines Daten-Blocks.
- Da die SYNC Markierung eines Daten-Blocks beim Schreiben immer neu geschrieben wird, kann das Commodore DOS den Anfang des Daten-Blocks auch dann finden, wenn sich dieser etwas weiter vorn oder etwas weiter hinten befindet.
Welche Lücken werden von der „Kopierschutzprüfung“ geprüft (Systemdisketten)?
- Auf der Spur 21 sind 19 Sektoren vorhanden, was dem Commodore DOS Standard entspricht.
- Die „Kopierschutzprüfung“ prüft alle 19 Sektor Vorspann(Header)-Lücken von Spur 21.
- Die „Kopierschutzprüfung“ prüft die ersten 18 Sektor Daten-Lücken von Spur 21.
- Die Lücke zwischen dem letzten Sektor und dem Sektor 0 wird nicht geprüft.
- Die „Kopierschutzprüfung“ prüft also insgesamt 37-mal (19 + 18 = 37). Siehe dazu Anhang A
Welche Werte akzeptiert die „Kopierschutzprüfung“ in den Lücken?
- Die „Kopierschutzprüfung“ akzeptiert in den Lücken nur Bytes mit dem Werte $55 oder $67.
Warum muss jede Lücke mit einem Byte mit dem Wert $67 enden, damit die „Kopierschutzprüfung“ bestanden wird?
- Die „Kopierschutzprüfung“ prüft alle Bytes der Vorspann(Header)-Lücken und der Daten-Block-Lücken.
- Diese Bytes müssen entweder den Wert $55 oder $67 aufweisen, ansonsten ist die „Kopierschutzprüfung“ nicht bestanden.
- Die „Kopierschutzprüfung“ prüft alle Bytes bis zum Ende der jeweiligen Lücke.
- Um das Ende einer Lücke zu erkennen, prüft die „Kopierschutzprüfung“, vor dem Lesen des nächsten Bytes, ob das Laufwerk schon die nächste SYNC Markierung erkannt hat.
- Die SYNC Markierung kennzeichnet das Ende jeder Lücke bzw. den Anfang des nächsten Blocks (Daten- oder Vorspann(Header)-Block).
- Steht ein Byte mit dem Wert $55 vor der nächsten SYNC Markierung (also am Ende einer Lücke), so ist dies zunächst in Ordnung. Die „Kopierschutzprüfung“ prüft das Byte und da es den zulässigen Wert $55 aufweist, wird die Prüfung vorgesetzt. Jetzt wird von der „Kopierschutzprüfung“ geprüft, ob schon die nächste SYNC Markierung erkannt wurde. Dies ist nicht der Fall, da noch keine 10 aufeinanderfolgenden 1-Bits gelesen wurden. Zu diesem Zeitpunkt wurde erst ein 1-Bit gelesen, da der Wert $55 (1010101) mit 01 endet. Dann wird das nächste Byte gelesen, welches den Wert $FF (11111111) aufweist. Anschließend wird wieder geprüft, ob das Laufwerk schon die nächste SYNC Markierung erkannt hat. Dies ist immer noch nicht der Fall, da erst das letzte 1-Bit des Werts $55 und die acht 1-Bits des Werts $FF also genau neun 1-Bits gelesen worden sind. Jetzt prüft die „Kopierschutzprüfung“ den Wert $FF, welcher leider nicht dem Wert $55 und auch nicht dem Wert $67 entspricht. Somit ist die „Kopierschutzprüfung“ nicht bestanden! Siehe dazu auch Anhang E, wo auch dieser Fall dargestellt ist.
- Steht ein Byte mit dem Wert $67 vor der nächsten SYNC Markierung (also am Ende einer Lücke), so ist dies in Ordnung. Die „Kopierschutzprüfung“ prüft das Byte und da es den zulässigen Wert $67 aufweist, wird die Prüfung vorgesetzt. Jetzt wird von der „Kopierschutzprüfung“ geprüft, ob schon die nächste SYNC Markierung erkannt wurde. Dies ist nicht der Fall, da noch keine 10 aufeinanderfolgenden 1-Bits gelesen wurden. Zu diesem Zeitpunkt wurden erst drei 1-Bits gelesen, da der Wert $67 (1100111) mit 0111 endet. Dann wird das nächste Byte gelesen, welches den Wert $FF (11111111) aufweist. Anschließend wird wieder geprüft, ob das Laufwerk schon die nächste SYNC Markierung erkannt hat. Dies ist der Fall da schon elf ( 3 + 8 = 11 ) 1Bit gelesen worden sind. Die „Kopierschutzprüfung“ dieser Lücke ist damit bestanden.
- Es kann also kein Byte mit dem Wert $55 (1010101) vor der SYNC Markierung stehen, da die Bitfolge 1010101 des Werts $55 nur ein 1-Bit am Ende aufweist und so nach dem Lesen eines nachfolgenden Bytes mit dem Wert $FF noch keine SYNC Markierung erkannt wird.
- So muss also zwingend ein Byte mit dem Wert $67 (1100111) vor jeder SYNC Markierung stehen, da die Bitfolge 1100111 des Werts $67 drei 1-Bits am Ende aufweist und so nach dem Lesen eines nachfolgenden Bytes mit dem Wert $FF eine SYNC Markierung erkannt wird.
Warum kann der Kopierschutz nicht kopiert werden?
- Die Commodore Laufwerke (wie 1541,1571) können eine Spur mit Nutz-Daten nicht in einem Schreibdurchgang schreiben.
- Die betroffen Spuren (Spur 21) der Kopiergeschützten GEOS Disketten besitzen Nutz-Daten, welche unbedingt benötigt werden.
- Die Commodore Laufwerke besitzen nur 2KB Speicher.
- Eine gesamte Spur, mit Nutz-Daten, benötigt mehr als 2KB Speicher.
- Der Speicher des Rechners (C64/C128) kann nicht als Zwischenspeicher dienen, da die serielle Übertragung zu langsam ist, damit eine Spur in einem Schreibdurchgang geschrieben werden kann.
- Das Kopieren einer Diskette mit einem Commodore Laufwerke kann also nur sektorweise erfolgen.
Warum zerstört das sektorweise Kopieren die „GEOS Lücken Daten“?
- Beim sektorweisen Kopieren, werden die einzelne Sektoren von einer Diskette gelesen und auf eine andere Diskette geschrieben.
- Normalerweise wird dabei jede Spur, vor dem kopieren der Sektoren, auf der Zieldiskette neu Formatiert.
- Durch das Formatieren werden normeilerweise alle Lücken-Bytes auf den Wert $55 gesetzt.
- Dann werden die einzelnen Sektoren nacheinander auf die formatierte Spur geschrieben.
- Da sich dabei die Position der Daten-Blöcke immer etwas verschiebt, werden die Lücken-Bytes mit den Werten $55 vor und hinter dem Daten-Block verändert.
- Die „GEOS Lücken Daten“ gehen beim sektorweisen Kopieren, auf jeden Fall verloren.
- In Anhang E ist dargestellt, das schon eine Verschiebung um ein Bit nach vorn oder nach hinten die Lücken-Daten verändert.
Warum scheitert auch NIBBLER (wie TURBO NIBBLER) beim Kopieren der „GEOS Lücken Daten“?
- Ein NIBBLER arbeitet zwar nicht sektorweise und versucht die Vorspann(Header)-Block-Lücken und auch die Daten-Block-Lücken 1 zu 1; Byte für Byte zu übertragen.
- NIBLLER haben aber dennoch das Problem das sie eine Spur nicht in einem Schreibvorgang schreiben können.
- Somit muss auch ein NIBBLER eine Spur in mehreren Durchgängen schreiben, was wiederum zur Zerstörung einiger Lückendaten-Bytes führt.
Wie kann der „Kopierschutzprüfung“ ausgetrickst werden (ohne diese zu entfernen)?
- Die Nutz-Daten von der Spur 21 werden auf andere Spuren verschoben, und das Directory dementsprechend geändert.
- Die Spur 21 wird im Directory als belegt markiert.
- So können die Daten nach wie vor von der Diskette gelesen werden.
- Nun müssen noch die „GEOS Lücken Daten“ auf die Spur 21 aufgebacht werden.
- Durch eine spezielle Formatierungs-Routine ist es möglich die „GEOS Lücken Daten“ auf die Spur 21 zu schreiben.
- Die spezielle Formatierungs-Routine kommt dabei mit den 2 KB Speicher der Commodore Laufwerke aus, da keine Nutz-Daten auf die Spuren geschrieben werden müssen.
Wie kann der Kopierschutz, mit originaler Hardware, dennoch kopiert werden?
- Das Kopieren des Kopierschutzes am C64/C128 ist nur mit zusätzlicher Hardware möglich.
- Mit einem parallel angeschlossenen Commodore Laufwerk, kann der Rechner (C64/C128) als Zwischenspeicher genutzt werden, da die parallele Übertragung schnell genug ist, um eine Spur mit einem Schreibdurchgang auf die Zieldiskette zu schreiben.
- Mit einer Erweiterung des Laufwerks-Speichers (RAMBOard), kann eine gesamte Spur in dem Laufwerk zwischengespeichert werden, um diese mit einem Schreibdurchgang auf die Zieldiskette zu schreiben.
Wie kann der Kopierschutz mit moderner Hardware kopiert werden?
- Mit der Kombination aus PC, ZoomFloppy und Commodore1571 (Hinweis: nicht jede 1571 funktioniert) ist es möglich, mittels serieller Übertragung, eine gesamte Spur in einem Durchgang auf die Diskette zu schreiben. Hierbei wird keine Modifikation an der Commodore 1571 benötigt.
- Mit diversen Parallel-Kabeln kann ein umgebautes Commodore Laufwerk an einen PC angeschlossen werden und auch eine gesamte Spur in einem Durchgang auf die Diskette schreiben.
Seriennummern-System
Was soll durch das Seriennummern-System verhindert werden?
- Das „Seriennummern-System“ soll die Weitergebe von Kopien von installierten Applikationsdisketten verhindern.
- Da die installierten Applikationsdisketten nicht mehr durch den Kopierschutz, vor der Weitegabe geschützt wurden, hat sich der Hersteller wohl das „Seriennummern-System“ einfallen lassen.
Was soll durch das Seriennummern-System nicht verhindert werden?
- Das Anfertigen von Sicherheitskopien von installierten Applikationsdisketten sollte durch das „Seriennummern-System“ nicht verhindert werden.
- Das Anfertigen von Sicherheitskopien von installierten Applikationsdisketten war sogar erwünscht, um Beschädigungen an den Original-Disketten zu vermeiden.
Wann wird die Seriennummer erzeugt?
- Beim ersten Bootvorgang werden die Systemdisketten installiert, d.h. es wird eine zufällige Seriennummer generiert und auf den Systemdisketten abgelegt.
- Bei der Installation der Systemdisketten gibt es noch die Möglichkeit, die Seriennummer von einer vorhandenen installierten Applikationsdiskette anstelle einer neuen zufälligen zu verwenden. Die Seriennummer wird in diesem Fall von der installierten Applikationsdiskette auf die Systemdisketten übertragen.
- Diese Seriennummer wird bei jedem Bootvorgang von GEOS von der Startdiskette gelesen und steht dann im Speicher des Rechners zur Verfügung.
Wann wird die Seriennummer vom GEOS System auf eine Applikation übertragen?
- Beim ersten Start einer Applikation, wird diese installiert, es wird also die Seriennummer der verwendetet Systemdiskette auf die Applikationsdiskette übertragen.
- Installierte Applikationen starten nur dann, wenn dessen Seriennummer mit der Seriennummer der verwendetet Systemdiskette übereinstimmt.
Was passiert beim Start einer installierten Applikation, wenn dessen Seriennummer nicht mit der Seriennummer des GEOS Systems übereinstimmt?
- Wird eine installierte Applikation gestartet, dessen Seriennummer nicht mit der Seriennummer des GEOS Systems übereinstimmt, wird eine Fehlermeldung ausgegeben und die Applikation beendet.