Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Bester Schutz für Konsolenanwendung.


Mister Riös - So 13.09.09 16:08
Titel: Bester Schutz für Konsolenanwendung.
Hi,
folgendes Problem:

Ich habe eine Konsolenanwendung, die auf einem Öffentlichen Server liegt, aber nur von bestimmten Personen benutzt werden darf. Die einfachste Lösung hab ich schon eingabaut, ein Passwortschutz: (Sorry für den chaotischen Code^^)

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
Passwort_wrong_Count := 3;

Passwort_Wrong:
if Passwort_wrong_Count = 0 then goto Passwort_Wrong_Final;

write(Passwort_wrong_Count,'_Passwort: '); readln(Passwort);
if Passwort = 'subway' then begin goto Passwort_Right; end
                       else begin Passwort_wrong_Count := Passwort_wrong_Count - 1goto Passwort_Wrong; end;
writeln;
Passwort_Wrong_Final:

//Hier würde das Programm beendet.


Damit kommt man theoretisch nicht mehr in den Rest des Programmes, wenn man nicht das Psswort weiß. Jetzt hab ich mich aber bequatschen lassen, dass man trotzdem, auch wenn man nur die *.exe hat, den Quellcode einsehen kann.
Stimmt das? Und wenn ja: Was habe ich noch für Optionen?


jaenicke - So 13.09.09 16:18

Da eine Konsolenanwendung relativ einfach zu überschauen ist, kann man da auch mit wenig Kenntnissen einen Schutz rausnehmen. Bei normalen Windowsanwendungen ist es durch den zusätzlichen Formularcode einiges schwieriger.
Trotzdem ist es auch da kein großes Problem, wenn man einigermaßen Assembler kann.

Dagegen kann man nicht wirklich etwas tun. Jedes Programm lässt sich disassemblieren, das ist eben so. Egal wieviel man daran herumbastelt, es wird zwar schwieriger, aber verhindern kann man es nicht.

Was deinen "Passwortschutz" angeht:
Dein Passwort steht unverschlüsselt in der Exe, öffne die einfach in einem Editor... :roll:


Mister Riös - So 13.09.09 16:24

user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:

Was deinen "Passwortschutz" angeht:
Dein Passwort steht unverschlüsselt in der Exe, öffne die einfach in einem Editor... :roll:


Das dachte ich mir schon... Nur mal aus Interesse: Was wäre das für ein Editor?
Gäbe es eine Möglichkeit, es noch etwas schwieriger zu machen, dass Passwort zu knacken? Glücklicher Weise dürften die Möglichkeiten der Leute, die das Passwort (vielleicht) herrausfinden wollen, auch relativ begrenzt sein.


jaenicke - So 13.09.09 16:27

user profile iconMister Riös hat folgendes geschrieben Zum zitierten Posting springen:
Das dachte ich mir schon... Nur mal aus Interesse: Was wäre das für ein Editor?
Notepad von Windows oder jeder beliebige andere...

user profile iconMister Riös hat folgendes geschrieben Zum zitierten Posting springen:
Gäbe es eine Möglichkeit, es noch etwas schwieriger zu machen, dass Passwort zu knacken?
Mehrfache Abfragen im Programm verteilen, statt "falsches Passwort" Fakeanzeigen ausgeben, das Passwort nur als Hash speichern, ...
Die Möglichkeiten sind auf der Konsole natürlich sehr begrenzt.


Mister Riös - So 13.09.09 16:31

Okay, dankeschön soweit!


BenBE - Mo 14.09.09 14:33

Viel wirkungsvoller ist ein vernünftiges Rechtemanagement, so dass nur Berechtigte Personen Zugriff auf die EXE-Datei bekommen. Wenn man die EXE hat, ist's bereits zu spät ...


Mister Riös - Mo 14.09.09 18:07

:D
Das Problem ist, das ist unser Schulserver, das Programm soll von allen Schülern geöffnet werden können, aber nicht von den Lehrern... Deswegen ist es nicht das Problem, wenn etwas aus dem Code "geklaut" würde (Cophright), sondern wenn der Inhalt davon bekannt wird!


Jakob_Ullmann - Mo 14.09.09 18:32

Du glaubst doch nicht ernsthaft, dass das wirklich unter Schülern bleibt? :roll: Selbst wenn Lehrer keine Kinder an der Schule haben, halte ich es für überaus wahrscheinlich, dass Lehrer soetwas in Erfahrung bringen werden. :wink:

Außerdem kann ich nur hoffen, dass das Passwort nicht wirklich subway ist.


Webo - Mo 14.09.09 18:38

Wenn es nur auf Schulebene basiert: Da dürfte doch eine ganz simple Passwortabfrage reichen, oder ? Denn welcher Lehrer wird sich schon eine .exe genauer anschauen, nur weil sie irgendwo auf dem Server rumgammelt. Bei uns wurde bis vor 2 Jahren immer eine BlackVNC.exe (zum Umgehen der Passwortfrage bei VNC) in einem Unterordnerwahn versteckt. Es hing dann auf dem Fileserver unter irgendeinem Lehrerkürzel in irgendwelchen Schülerordnern und dort noch mal versteckt und zusätlich in einem RAR-Archiv mit Passwort ;-) Das blieb auch ewig unendeckt, nur irgenwann hat mich der zuständige Lehrer für die PCs dazu gezwungen das Ding vom Server zu verbannen (kümmere mich um die Server und PCs in der Schule), da aufgefallen war, dass die Schüler per VNC auf die Lehrerrechner zugegriffen haben *g*.

Aber wieder zurück zu deinem Thema: Die "Daten" aus dem Programm bekommen die Lehrer eh irgendwann mit (siehe mein Beispiel) ... bis dahin sollte aber eine einfache Passwortabfrage (vllt in Kombi mit nem RAR-Archiv mit Passwort) ausreichen ;-)

MfG

Webo


Jakob_Ullmann - Mo 14.09.09 18:50

user profile iconWebo hat folgendes geschrieben Zum zitierten Posting springen:
Aber wieder zurück zu deinem Thema: Die "Daten" aus dem Programm bekommen die Lehrer eh irgendwann mit (siehe mein Beispiel) ... bis dahin sollte aber eine einfache Passwortabfrage (vllt in Kombi mit nem RAR-Archiv mit Passwort) ausreichen ;-)


Also ich weiß ja nicht, wie das bei euch ist, aber bei uns gäbe es garantiert irgendeinen, der diese Information einer zuständigen Lehrperson mitteilen würde. :wink:


Webo - Mo 14.09.09 19:02

user profile iconJakob_Ullmann hat folgendes geschrieben Zum zitierten Posting springen:
Also ich weiß ja nicht, wie das bei euch ist, aber bei uns gäbe es garantiert irgendeinen, der diese Information einer zuständigen Lehrperson mitteilen würde. :wink:

Naja, "sowas" haben wir bei uns nicht. Als wir mal in der 11 eine Bombemdrohung per txt-Datei geschrieben haben (lächerlich bis zum Abwinken, die pure Ironie ist einem quasi schon ins Gesicht gesprungen, wurde aber irgendwie todernst genommen) hat die gesamte Stufe dicht gehalten, obwohl alle wussten, wer es war !

Eine andere Möglichkeit des Schutzes, welche mir grade so spontan eingefallen ist:
Ich weiss ja nicht, inwieweit du Befugnisse am Schulserver hast, aber wenn du, oder ein Schüler dazu berechtig ist und auch die Ahnung davon hat, könntet ihr einfach:
- eine eigene Samba-Freigabe erstellen (Passwort geschützt versteht sich, die nur von bestimmten Nutzern der Domäne genutzt werden können) oder
- einen eigenen FTP-User, auf dem das Programm "lagert"

Damit müsste der Lehrer 1. wissen, wie man auf die Freigabe kommt und 2. welches Passwort das richtige ist und 3. er muss noch unter dem richtigen User angemeldet sein ;-)


Boldar - Mo 14.09.09 20:27

Lad die Datei doch einfach bei rapidshare hoch und gib nur den berechtigten Personen den Link.


Jakob_Ullmann - Mo 14.09.09 20:54

user profile iconBoldar hat folgendes geschrieben Zum zitierten Posting springen:
Lad die Datei doch einfach bei rapidshare hoch und gib nur den berechtigten Personen den Link.


Security by obscurity ist eigentlich nie ne gute Lösung. Da muss nicht mal jemand petzen: Ich nehme mal an, dass die meisten Schulen, wie wir, an den Schulrechnern überwacht werden, besonders die Onlineaktivitäten (ist natürlich schön zu wissen, wenn es 60 Pornoseitenaufrufe in einer Woche gibt :wink: ).


Mister Riös - Mo 14.09.09 22:05

:lol:
Also das sind ja Alles schon lustige Beiträge hier^^.
Um das mal klar zu stellen: Ich bin dummerweise selbst nur Schüler ohne irgendwelche Sonderrechte... Wir versuchen eigentlich nur unseren Informatik-Unterricht etwas lustiger zu gestalten in dem wir Flash-Games spielen oder wie ich in diesem Fall ironischer Weise Programme mit der Programmiersprache schreiben, die wir eigentlich im selben Moment von unserem labernden Lehrer beigebracht bekommen sollten :) . Auch versuchen wir ständig uns irgendwo einzuhacken, vorbeizumogeln oder anderweitig etwas zu tun das wir nicht sollen^^. Deswegen haben wir es uns eigentlich selbst zuzuschreiben, dass wir kaum noch Rechte haben (Internetzugang gesperrt, keine Programme installieren dürfen usw.) Wegen letzteren Punkten fallen auch Rapidshare oder WinRAR aus, da wär ich auch selbst drauf gekommen :wink: .
user profile iconWebo hat folgendes geschrieben Zum zitierten Posting springen:
Eine andere Möglichkeit des Schutzes, welche mir grade so spontan eingefallen ist:
Ich weiss ja nicht, inwieweit du Befugnisse am Schulserver hast, aber wenn du, oder ein Schüler dazu berechtig ist und auch die Ahnung davon hat, könntet ihr einfach:
- eine eigene Samba-Freigabe erstellen (Passwort geschützt versteht sich, die nur von bestimmten Nutzern der Domäne genutzt werden können) oder
- einen eigenen FTP-User, auf dem das Programm "lagert"

Das fällt beides weg, ersteres erstmal weil ich keine ahung von diesem Samba hab^^ und wirklich keiner auch nur eine Möglichkeit hat da irgendwas an dem Server zu machen. Zweiteres is klar, wegen Internet...

Es besteht halt bei einem einfachen Passwortschutz wie bei mir die Gefahr, dass wenn der Lehrer darauf aufmarksam wird (Petzerei, Oder einfach weil der Name "Stonie_Fight" (Stonie ist unser Lehrer) zu auffällig ist), dass er geknackt wird...
user profile iconJakob_Ullmann hat folgendes geschrieben Zum zitierten Posting springen:
Außerdem kann ich nur hoffen, dass das Passwort nicht wirklich subway ist.

...(Is rischdisch, sehr aufmerksam :wink: ), was ich ja gerne verhindern würde, wie im ersten Eintrag genannt, mit einfachen Methoden, sodass der Quellcode einfach nicht mehr eingesehen werden kann und es trotzdem nur diese *.exe gibt.
Also, um das jetzt nochmal zusammenzufassen: Gibt es eine Methode dazu oder nicht? Vielleicht einfach nur ein anderer Compiler oder so...

Ps: Verstecken is auch nicht, wir haben nur den einen, kleinen Ordner auf jenem Server :( .

Moderiert von user profile iconNarses: Zitat repariert.


jaenicke - Mo 14.09.09 22:11

user profile iconMister Riös hat folgendes geschrieben Zum zitierten Posting springen:
mit einfachen Methoden, sodass der Quellcode einfach nicht mehr eingesehen werden kann und es trotzdem nur diese *.exe gibt
Nun ja, ich bezweifle, dass eure Lehrer mit dem Assemblercode viel anfangen können werden, insofern...
Ich meine den Delphi-Code bekommt man nicht wieder raus.


Mister Riös - Mo 14.09.09 22:16

Das heißt mein Programm ist ohne Passwort eigentlich so lange sicher, bis mein Lehrer was tut..? (Bitte ohne Fachchinesich :wink: )


platzwart - Mo 14.09.09 22:39

ja


Narses - Mo 14.09.09 22:48

Moin!

@user profile iconMister Riös: Bist du sicher, dass du dich da im richtigen Institut aufhältst und das passende Fach für dich gewählt hast? :roll:

Lehrer sind nicht blöde, sondern lediglich ältere Schüler... :mrgreen: Und das bringt häufig etwas mit sich, dass man "Erfahrung" nennt - was glaubst du wohl, wieviele Lehrer hier mitlesen... 8)

Und jetzt noch ein bischen was Offizielles: es gefällt mir nicht, wie sich dieser Thread entwickelt. Wir sind keine Info-Unterricht-Sabotage-Helfer-Einrichtung. Wenn das so weiter geht, mache ich hier zu. :|

cu
Narses


Tilo - Di 15.09.09 06:43

WIe sieht es mit versteckten Ordner aus?

Unser Lehrer hatte den versteckten Ordner mit einem Spiel nicht gelsöcht entweder weil a) er es nicht gefunden hat, b) keinen Bock hatte den Rechner ein frisches Image drüberzubügeln c) kein Interesse am Nachverfolgen hatte und sich die Spieler gemerkt hatte (Mitarbeit im Unterricht).


Delete - Di 15.09.09 10:50

Ist ja schön und gut, das versteckt auf dem Server abzulegen, aber habt ihr schon mal an die Administratoren gedacht? Vor denen werdet ihr wohl kaum etwas auf dem Server verstecken können.

Desweiteren bin ich der gleichen Meinung wie Narses, wenn ihr Sch**ße bauen wollt, dann bringt euch das nötige Wissen auch selber bei. Dann lernt ihr sogar noch was dabei. :roll:


Mister Riös - Di 15.09.09 15:16

user profile iconNarses hat folgendes geschrieben Zum zitierten Posting springen:
Und jetzt noch ein bischen was Offizielles: es gefällt mir nicht, wie sich dieser Thread entwickelt. Wir sind keine Info-Unterricht-Sabotage-Helfer-Einrichtung. Wenn das so weiter geht, mache ich hier zu. :|

Oh je oO
So weit wollte ich es hier eigentlich nicht bringen... Ich werde nicht rechtfertigen, was wir im Unterricht machen. Es ging mir eigentlich nur darum, zu wissen wie ich meine Programme möglichst einfach schütze...

Naja, aber ich denke das hat sich jetzt geklärt, ich lasse alles so wie es ist! Trotzdem vielen Dank für die Antworten!