Software schützen! DEMOVersion

Status
Nicht offen für weitere Antworten.
X

XMLler

Gast
Hallo,

ich wollte meine Software als DEMO Version auf meiner Website veröffentlichen. Wollte aber das die Version nach einiger Zeit abläuft und damit nicht mehr gültig ist. Wie würdet ihr sowas machen? Ich prüfe nur das Datum ab:

Code:
DateFormat formatter = DateFormat.getDateTimeInstance();
Date Ablauf_Datum = formatter.parse( "31.12.2008 13:11:12" ); 
Date Aktuelles_Datum = new Date();					
			
if (Ablauf_Datum.after(Aktuelles_Datum))
    // Starten der Software
else
    // Abbrechen der Software

Ich denke, da gibs bessere Methoden. Achja, ich hatte auch die Idee das Programm mit "frischen" Lizensen übers I-Net umzudaten. Quasi die Information immer von einem Server zu holen. Aber das fällt komplett weg, weil die Software auf auch Offline PC's genutzt werden sollte.

Gruß
 

quippy

Bekanntes Mitglied
Mit der Variante bekommst Du es leider nur hin, daß die Version ab einem von Dir festgelegtem Datum nicht mehr läuft. Eine Demo-Version sollte aber immer 30 Tage oder so laufen, denn wer nun die Software am 24.12. runterläd, hat nicht viel Zeit zum Testen.

Das wird dann allerdings kompliziert, da Du Dir irgendwo merken musst, wann die Software installiert oder das erste mal gestartet wurde (z.B. das Datum der Konfigurations-Datei oder sowas, die ja dann angelegt wird). Das ist mit recht geringem Aufwand aber auch Hackbar (Touch auf die Konfigdatei).

Deine Variante allerdings auch, wenn man mit einem Decompiler an die Sache rangeht (dann ist es i.d.R. immer knackbar, also müßte man mit z.B. einem Obfusecator arbeiten, um die Klasse zu "verkrypten")...

In C-Compilaten macht man gerne sowas kaputtes, die Prüfung nicht in eine zentrale Methode auszulagern, sondern als #Define zu deklarieren, so daß sie an allen Stellen, wo geprüft wird, vom Compiler wieder komplett hineingecoded wird. Damit ist der Assemblercode dann nur mit Aufwand umstellbar.

Worauf ich hinauswill: Was soll Dein Ziel sein? Möchtest Du gegen potentielle Knacker bestehen, die Deine Software dann freigeschaltet weiterverteilen könnten, oder möchtest Du erst mal nur das Problem an sich lösen?

Im letzten Fall bietet es sich z.B. an, über Deine WebSeite einen Testkey austellen zu lassen, der Base64 und/oder gezippt ist und das Ausstellungsdatum enthällt und per eMail versandt werden muss. Dann kannst Du mit der eMail prüfen, ob der schon einen Schlüssel bekommen hat.
(Mit den heutigen Wegwerf-Mailadress-Diensten ist das aber auch kein Schutz - wobei Du bekannte Domains vom Verfahren ausschließen kannst)

Mit dem Lizenzkey kannst Du dann die Laufzeit der Software prüfen.

Und noch was am Rande: es ist IMHO nicht besonders toll, per "parse" ein Datum zu setzen, wenn es konstant ist. Du könntest Dir besser den Wert des Date-Objektes mal ausgeben lassen und das dann genau damit zu instanzieren.
 
T

tuxedo

Gast
Zu der Sache mit dem "define" von C/C++ ...

Mit ANT kann man sich auch sowas basteln. Es gibt da Möglichkeiten Sourcecode-/Text-Stellen mit einer Art automatischem "Search&Replace" vor dem compilieren zu ändern (Siehe hier in Zeile 86-88). Damit kann man dann auch an Unterschiedlichen Programmstellen Code einpflanzen so dass es schwieriger wird das Programm zu knacken. Verwendet man dann noch einen schicken Obfuscator sucht man sich auch nach dem decompilieren nen Ast.

- Alex
 
X

XMLler

Gast
Danke für deine Antwort.

Ja, ich denke ich werde mit einm Obfuscator rübergehen um meinen Programmcode einigermassen sicher zu kriegen. Das wird aber nix dran ändern das sie bei meiner Datumsabfrage die Daten dann ganz einfach manipulieren können.

Vielleicht werde ich doch zu einer Server lösung greifen!!
 
T

tuxedo

Gast
Du könntest den aktuellen Zeitstempel auch aus dem Netz holen. Das ist dann wieder etwas schwerer zu manipulieren als die lokale Systemuhr.

- Alex
 

quippy

Bekanntes Mitglied
Das setzt dann aber eine laufende Internetverbindung voraus...

Die Systemuhr ist immer der Knackpunkt - außer, man merkt sich die Einstellung und prüft ab, ob man soundso oft gestartet wurde und das im bekannten Zeitraum noch logisch ist.

Ansonsten erinnere ich noch mal an meinen Vorschlag, auf der Produktwebseite einen Produkt-Key generieren zu lassen, der ein Ablaufdatum enthällt und nicht so ohne weiteres manipuliert werden kann. Man könnte z.B. die Mailadresse, die verwendet wurde, mit eincodieren und einen neuen Schlüssel mit falscher/neuer Mailadresse dann auch abweisen.

Möglichkeiten gibt es genug - und es soll doch auch offline arbeiten...
 
T

tuxedo

Gast
Ja, offline wäre schöner. Da hast du recht. Auf der anderen Seite: Die Anzahl der Flatrate-Benutzer steigt stetig ;-)
 
M

MiDniGG

Gast
Ja das glaub ich halt auch. Es gibt nur noch sehr wenige die keine Flatrate haben (Bitte beweist mir jetzt nicht das Gegenteil ;-) )

Ich weiß nicht. Aber wäre es denn nicht auch möglich einfach ein paar Optionen aus dem Programm raus zu lassen und so eine "längerfristige" Nutzung nutzlos zu machen? Dann musst du schon keine 30 Tage versuchen zu zählen :)

Oder eben doch mit dem Produkt-Key. Klingt für mich am einfachsten und gleichzeitig effizientesten :)

cya
 
T

tuxedo

Gast
Mit der ANT-Lösung ist es ein leichtes ganze Programmteile wegzulassen und erst gar nicht mit rein zu compilieren. Dann hilft auch das beste decompilen und "hacken" nix wenn die Funktion einfach nicht da ist.

- Alex
 

ARadauer

Top Contributor
wenn man eine bestehende internetverbindung voraussetzt, könnte man den benutzer zu einer registrierung auf einer homepage zwingen, dadurch erhält er einen code, denn er im programm eingeben muss.

das programm, verbindet sich dann irgendwo hin (db, servlet) und checkt, welche teile und ob überhaupt mit dem code ausgefürt werden dürfen...
 

Escorter

Bekanntes Mitglied
Naja selbst wenn man ne Flatrate hat ist man nciht immer im Internet, was zB wenn ich mit nem Notebook unterwegs bin und das Programm nutzen möchte?

Gruß,
Esco
 

quippy

Bekanntes Mitglied
ARadauer hat gesagt.:
das programm, verbindet sich dann irgendwo hin (db, servlet) und checkt, welche teile und ob überhaupt mit dem code ausgefürt werden dürfen...

Diesen Check muss man aber nicht zwingend online machen.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
P Software schützen Allgemeine Java-Themen 8
Zrebna Zuverlässiges Automatisiertes Testen im eigenem Software-Unternehmen aufsetzen - How to? Allgemeine Java-Themen 12
I In Java geschriebene Software nach Mac OS portieren Allgemeine Java-Themen 7
OnDemand Software Zertifizierung Allgemeine Java-Themen 4
Zrebna Wieviele Testfälle muss man hier schreiben? (Software Engineering) Allgemeine Java-Themen 13
Kirby.exe Software Entwicklung Allgemeine Java-Themen 9
Kirby.exe Software für Graphische Visualisierung Allgemeine Java-Themen 20
B Multiuser Software Allgemeine Java-Themen 3
L Nach dem Login // Java Desktop Software Allgemeine Java-Themen 7
W Software-Lizenzen Allgemeine Java-Themen 13
temi Fragen zur Software-Architektur Allgemeine Java-Themen 123
david19 Software AE über Domain laufen lassen Allgemeine Java-Themen 0
M JVM: Client Software Logging und Profiling aktivieren Allgemeine Java-Themen 1
G Job als Programmierer (Software oder Spiele Entwickler) Allgemeine Java-Themen 2
O Architektur für Software Allgemeine Java-Themen 14
K Java mit Software ausliefern, Securitybedenken? Allgemeine Java-Themen 4
wolfgang63 Code snipped Software Allgemeine Java-Themen 1
J Java Software Compare Files und Neue File erstellen Allgemeine Java-Themen 0
A Update Software programmieren Allgemeine Java-Themen 1
O Java Hardware Software Zeit Allgemeine Java-Themen 7
D Software entwicklen und verkaufen Allgemeine Java-Themen 1
OnDemand Software-Tracking Allgemeine Java-Themen 14
OnDemand Java Software verkauf untersagt Allgemeine Java-Themen 4
N Neue Software in Java 7 oder 8? Allgemeine Java-Themen 3
R Software ausliefern - Aber Wie? Allgemeine Java-Themen 10
A Sinnvolles Software Design bei Eigenschaftsänderungen von Objekten Allgemeine Java-Themen 7
R Installierte Software auslesen mit Java Allgemeine Java-Themen 3
L Software-Design: Kommunikation mit SerialPort (RXTX) Allgemeine Java-Themen 2
G Best Practices Software-Engineering‏ Allgemeine Java-Themen 3
G RXTX in proprietärer Software nutzen?! Allgemeine Java-Themen 10
A Sicherheit von Software Allgemeine Java-Themen 2
B Software Metriken für Java Allgemeine Java-Themen 36
F LGPL in kommerzieller Software Allgemeine Java-Themen 7
R Konzept eines Software-Rollout/Synchronisation via WebService Allgemeine Java-Themen 5
R software implementierung Allgemeine Java-Themen 3
G Software fuer Auktionshaus Filmundo.de aber wie? Allgemeine Java-Themen 2
X Software soll einen Text vorlesen! Allgemeine Java-Themen 5
D JDK fürGPL-Software? Allgemeine Java-Themen 6
S software zum zuschneiden von Bildern Allgemeine Java-Themen 2
C Software für Windows PC mit integierter Db oder Textdatei? Allgemeine Java-Themen 19
J Java Software schreiben? Allgemeine Java-Themen 4
P Bekannte Software in Java? Allgemeine Java-Themen 27
F Paket und Software Design Fragen. Allgemeine Java-Themen 5
M Chat-Software gesucht Allgemeine Java-Themen 3
T GPL Code inkommerzieller Software nutzen? Allgemeine Java-Themen 26
G Software für Java programmierung Allgemeine Java-Themen 5
Z Beipiel zu gut dokumentierten Software Allgemeine Java-Themen 3
B chat-software Allgemeine Java-Themen 5
T Soll ich meine Software als freeware zum download geben? Allgemeine Java-Themen 15
H Andere Software fernsteuern Allgemeine Java-Themen 7
H Software wartet? Allgemeine Java-Themen 11
T Klassen JavaCode vor Nachahmern schützen Allgemeine Java-Themen 13
E Methode schützen vor nochmaligen Aufrufen Allgemeine Java-Themen 4
Z PDF Dateien vor Benutzerzugriff schützen Allgemeine Java-Themen 4
D Login schützen... Allgemeine Java-Themen 13
R Code vor Laufzeitumgebung schützen? Allgemeine Java-Themen 4
J Java Code schützen? Allgemeine Java-Themen 19
Escorter JET Excelsior - SourceCode schützen Allgemeine Java-Themen 9
M Source Code schützen Allgemeine Java-Themen 5
G Zip Datei - Passwort schützen Allgemeine Java-Themen 13
T .class Datei schützen Allgemeine Java-Themen 6
J Erzeugte *.jar Datei schützen Allgemeine Java-Themen 9
P Strategie um WAV-Dateien zu schützen? Ist das gut? Allgemeine Java-Themen 16
M Sourcecode schützen? Allgemeine Java-Themen 31
C Java Code schützen - Key4J Allgemeine Java-Themen 10
B dateien vor zugriff schützen Allgemeine Java-Themen 4
S Demoversion erzeugen? Allgemeine Java-Themen 17

Ähnliche Java Themen

Neue Themen


Oben