VC 20
Tips & Tricks

VC 20-Programme schützen

Einige Gedanken zum Copyright-Schutz mit Break, Autostart und einigen nützlichen POKEs und PEEKs. Experimentieren ist gestattet.

Wer möchte schon, daß sein Copyright mißbraucht wird? Viele Programmierer trauen sich nicht, ihr Programm zu veröffentlichen oder zu tauschen, weil dieses ja dann von Raubkopierern vervielfältigt werden könnte. Für solch einen Fall habe ich eine fast narrensichere Hilfe geschaffen.

Zunächst wäre es möglich, daß man seine Programme mit einem LOAD-, SAVE-, LIST-Schutz gegen Kopieren sichert. Aber damit hat man die unbefugte Benutzung noch nicht ausgeschaltet. Die Lösung liegt da, daß man einen Code abfragt, wobei die Abfrage im Listing natürlich unsichtbar ist. Anschließend schalten wir noch die RUN/STOP-RESTORE-Funktion außer Betrieb und mit einem Datasetten-Autostart sind wir schon fast fertig. Werfen wir nun alles in einen Topf, so haben wir doch ein ziemlich sicheres Programm (Listing 1). Die benötigten PEEKs und POKEs sind in Tabelle 1 zu finden. Das Programm ist selbstverständlich nur eine Demo-Version, um das Prinzip zu zeigen. Bauen Sie die Routinen doch einmal in eines Ihrer Programme ein.

Das Prinzip des Datasetten-Autostarts wurde bereits im VC 20-Kurs ausführlich beschrieben. Eine sehr einfache Methode ist es beispielsweise, das Hauptprogramm von einem Ladeprogramm aus nachladen zu lassen. Den Nachlade-Befehl kann man dabei noch in einem Maschinenprogramm unauffällig verstecken (Listing 2).

Zumindest bei Spielen für den VC 20 wird in den meisten Fällen ein neuer Zeichensatz definiert, um die grafische Darstellung zu verbessern. Diese Zeichendefinition wird in der Regel über DATA-Zeilen durchgeführt. So fällt es kaum auf, wenn da eine zusätzliche DATA-Zeile eingebaut wird, die den Nachlade-Befehl in Maschinensprache enthält.

Zum Abschluß noch ein Tip:

POKEn Sie doch einmal verschiedene Werte in die Speicherstelle 808. Sie werden verblüffende Ergebnisse erzielen.

(Ralf Brinkmann/ev)
PRINT PEEK(152) gibt die Anzahl der offenen Files an
PRINT PEEK(10) oder(147) gibt die letzte Kassettenroutiine an Load =0 Verify=1
PRINT PEEK (43) + PEEK (44) * 256 Zeiger für Beginn von Basic
PRINT PEEK (45) + PEEK (46) * 256 Zeiger für Beginn der Variablen
PRINT PEEK (47) + PEEK (48) * 256 Zeiger für Beginn der Arrays
PRINT PEEK (49) + PEEK (50) * 256 Zeiger für das Ende der Arrays
PRINT PEEK (51) + PEEK (52) * 256 Zeiger für Strings
PRINT PEEK (57) + PEEK (58) * 256 Momentane Zeilennummer in Basic
PRINT PEEK (55) + PEEK (56) * 256 Zeiger für die Grenze des Speicherplatzes
POKE 657,128 verhindert das Umschalten auf Kleinschrift,
POKE 657,0 wieder normal
PRINT PEEK (648) gibt die Bildschirm-Page an
POKE 794,0: POKE 795,0 Mit diesen POKEs wird der OPEN-Vektor ($f40a) geändert und der OPEN-Befehl kann nicht mehr ausgeführt werden
POKE 804,0: POKE 805,0 Ändert den INPUT-Vektor und ein INPUT wird unmöglich
POKE 810,0: POKE 811,0 Läßt kein GET mehr zu
POKE 818,116: POKE 819,196 Ein SAVE-Schutz
POKE 816,0: POKE 817,0 Ein LOAD-Schutz
POKE 775,200 Ein LIST-Schutz
POKE 37150,2: POKE 788,192 Setzt die RUN/STOP-RESTORE-Funktion außer Betrieb
Tabelle 1. Interessante PEEKs und POKEs
1 rem programmsicherung
2 rem -----------------
3 rem
4 rem
10 gosub 90:rem erst schuetzen
15 rem
20 rem codeabfrage gegen unerlaubte benutzung
25 rem
30 print chr$(147)
40 input"programmcode";c$
50 a$="ralph brinkmann"
60 if c$=a$ then print"programmcode ok":end
65 rem
70 rem programmzerstoerung
75 rem
80 print"falsches passwort !":poke 777,1
85 rem
90 rem save/load/list-schutz
95 rem
100 poke 818,116:poke 819,196
110 poke 816,0:poke 817,0
120 poke 775,200
125 rem
130 rem run/stop-restore ausschalten
135 rem
140 poke 37150,2:poke 788,192
150 return
155 rem
160 rem erst save, dann run !
Listing 1. Beispiel zum Programmschutz
10 rem autostart
20 rem ---------
30 rem
40 rem
50 for i=7660 to 7674:read v:poke i,v:next
60 sys 7660
70 poke 631,131:poke 198,1
80 end
90 data 162,7,169,126,56,253,79,29,157,79,29,202,208,244,96
Listing 2. Autostart in Maschinensprache
PDF Diesen Artikel als PDF herunterladen
Mastodon Diesen Artikel auf Mastodon teilen
← Vorheriger ArtikelNächster Artikel →