programm schreibgeschützt

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
coma85
User
Beiträge: 28
Registriert: Mittwoch 10. Februar 2010, 10:04

Hallöle,

also ich schreibe gerade an einem Roulette-Programm, welches ich in einer schule testen will. Damit die Schüler, dass Programm nicht abändern, suche ich nach einer Möglichkeit es zu schützen.

gibt es da einen befehl oder ähnliches, welches ich einfügen kann, oder
was kann ich tun, damit alle Schüler aus den verschiedenen Klassen
letztendlich auch das gleiche programm dann vor sich haben?

MfG coma85
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Kurz und knapp: Das geht quasi nicht!
Siehe u.a. auch hier:
http://www.python-forum.de/topic-4333.h ... sch%FCtzen

Gab schon viele solcher Threads :-)

Du beschreibst noch nicht genau, was Du eigentlich mit dem Script erreichen willst. Evtl. kann man ja umgehen, dass die Schüler direkt den Code brauchen oder "nur" Client-Code bekommen, die Logik aber unerreichbar auf einem Server läuft?
coma85
User
Beiträge: 28
Registriert: Mittwoch 10. Februar 2010, 10:04

na son mist :lol: ...

also die schüler sollen das programm nicht schreiben oder so, sie sollen es nur testen "sprich: roulette spielen"... geht um spielsucht und wahrscheinlichkeitsrechnung...

ich sag mal gleich dazu, bin in python weitestgehend ein "anfänger"...
hab zwar schon ein paar programme zum laufen gebracht, aber ich weiß jetzt nicht genau, was du mit code bezw. client-code usw. meinst :roll:

ich werde mit den schülern in ihrem informatikraum sein...

LG
Benutzeravatar
Rebecca
User
Beiträge: 1662
Registriert: Freitag 3. Februar 2006, 12:28
Wohnort: DN, Heimat: HB
Kontaktdaten:

Ist das nicht etwas, was sich mit Dateirechten loesen lassen sollte?
Offizielles Python-Tutorial (Deutsche Version)

Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Rebecca hat geschrieben:Ist das nicht etwas, was sich mit Dateirechten loesen lassen sollte?
Hm... lesenden Zugriff brauchst Du ja aber in jedem Fall. Insofern kann sich das Script ja jeder in einen anderen Ordner kopieren (bei der er logischer weise Schreibzugriff hat) und den Code dort ändern. Oder worauf wolltest Du hinaus?

@coma85: Naja, Du könntest das ganze zur Netzwerkapplikation "umbauen". Sprich, Du verpasst dem Script eben einer Netzwerkschicht, mit der ein (noch zu schreibender) Client mit dem Server (der enthält eben die wichtige Spiellogik) kommuniziert. Das sollte das ganze prinzipiell erst mal sicherer machen. Allerdings kann das je nach Applikation schon ein ziemlicher Aufwand sein... ;-)

Die Frage ist doch: Was genau befürchtest Du? Inwiefern spielt Manipulation da eine Rolle? Bist Du an Ergebnissen interessiert? (Sprich, speichert Deine Applikation Daten irgend wo hin, die Du auswerten willst?)
.robert
User
Beiträge: 274
Registriert: Mittwoch 25. April 2007, 17:59

Auch wenn es einen generellen Schutz nicht gibt, gibt es eine Grenze, wo der Aufwand einer Manipulation höher ist als der daraus resultierende Nutzen.

Also, wenn die Schüler in der Lage sind durch die Manipulation des Codes ihre Zensuren zu ändern, wirst du dich anstrengen müssen, da sie wahrscheinlich Profis beauftragen werden, den Code zu knacken :wink:

Warum willst du den Code schützen? Welchen Anreiz haben die Schüler, ihn zu manipulieren?
Pascal
User
Beiträge: 271
Registriert: Samstag 4. April 2009, 22:18

würde es nicht eigentlich reichen, dass ganze in eine *.exe Datei umzuwandeln? (ich geh mal davon aus, dass in der Schule standardmäßig Windowsrechner stehen)

Dann können deine Schüler Roulette spielen und haben keine Chance im Quellcode zu fuschen.
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Pascal hat geschrieben:würde es nicht eigentlich reichen, dass ganze in eine *.exe Datei umzuwandeln? (ich geh mal davon aus, dass in der Schule standardmäßig Windowsrechner stehen)

Dann können deine Schüler Roulette spielen und haben keine Chance im Quellcode zu fuschen.
Es kommt drauf an: Wenn sie die exe tatsächlich quasi zu Beginn der Stunde bekommen und nur diese Stunde damit arbeiten sollen, dann wirds rein aus praktischen Gründen schwierig in der Zeit das ganze zu extrahieren und zurück in Python-Quell-Code zu verwandeln - noch dazu, wenn sie nicht wissen, dass es mal Python war und sie in solchen Dingen nicht bewandert sind.

Sollten sie damit aber auch in weiteren Stunden arbeiten, relativiert sich diese Aussage massiv, da sie die exe ja mitnehmen können...
coma85
User
Beiträge: 28
Registriert: Mittwoch 10. Februar 2010, 10:04

also es handelt sich um regelschüler/ realschüler, die wahrscheinlich noch nicht mit dem progrqamm gearbeitet haben. ich möchte ihre eingaben beim spiel extern speichern, um zu sehen, ob sie aufs ganze gehen (gleich alles verzocken) oder ob sie auf sicherheit spielen usw. ...
hab programmiert das diese eingaben extern gespeichert werden...

die schüler spielen immer nur eine stunde... dabei will ich neben roulette noch 2 weitere spiele programmieren.

meine befürchtung ist die, dass die schüler, wenn sie fertig sind, im quellcode rumschreiben und die nachfolgende Klasse nicht spielen kann... also dass ich nach jedem durchlauf, die programme neu aufspielen muss...
.robert
User
Beiträge: 274
Registriert: Mittwoch 25. April 2007, 17:59

coma85 hat geschrieben:meine befürchtung ist die, dass die schüler, wenn sie fertig sind, im quellcode rumschreiben und die nachfolgende Klasse nicht spielen kann... also dass ich nach jedem durchlauf, die programme neu aufspielen muss...
Ach so....
Das würde mir als erstes einfallen, das Programm in einen Ordner zu packen, wo die Schüler nur lesend zugreifen dürfen.
Aber auch das "neu aufspielen" lässt sich doch wunderbar automatisieren.

Übrigens: wenn euer PC-Pool ordentlich eingerichtet ist, hat eh jeder Schüler sein eigenes HOME-Verzeichnis, und er kann nur dort schreiben.
Pascal
User
Beiträge: 271
Registriert: Samstag 4. April 2009, 22:18

Ich bin selber Schüler und kann mit Sicherheit sagen, dass es den meisten aus meinen Informatikkurs die Programmierung scheiß egal ist.
Wenn du daraus eine *.exe-Datei machst kann auch niemand im Quellcode rumfuschen. Die einzige Gefahr sehe ich darin, dass die Schüler die Dateien, wo der Spielverlauf festgehalten wird, löschen, sofern sie denn an die Dateien kommen und ihre Bedeutung kennen.
coma85
User
Beiträge: 28
Registriert: Mittwoch 10. Februar 2010, 10:04

wie kann ich es erreichen, dass der schüler nur lesend auf die datei zugriff hat?

ihr sprecht immer von in exe anwenden... wie funktioniert das?
.robert
User
Beiträge: 274
Registriert: Mittwoch 25. April 2007, 17:59

coma85 hat geschrieben:wie kann ich es erreichen, dass der schüler nur lesend auf die datei zugriff hat?
Um dass zu beantworten musst du ein wenig über die Einrichtung in eurem PC-Pool verraten.

Welches OS nutzt ihr?

Ich hoffe einfach mal, dass es bei euch nicht so ist, dass jeder Schüler einen Admin-Account hat (dann ist eh alles verloren :wink: ).
Also sollte jeder Schüler nur in seinem HOME-Verzeichnis Scheibrechte haben, und du musst das Programm einfach ordnungsgemäß (also wie bei dem entsprechenden OS üblich), in dem Ordner ablegen, wo die Programme sind, und der normale Nutzer nur lesen und eben nicht drauf schreiben darf.
.robert
User
Beiträge: 274
Registriert: Mittwoch 25. April 2007, 17:59

Das Problem das bleibt ist natürlich, dass die Ergebnisse auch nur im Home-Verzeichnis gespeichert werden können, und der Schüler seine Ergebnisse dass einfach manipulieren oder löschen kann, wenn du sie im Klartext abspeicherst.

Das könntest du so lösen, dass du die Ergebnisse (oder sogar die Spielzüge) direkt auf einen Server überträgst. Musst dich dabei nur für eine Technik bzw. ein Protokoll entscheiden.

Oder du speicherst die Daten nicht im Klartext ab, was eine Manipulation erschwert, und drohst jedem Schüler mit Punktabzug, wenn er seine Ergebnisse nicht oder manipuliert übermittelt. :wink:

Es gibt viele Wege nach Rom...
Pascal
User
Beiträge: 271
Registriert: Samstag 4. April 2009, 22:18

coma85 hat geschrieben:ihr sprecht immer von in exe anwenden... wie funktioniert das?
Probier´s mal so ;)
Benutzeravatar
gkuhl
User
Beiträge: 600
Registriert: Dienstag 25. November 2008, 18:03
Wohnort: Hong Kong

@coma85: In deinem Fall würde es evtl. einfach ausreichen nur die *.pyc auszuteilen.
start_with_python
User
Beiträge: 41
Registriert: Samstag 20. Juni 2009, 18:12

Und wenn man das Ding auf nen Server packt und per Webzugriff nutzen lässt?
Grüße[b]
start_with_python[/b]

Lust auf [url=https://www.dropbox.com/referrals/NTE5OTQ5Mjk5]DropBox[/url]? (RefLink)
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Mir kommt vor dass diese EXE-Sache, ebenso wie die PYC-Sache nur herumdoktorn am eigentlichen Probelm ist. Die einfachste, sicherste und logischste Lösung ist den Schülern nur Lesezugriff auf das Program zu geben, fertig, Problem gelöst.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Leonidas hat geschrieben:Mir kommt vor dass diese EXE-Sache, ebenso wie die PYC-Sache nur herumdoktorn am eigentlichen Probelm ist. Die einfachste, sicherste und logischste Lösung ist den Schülern nur Lesezugriff auf das Program zu geben, fertig, Problem gelöst.
Aber dann können die das ganze doch noch kopieren, oder nicht?
Pekh
User
Beiträge: 482
Registriert: Donnerstag 22. Mai 2008, 09:09

Hyperion hat geschrieben:
Leonidas hat geschrieben:Mir kommt vor dass diese EXE-Sache, ebenso wie die PYC-Sache nur herumdoktorn am eigentlichen Probelm ist. Die einfachste, sicherste und logischste Lösung ist den Schülern nur Lesezugriff auf das Program zu geben, fertig, Problem gelöst.
Aber dann können die das ganze doch noch kopieren, oder nicht?
Ja, aber es geht ja, wenn ich es richtig verstanden habe nicht darum, den Schülern den Code vorzuenthalten, sondern darum, ein Verfälschen der "Meßergebnisse" zu verhindern. Und so lange wie die "Messungen" immer nur mit dem unveränderten Original erfolgen, können die Schüler sich den Code doch so oft kopieren und verändern wie sie wollen.

Interessanter ist da schon die Frage, wie man die Meßergebnisse sicherstellt. Ein paar Anregungen gabs ja schon, aber es bleibt spannend.
Antworten