Kopierschutz

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.
Antworten
DMD-OL
User
Beiträge: 315
Registriert: Samstag 26. Dezember 2015, 16:21

hi,
ich erzeuge aus meinem code eine .exe datei die sich wunderbar auf andere computer kopieren läßt.
gibt es eine möglichkeit, das so zu schützen, daß nur ich das machen kann? denn ich möchte natürlich nicht,
daß sich der code von jedem überall hin kopieren läßt.
lg dmd
__deets__
User
Beiträge: 14529
Registriert: Mittwoch 14. Oktober 2015, 14:29

Das ist hier schon tausend mal durchdekliniert worden. Ein bisschen suchen durch's Forum wird das alles zu Tage foerdern. Die kurze Antwort ist: nein, so ohne weiteres (vor allem *einfach*) geht das nicht. So etwas musst du selbst bauen, und wirklich narrensicher wird es nur, wenn du einen Server betreibst, auf den dein Programm signifikante Teile seiner Logik ausgelagert hat.
DMD-OL
User
Beiträge: 315
Registriert: Samstag 26. Dezember 2015, 16:21

So etwas musst du selbst bauen, und wirklich narrensicher wird es nur, wenn du einen Server betreibst, auf den dein Programm signifikante Teile seiner Logik ausgelagert hat.
Ja, genau das möchte ich versuchen. Aber wie so oft: Aller Anfang ist schwer. Ich würde gern erst einmal damit starten, einen Server zu erzeugen, der von überall aus erreichbar ist. Da sollte sich doch ein RESTful web server gut machen oder geht das besser mit einem PostgreSQL-Server?
Sorry, leider zu viel Laie, zu wenig know-how!
Mir würde es sehr helfen, wie ich erstmal wüßte wie ich am besten anfange.
Wie würdest du sowas umsetzen?
lg dmd
__deets__
User
Beiträge: 14529
Registriert: Mittwoch 14. Oktober 2015, 14:29

Ich wuerde ja erstmal damit anfangen zu eruieren, was denn die Funktionalitaet sein soll, die der Server von der Software uebernehmen soll. Davon haengt dann ab, wie der aussieht. Und noch einen Schritt zurueck vielleicht die Frage - muss das alles sein? Wievele User peilst du an, wie hoch ist die Chance, dass diese das Programm raubkopieren, und wieviel kostet es? Damit kannst du abschaetzen, ob es sich ueberhaupt lohnt, die Zeit in so etwas zu stecken.
DMD-OL
User
Beiträge: 315
Registriert: Samstag 26. Dezember 2015, 16:21

Natürlich lohnt sich das, weil ich einfach auch Bock habe, das zu machen.
Was am Ende dabei raus kommt, steht natürlich in den Sternen. Für mich ist das überhaupt keine verschwendete Zeit, habe nämlich Bock drauf.
Unter der Funktionalität stelle ich mir vor, soll man sich online an einer Datenbank anmelden können, um einen Linzenzcode abfragen zu können, wenn dieser korrekt gegeben ist, soll das Programm dann starten können, ansonsten nicht. Das ist erstmal schon alles. Zukünftig hätte ich auch gern noch die Möglichkeit, eine Onlinepräsenz aufzubauen.
Daher denke ich, würde ich gern mit Python und Django arbeiten. So weit ich weiß, kann Django Datenbank und Web, oder?
Passt das so???
BlackJack

@DMD-OL: Damit erreichst Du aber nicht das was Du möchtest. Da würde man einfach die Abfrage der Lizenz beim Server aus Deinem Programm raus patchen und schon kann man es kopieren. Auf dem Server muss etwas passieren was man nicht einfach so ersetzen kann. Insbesondere nichts was sich einfach durch *nichts* ersetzen lässt.
__deets__
User
Beiträge: 14529
Registriert: Mittwoch 14. Oktober 2015, 14:29

Ganz generell passt das so, ob sich dein Lizenzserver sinnvoll verhaelt (also wirklich schuetzt vor Missbrauch etc) haengt jetzt von der konkreten Implementierung ab.

Wir bauen dazu einen Challenge-Code der Hardware-Spezifisch ist, und der in die Autorisierung der Lizenz eingeht - nur auf diesem Rechner darf die Lizenz genutzt werden. In die Richtung kannst du ja recherchieren.
Sirius3
User
Beiträge: 17741
Registriert: Sonntag 21. Oktober 2012, 17:20

@__deets__: wir reden hier von Python. Theoretisch kann man sich die Stelle suchen, an der der Lizenzschlüssel abgefragt wird, die Abfrage durch ein Lizenz-Mockup ersetzen und sich die Stellen liefern lassen, an denen irgendetwas mit dem Lizenzschlüssel gemacht wird. Wenn man das beliebig kompliziert macht, ist es aber immer noch halb so kompliziert, die Lizenzabfragen wieder auszubauen. Im besten Fall ist das nur nutzlos, im Normalfall macht man das Programm komplexer, fehlerhafter und vergeudet seine Zeit, die man besser in bessere Funktionalität gesteckt hätte.
__deets__
User
Beiträge: 14529
Registriert: Mittwoch 14. Oktober 2015, 14:29

@Sirius3: danke das du mich darueber aufgeklaert hast, wie die Leute unsere Software bereits knacken (in C++, das macht keinen wirklichen Unterschied). Wenn die Motivation da ist, passiert's eh.

Der OP hat aber schon klar gemacht, dass er es halt machen will - weil er will. Wenn sein Programm nur als ByteCode ausgeliefert wird, hat das zumindest schon mal dem Gelegenheitsskriptkiddie einen Riegel vorgeschoben.

Und es ist ein Irrglaube anzunehmen, das solche Systeme nutzlos waeren, nur weil die Huerden nicht besonders hoch sind. Es gibt zB institutionelle Kunden, die wollen ja bezahlen, und freuen sich zB ueber die Integration mit Systemen wie Sasafras.
DMD-OL
User
Beiträge: 315
Registriert: Samstag 26. Dezember 2015, 16:21

ich möchte das nicht schützen auf teufel komm raus, meine güte. und ich möchte nicht, dass es jeder einfach benutzen kann.
einen soliden mittelweg wird es doch wohl geben, mein programm im "normalen" sinn zu schützen.
da ich es gern versuchen würde zu verkaufen, brauche ich eben so etwas und will das gern selbst schreiben.
also noch mal zu meiner frage: kann ich mit python und django eine lizenzabhängige verkaufsbasis realisieren?
z.B. soll sich das programm nach start am server anmelden, lizenz abfragen, wenn ok, starten; wenn nicht ok, würde ich es gern sperren können (JAAAA natürlich gibt es hacker), und falls überwiesen wurde, wieder frei schalten können.
ich würde gern wissen, ob das mit python django realisierbar ist?
hab auch grad etwas gefunden:
https://docs.newrelic.com/docs/agents/p ... min-script , das irgendwie auch so
scheint, als wenn man damit sowas realisieren kann?
hilfe?
Sirius3
User
Beiträge: 17741
Registriert: Sonntag 21. Oktober 2012, 17:20

@DMD-OL: Du willst das Programm verkaufen, dann bau doch nichts ein, was den Kunden nur nervt. Ich will kein Programm, das ständig nach Hause telefoniert und nicht mehr funktioniert, nur weil keine Internetverbindung existiert. Entweder sind die Leute bereit dazu, für ein gutes Programm mit gutem Service gutes Geld zu zahlen oder nicht. Der Anteil der Leute, die das Programm auch kaufen würden, wenn sie es nicht klauen können, ist mMn sehr gering.
__deets__
User
Beiträge: 14529
Registriert: Mittwoch 14. Oktober 2015, 14:29

Wir machen das auch ohne nach-hause-telefonieren. Der erwaehnte Hardware-Code plus Softwareversion wird durch eine webbrowser-Modul-artige Funktion an den Browser delegiert. Da muss die Benutzerin sich dann einloggen, und wenn sie eine passende Lizenz hat, wird der Hardware+Versions-Code signiert mit dem private key vom Server. Dieses signierte Datenpaket landet dann via custom-protocol (also unserefirma: statt http:, kann man im OS anmelden) in der Anwendung. Die speichert dieses signierte Ding, und kann in Zukunft dank eingebettetem public key selbststaendig und ohne Netzverbindung pruefen, ob sie berechtigt ist zu laufen.

Es gibt sogar einen Pfad fuer air-gapped Rechner, aber die Lizenzverwaltung/Kauf selbst findet online statt und geht auch nur so.
DMD-OL
User
Beiträge: 315
Registriert: Samstag 26. Dezember 2015, 16:21

danke __deets__ :) ich werde es bis auf ein paar fragen hier und da versuchen...
Antworten