# Kopierschutz für Programm



## tommiwe (10. Dez 2008)

Hallo!

Gibt es irgendwo eine einfache Anleitung (für einen Programmieranfänger), wie man ein Java-Programm schützen kann, so dass es nicht jeder bei sich installieren kann, sondern erst nach Freischaltung?
Also im Prinzip eine Installationsroutine mit Schutzmechanismen. Vielleicht geht es ja auch einfacher.


----------



## diggaa1984 (10. Dez 2008)

könntest ganz gemein, nen installfile baun, das programm auf rechner schieben, was in registry schreiben, und danach das installfile löschen ^^ beim programmstart auf reg-key prüfen. sodass zumindest nicht per copy 'n paste der progfiles das ding läuft  .. aber trotzdem fies, wenn du dem anwender die installfiles klaust 

aber als einfach würde ich die thematik nich abstempeln


----------



## ARadauer (10. Dez 2008)

der benutzer muss ich mit einem namen regestrieren und bekommt eine seriennummer
das programm verbindet sich auf einen server und fragt mit username und seriennummer ab ob es regestriert ist... 

der server muss kein mächtiges ding sein, ein 5 zeilen php script würd da schon reichen...


----------



## franzi (10. Dez 2008)

Hallo

Bei all meinen Programmen die ich geschützt weitergeben/verkaufen will hab ich eine Serial-Key abfrage eingebaut. Beim ersten mal starten muss der User den Serial-Key eingeben, den ich dann über dann über Java Preferences (http://java.sun.com/j2se/1.4.2/docs/api/java/util/prefs/PreferencesFactory.html) in die Registry schreibe. Bei jedem Programmstart prüfe ich auf die Gültigkeit des Serial-Keys in der Registry.

Ich selbst hab mit dann dazu einen KeyGenerator programmiert, mit dem ich Keys für die User erstellen kann.

Je nach Lizenzart (z.b. ob der Key nur auf einen Computer gültig sein soll, dann wird zusätzlich der Hostname abgefragt) hat der Serial-Key verschiedene Abhängigkeiten.

LG franzi


----------



## ARadauer (10. Dez 2008)

> Bei jedem Programmstart prüfe ich auf die Gültigkeit des Serial-Keys in der Registry


wie machst du das? mathematisch oder über einen server?


----------



## franzi (10. Dez 2008)

Mathematisch. Hab mir einen Algorithmus ausgedacht und programmiert.

Über einen Server ist immer problematisch, vor allem weils bei Desktop-Programmen ja auch die konstellation gibt dass der User offline arbeitet.

LG franz


----------



## tommiwe (10. Dez 2008)

Hallo!


			
				franzi hat gesagt.:
			
		

> Bei all meinen Programmen die ich geschützt weitergeben/verkaufen will hab ich eine Serial-Key abfrage eingebaut. Beim ersten mal starten muss der User den Serial-Key eingeben, den ich dann über dann über Java Preferences (http://java.sun.com/j2se/1.4.2/docs/api/java/util/prefs/PreferencesFactory.html) in die Registry schreibe. Bei jedem Programmstart prüfe ich auf die Gültigkeit des Serial-Keys in der Registry.
> 
> Ich selbst hab mit dann dazu einen KeyGenerator programmiert, mit dem ich Keys für die User erstellen kann.
> 
> Je nach Lizenzart (z.b. ob der Key nur auf einen Computer gültig sein soll, dann wird zusätzlich der Hostname abgefragt) hat der Serial-Key verschiedene Abhängigkeiten.


Klingt nach dem, was ich gebrauchen könnte. Klingt aber auch mächtig kompliziert.
Was ist denn, wenn die Anwendung auch auf Linux und Mac laufen kann. Die kennt ja keine Registry. Und der Vorteil von Java-Programmen ist ja die Plattformunabhängigkeit.


----------



## franzi (11. Dez 2008)

Auf jeden Fall ist Plattform-Unhabhängigkeit wichtig bei Java. Über die Java-Preferences [1] wird das in einer Java "internen" Registry-Store gespeichert, nicht in der Windows-Registry wie du vielleicht vermutet hast. Deshalb läuft das auch auf Linux, Mac, ...

Schick mir eine PM, eventuell kann ich dir behilflich sein.

lg franzi

[1] http://java.sun.com/j2se/1.4.2/docs/api/java/util/prefs/PreferencesFactory.html

////////////////////
www.stumpner.at
Medien-Datenbanken und Java Programmierung


----------



## HoaX (11. Dez 2008)

der PreferencesFactory hat aber auch so ihre tücken. mit java5 (oder wars java6? eins von beiden) funktioniert der hier unter linux nicht da er probleme mit dem schreiben des xml hat - indent-width nicht unterstützt oder so...


----------



## Noctarius (15. Dez 2008)

franzi hat gesagt.:
			
		

> Mathematisch. Hab mir einen Algorithmus ausgedacht und programmiert.



Benutzt du denn einen Obfuscator? Ich mein wenn nicht hat doch jeder deinen Algorithmus in 5min (der ein wenig Java Erfahrung hat) oder ist da auch eine Art Private-Public Key Verfahren hinter?


----------



## SlaterB (15. Dez 2008)

genauso könnte dann jeder die Registrierung im Code generell ausschalten oder die Verbindung zum Server usw.,
Quellcode-Sicherheit ist ja ein etwas anderes Thema


----------



## Noctarius (15. Dez 2008)

Hehe naja aber ich denke für einige könnte es fast schwieriger sein ein bestehendes Programm dann neu zu kompilieren (was man bei Quellcodeäanderung müsste) als grad mal eben nen neues Stück Code zu bauen (bzw zu kopieren) und nen Key zu generieren ^^


----------

