Info für Funktion: Online auf meinem Server prüfen, ob eine bestimmte Datei vorhanden, falls nicht, Programm beenden.

  • Hallo,

    es ist ja sicher mit AutoIt möglich, eine eigen-programmierte Software online (z. B. per FTP) beim Start (vor Aufbau der GUI prüfen zu lassen, ob z. B. eine Ini oder Txt Datei mit gewissem Inhalt (oder nur die Datei alleine) auf dem eigenen Server vorhanden ist.
    Falls die Datei oder der Textinhalt der Datei nicht vorhanden ist, soll sich die Software beenden, eventuell noch eine MsgBox ausgeben.

    Meine Fragen:
    a) Ist das rechtlich überhaupt zulässig, wenn ich Software zum Download zur Verfügung stelle (Freeware) und diese nach belieben beenden kann?

    b) Falls ja, wie würdet Ihr das am einfachsten oder am besten umsetzen (nur mit einer Datei auf dem Server (Datei vorhanden), mit Dateiinhalt (Text) oder ganz anders).

    Wenn ihr bereits eine entsprechende Funktion kennt, wäre ich natürlich über ein Beispiel dankbar.

    c) Falls nein oder wenn Ihr bedenken habt, bitte unbedingt äußern. Ich kenne mich rechtlich da überhaupt nicht aus.

    • Offizieller Beitrag

    Welchen Sinn macht eine call home Funktion in einem Freewareprogramm?

  • Nun ja, wie oben beschrieben ist es event. nützlich, wenn man eine Software auf einfache Weise abschalten kann. Ob es für jedermann Sinn macht oder nicht, sei mal dahingestellt. Es kann auf jeden Fall eine Art Schutzmechanismus für den Programmierer oder den Author sein, wenn er merkt, dass z. B. die Weiterentwicklung einer Software aus Zeitgründen keinen Sinn mehr macht und die bisherige Version vom Markt nehmen möchte oder erkennt, dass nach Jahren sich z. B. von der programmierten Software sich in abhängigkeit stehende Drittsoftware nicht mehr Freeware, sondern Bezahlsoftware gemacht wurde. Um dann in Folge Stress zu vermeiden kann es durchaus IMHO nützlich sein, einfach einen Schalter umzulegen, der die Ausführung der eigenprogrammierten Software und somit Stress verhindert.

    Daher meine Frage, wie das 1) am sinnvollsten Eurer Meinung nach umsetzbar und 2) ob dies überhaupt legal wäre. Event. sollte man vor der ersten Ausführung der Software auf diesen Umstand hinweisen und den Benutzer der Software, z. B. das ganze durch setzen eines Hakens (als gelesen oder akzeptiert) bestätigen lassen.

    Natürlich abgesehen davon, dass ich Dir absolut Recht damit gebe, dass eine call home Funktion in einem Freewareprogramm eher den AV-Wächter wachrüttelt und damit den Sinn schmälert. Event. noch andere Nachteile mit sich bringen kann, die ich bislang noch nicht kenne.

    Alternative Lösungen sind daher herzlich willkommen. Eure Meinung (gerne auch kritisch begründet) ist mir sehr wichtig.

  • Meine Meinung:
    Solange du für dein Programm kein Geld verlangst sollte es dir frei stehen mit deinem Programm zu tun und zu lassen, was dir beliebt.
    Je nachdem musst du dann aber auch in Kauf nehmen, dass du evtl. nicht mehr seriös wirkst und sich User künftig nicht mehr für deine Programme entscheiden werden.

    Eine "call home" Funktion ist aber durchaus auch in Freeware sinnvoll, bleibt auch nicht aus, wenn man eine Update Funktion in seinem Programm integriert.

    Und wegen dem Beenden des Programms: ich gehe da teils sogar noch weiter indem ich bei bestimmten Umständen mit _SelfDelete() arbeite.


    Zu deinem Vorhaben im groben: per InetRead(), oder ähnlichem, auf deine Serverseitige Datei prüfen, evtl. auch auslesen und wenn diese nicht existiert, oder der ein bestimmter Text vorhanden ist, dann einfach die
    Beenden Routine aufrufen.

    • Offizieller Beitrag

    Eine Freeware, die plötzlich keine Freeware mehr sein soll, gibt es nicht!
    Wenn, dann kann man das nur im Zuge einer neuen Version der Software ändern. Die alte Version bleibt aber weiterhin Freeware.
    Das, was Du beschreibst, erinnert mich eher an "Miet"-Software (365 Tage Version o.ä.). Dort macht es Sinn, die Software "abzuschalten".
    Ein Freeware-Programm, was so ein Verhalten an den Tag legt, würde ich jedenfalls nicht einsetzen.

  • Hallo Lottich und Oscar,

    vielen Dank für Eure Einschätzung.

    Ich habe jetzt mal einen "Online- Software Abschalter" geschrieben und getestet. Funktioniert gut.

    Eine Freeware, die plötzlich keine Freeware mehr sein soll, gibt es nicht!

    Nun ja, wie oben beschrieben ist es event. nützlich, wenn man eine Software auf einfache Weise abschalten kann. Ob es für jedermann Sinn macht oder nicht, sei mal dahingestellt. Es kann auf jeden Fall eine Art Schutzmechanismus für den Programmierer oder den Author sein, wenn er merkt, dass z. B. die Weiterentwicklung einer Software aus Zeitgründen keinen Sinn mehr macht und die bisherige Version vom Markt nehmen möchte oder erkennt, dass nach Jahren sich z. B. von der programmierten Software sich in abhängigkeit stehende Drittsoftware nicht mehr Freeware, sondern Bezahlsoftware gemacht wurde. Um dann in Folge Stress zu vermeiden kann es durchaus IMHO nützlich sein, einfach einen Schalter umzulegen, der die Ausführung der eigenprogrammierten Software und somit Stress verhindert.

    Eine "call home" Funktion ist aber durchaus auch in Freeware sinnvoll, bleibt auch nicht aus, wenn man eine Update Funktion in seinem Programm integriert.

    Sehe ich auch so. Im Grunde ist vom Code her auch eine Updateprüfung eine "call home" Funktion. Und Updates werden auch desöfteren bei Freeware geprüft.


    Wenn, dann kann man das nur im Zuge einer neuen Version der Software ändern. Die alte Version bleibt aber weiterhin Freeware.

    Das stimmt. Nur wenn man Missbrauch der Software verhindern möchte als auch eine unerwünschte Kommerzialisierung durch Dritte, hat man zumindest eine Möglichkeit, sein geistiges Eigentum vom INet herunter zu nehmen.

    Was ich nun noch unbedingt wissen möchte ist, wenn ich eine 100% Freeware (also auch für kommerzielle Zwecke einsetzbare Software) einfach online abschalte und eine Firma dann Schadensersatz geltend macht, weil ich meine eigenentwickelte Software vom Netz genommen habe, ist das strafbar? Abgesehen davon dass man immer die unangenehmen Umstände in einem solchen Fall hätte.

    Wie sieht es aus wenn die Software bekannt ist und bspw. bei Chip veröffentlicht ist. Bin ich verpflichtet zu melden, dass ich die Software vom Netz genommen habe?

  • Wobei dann die Herausforderung in einer wasserdicht formulierten EULA besteht.

    Noch dazu gibt es keine praktikable Möglichkeit, geistiges Eigentum, welches einmal in den Weiten des Internet gelandet ist, wieder "zurückzuholen". Solche Schutzmechanismen können relativ leicht ausgehebelt werden, sogar ohne Dekompilierung o.Ä... Noch dazu kommt, dass dein Programm ohne Internetzugang unbenutzbar wird.
    Die "normale" Lösung ist eine Lizenzvereinbarung, die gewisse Verwendungsszenarien von vorne rein ausschließt. Hält sich ein Benutzer nicht daran, findet also ein Missbrauch statt, dann solltest du normalerweise mit Rechtsmitteln recht gute Chancen haben.

  • Ich glaube, wenn du eine EULA schreibst, die akzeptiert werden muss und du darin auf deinen "Abschalter" hinweist, solltest du vor Klagen sicher sein.

    Wobei dann die Herausforderung in einer wasserdicht formulierten EULA besteht.

    Vielen Dank für Eure Antworten.
    Eine von uns produzierte EULA oder ein Lizenzvertrag hat in DE Gültigkeit, event. in Europa. Aber der Rest? Siehe dieses Beispiel bei Sysinternals. Klar, man kann einen Lizenzvertrag als .txt zu seiner Software zufügen und natürlich auch von einem Anwalt bedingt gültige EULA's schmieden lassen. Aber ganau hier blickt doch kein Mensch mehr durch. Das Netz ist voll mit solchen Fragen. Und irgendwas vergisst man immer in einem Lizenzvertrag oder in einer EULA, wenn es nicht professionell von einem Anwalt für Medienrecht für viel Geld und individuell für die Software maßgeschneidert wird. Und wer will das schon für seine Software, die er für lau zum Download anbietet machen und bezahlen.

    Bitte nicht falsch verstehen. Ich bin wirklich kein Korintenkacker oder ähnliches. Und es geht auch nicht nur um meine bislang programmierte Software. Mir geht es vor allem als Familienvater gewissermaßen um bestmögliche Risikominimierung.

    Unser Rechtssystem ist schwierig. Von Europäischen oder internationalem Recht ganz zu schweigen. Ja und Software, insbesondere international gehaltene oder angebotene Freeware-Software kann brutale Auswirkungen haben.

    Stellt Euch folgendes Beispiel vor: Ihr habt eine richtig geile Software zur Imageerstellung für Server und Clients entwickelt, welche beispielsweise auch von Firmen eingesetzt wird. Diese Software sorgt in irgendeiner Weise dafür, dass einer Firma ein Schaden entsteht. NEhmen wir mal an, die Rücksicherung funktioniert nicht weil das Image falsch erstellt wurde. Zumindest die Behauptung ist dann mal da. Egal jetzt mal aus welchem Grund. Dann geht doch das Gezittere los. Wenn eine einzige knackige Schadensersatzforderung kommt, ist man gezwungen zum Anwalt zu laufen und richtig Kohle zu berappen. Ein Anwalt für Medienrecht ist in Stuttgart ab 550 € / Stunde zu haben. Das ist aber der billigste. Und Ihr wisst ja, die Richter machen immer Vergleiche. Halbe halbe ist die Regel. Man redet immer von Verhältnismäßigkeit bei Strafen.

    Darauf habe ich keine Lust. Vor allem dann nicht, wenn mehrere kommen sollten und weiterere Schaden entstehen könnten. Daher meine Frage: Ist es legal, Freeware einfach "auszuschalten"! Denn wenn das legal wäre, könnte man Risiko minimieren.

    So wie ich das sehe, gibt es wohl keine 100%ige Sicherheit. Event. hat jemand Erfahrungen wie vorzugehen wäre, um Risiko zumindest zu minimieren. Tut mir leid dass ich Euch volltexte. Doch es geht uns alle an, meine ich.
    Vor allem wenn wir etwas zum Download zur Verfügung stellen.

  • rein logisch betrachtet (nach dem ich deine Verlinkungen gelesen habe):

    Da bei einer Freeware kein Kauf statt findet, sollte es ausreichen, dass du während der Installation ausdrücklich darauf hinweist, dass dein Programm über eine Abschaltfunktion verfügt.
    In wie weit diese nun Sinnvoll ist, sei erstmal dahin gestellt...

    Ausserdem würde ich IMMER darauf hinweisen, dass du für keine Schäden aufkommst, die durch die Nutzung deines Programms entstehen könnten.
    Ein Programm sollte aber erst dann veröffentlicht werden, wenn es auch tatsächlich funktioniert. Von kleineren Bugs mal abgesehen...
    Dann wird der Fall wohl kaum auftreten, dass

    Diese Software sorgt in irgendeiner Weise dafür, dass einer Firma ein Schaden entsteht. Nehmen wir mal an, die Rücksicherung funktioniert nicht weil das Image falsch erstellt wurde.

  • Da bei einer Freeware kein Kauf statt findet, sollte es ausreichen, dass du während der Installation ausdrücklich darauf hinweist, dass dein Programm über eine Abschaltfunktion verfügt.

    Ok. Das brigt mich weiter. Das heißt, dass angebotene Downloads in einem Zip-Paket wegfallen werden und ein Installer dafür sogen muss, dass bei der Installation der Software die Benutzer mit einem Haken "ich habe gelesen und stimme zu" einen Lizenzvertrag akzeptieren müssen oder die Software nicht nutzen können.

    Danke für Deine Mühen.

  • Statt InetGet würde ich dir aber InetRead empfehlen, dann wird zumindest nicht jedesmal ne Datei erstellt. Deutlich schonender für die Festplatte ;)

    BinaryToString(InetRead("URL"))

    Wobei das stoppen von Freeware eine schlechte Idee ist, denke ich...
    Sowas kann man nicht gut umsetzen, bzw. durchsetzen. Bei Freeware kann man nicht erwarten, dass keine Fehler auftreten.
    Und jedesmal zu prüfen ist meiner Meinung nach ein unding, dass viele blöderweise machen. Ich will nicht, dass jedes Programm, das ich starte ins Internet geht...
    Deshalb schalte ich auch automatische Updates generell aus. Wenn mir ein Programm wichtig ist gucke ich nach, ob ein Update vorhanden ist.
    Einen "Nach Updates suchen"-Button finde ich dann sehr nützlich.

    Aber das ist ein generelles Problem, dass vermeht auftreten wird, da mittlerweile die meiste Software ins Internet geht... Bleibt nur das blocken für alle Programme, denen es nicht erlaubt wird.........

  • Statt InetGet würde ich dir aber InetRead empfehlen

    Stimmt. Danke für den Tip.


    Bei Freeware kann man nicht erwarten, dass keine Fehler auftreten.

    Diese Meinung vertrete ich auch. Dennoch, schon alleine die Zeit, welche eine Software auf dem Markt ist, kann zu Fehlfunktionen führen. Siehe XP > Win10

    Einen "Nach Updates suchen"-Button finde ich dann sehr nützlich.

    Das ist ein sehr guter Tip.

    Bleibt nur das blocken für alle Programme, denen es nicht erlaubt wird

    Ich denke, der Regeluser wird es nicht merken, wenn eine Datei abgefragt wird. Grundsätzlich gebe ich Dir vollkommen recht.

  • Diesen "Haftungsausschluss" für eventuell durch die Software verursachte Schäden haben die gängigsten Open Source Lizenzen auch schon mit dabei. Als Beispiel mal der Einleitungstext der GNU GPLv3 (Quelle: gnu.org):

  • Danke Dir für den sehr guten Hinweis und den Link. Das muss ich mir mal alles in Ruhe anschauen.

    Wenn ich aber diesen GNU Dschungel sehe, wird mir speiübel und mir wird klar, warum es viele gut bezahlte Anwälte im Medienrecht gibt.

    An und für sich wäre ein guter Lizenzgenerator oder ein Lizenzberater für Software in DE eine echte Marktlücke. Einen nach aktuellem Lizenzrecht funktionierenden Freeware Lizenzgenerator hab' ich nicht gefunden. Vor allem wenn ich eine rein deutschsprachige Software programmiere benötige ich einen nach deutschem Recht gültige Lizenz, oder ist das alles international zu bewerten?

  • Darf man mal das Programm sehen, um das es sich handelt?
    Bei so einem Aufgebot muss das ja mächtig gewaltig sein!

    Anbei: Der Schalter ist nicht gerade trickreich, einen Weg ihn zu umgehen kann man super einfach finden...

    Es gibt sehr viele Leute, die glauben. Aber aus Aberglauben.
    - Blaise Pascal

  • Der Schalter ist nicht gerade trickreich, einen Weg ihn zu umgehen kann man super einfach finden...

    Sicher kann ein erfahrener Programmierer wie Du, eine mit AutoIt erstellte Exe event. dekompilieren oder mit anderen Tools (die von mir beschriebene Codezeilen und Wege) herausfinden, mit welchen Instrumenten eine Abschaltung der Software, die vom Entwickler geplant ist, umgangen werden kann. Und genau hier ist wiederum ein Lizenzvertrag notwendig, der gleichfalls mit anderen Lizenzbestimmungen zusammen, genau dies untersagt. An dieser Hilfestellung haben mir bereits Lottich, Kanashius und Chesstiger sehr geholfen.

    Um auf das Zitat zurückzukommen: Gib' mir bitte (wenn's denn so einfach ist einen Weg zum Umgehen des Schalters zu finden) einen Tip:
    a) Wie er umgangen werden kann (denn einmal online gehen reicht aus, damit er wieder aktiv wird)
    b) Wie eine Abschaltung besser zu organisieren wäre (event. mit Reg.-Einträgen?).

    Ich bin mir sicher, dass Deine Hilfe in diesem Fall für viele mitlesende Entwickler sehr interessant sein könnte.

    Darf man mal das Programm sehen, um das es sich handelt?
    Bei so einem Aufgebot muss das ja mächtig gewaltig sein!

    Genau hier klafft IMHO eine Lücke der meisten Freewareanbieter auf. Es ist ganz egal, welche Software Du oder ich oder jemand anderes anbietest. Sei sie klein oder komplex. Der Zweck spielt keine Rolle. Freeware ist nicht haftungsfrei! Wenn jemandem Schaden durch Deine Software entsteht, kann/wird er versuchen, den Schaden der durch Deine Software entstanden ist, wieder von Dir einzufordern. Es gibt verschiedenste Modelle und Methoden von Lizenzierungstexten oder oder Lizenzverträgen oder von AGB, die eine wichtige Rolle zum Datenschutz und Urheberrecht (Schutz vor geistigem Eigentum) und besonders zur Haftung wichtige Rollen spielen.

    Daher reduzieren die meisten Freeware-Entwickler das Haftungsrisiko, indem Sie die Nutzung von ihrer Software für kommerzielle Zwecke verbieten oder schreiben, dass dann ein separater Lizenzvertrag geschlossen werden muss. Im Haftungsfall ist für einen privaten Kläger ein wesentlich geringerer Schadensersatz gegeben.

    Ich glaube, wenn du eine EULA schreibst, die akzeptiert werden muss und du darin auf deinen "Abschalter" hinweist, solltest du vor Klagen sicher sein.

    Das was Lottich geschrieben hat stimmt absolut und muss zusätzlich vom Benutzer nachweisbar akzeptiert werden (geht eigentlich nur mit einem Installerverfahren). Und das nicht nur bei einem Abschalter. Oder meist Du wirklich, es reicht schon aus, wenn eine entsprechende Lizenzdatei Deiner Software im ZIP-Paket enthalten ist? Nach geltendem Recht reicht es eher nicht aus (nachdem was ich recheriert habe)! Nach geltendem Recht muss der Benutzer "mit -ich akzeptiere-" die Lizenz nicht nur als gelesen, sondern als akzeptiert bestätigen. Und nur dann, wenn auch noch der Inhalt des Lizenzvertrages entsprechend gut formuliert ist und das wesentliche nach geltendem Recht abdeckt, bist Du relativ vor Klagen Dritter sicher.

  • Um auf das Zitat zurückzukommen: Gib' mir bitte (wenn's denn so einfach ist einen Weg zum Umgehen des Schalters zu finden) einen Tip:
    a) Wie er umgangen werden kann (denn einmal online gehen reicht aus, damit er wieder aktiv wird)
    b) Wie eine Abschaltung besser zu organisieren wäre (event. mit Reg.-Einträgen?).

    1. Programm offline starten, dann online gehen.
    2. Anschließend an Ersteres: Starten des Programms in Virtueller Umgebung (Sandboxie), da siehst du welche Dateien erstellt usw werden. Diese lokalisieren, finden, fertig.
    Sinnvoller wäre, was hier angesprochen wurde, über InetRead() zu agieren und somit keine Datei erstellen zu lassen... was man aber auch ganz simpel umgeht, indem man den Datenverkehr überwacht und letztendlich eine eigene Weiterleitung einbaut, sodass der gewünschte Wert geschickt wird.

    Ansonsten: Wüsste keine Lösung, wie man "alle" Fälle ausschließt. Aufgrund dessen, wie vehement du einen Killswitch einbauen willst, gehe ich auch davon aus dass Nutzer alles tun würden, um das Produkt weiterhin zu nutzen. Von daher sind alle Bemühungen an dieser Stelle absolut umsonst.

    Es gibt sehr viele Leute, die glauben. Aber aus Aberglauben.
    - Blaise Pascal

  • @Xorianator
    Um ehrlich zu sein: No System is safe. Aber die meisten Nutzer werden wohl nicht mit Wireshark, Sandboxie,... so umgehen können, bzw. die mühe auf sich nehmen.
    Außerdem wurden dann ja maßnahmen unternommen, die Sicherheit/den Willen des Autors zu umgehen, bzw. die Lizenzbedingungen verletzt. Dann jemanden haftbar machen zu wollen wäre dann jawohl selten dämlich^^


    Wobei ich mir ja langsam sorgen machen muss... Ich hab meine Programme bisher immer umsonst (Freeware) angeboten und das komplett ohne Lizenz oder ähnliches, einfach als Download.
    Ich hoffe ich muss mir keine sorgen machen, dass mich da jemand haftbar machen will^^ (Aber mal ehrlich: Wenn die meine Software benutzen sind sie selber Schuld. Ich biete sie nur an)

  • Um ehrlich zu sein: No System is safe. Aber die meisten Nutzer werden wohl nicht mit Wireshark, Sandboxie,... so umgehen können, bzw. die mühe auf sich nehmen.

    Genau das ist ja der Punkt. Warum also einen Killswitch einbauen, statt dass das Programm eingebaute Fallback Funktionen hat, wodurch es merkt ob es noch lauffähig ist, oder nicht?

    Es gibt sehr viele Leute, die glauben. Aber aus Aberglauben.
    - Blaise Pascal