Demoversion erzeugen?

Status
Nicht offen für weitere Antworten.

sunnyMD79

Mitglied
Hallo zusammen,

ich habe ein Jar-Archiv von meiner Java-Applikation. Dies soll aber nur sehr beschränkt nutzbar sein.
Gibt es Möglichkeiten, um dieses Java-Programm nur einmal oder x-mal ausführen zulassen, danach soll es unbrauchbar sein und die Info geben, dass die Testversion abgelaufen sei oder so ähnlich?.


mfg,
sunny

p.s.: bin sehr gespannt, ob jemand eine Lösung hat
 

sunnyMD79

Mitglied
Oder gibt es vielleicht die Möglichkeit, in Java selbst modifizierten Code zu erstellen?
Dann könnte man ja beim ersten Beenden des Programms den Code entsprechend umschreiben^^
 
T

tuxedo

Gast
Das mit Zeitbegrenzten Testversionen müsste doch recht easy machbar sein?!
Klar, die ersten Spezis kommen dann und stellen das Systemdatum zurück.

Aber du kannst ja sowohl ein fixes "StartDatum" festlegen und das Programm abbrechen wenn die Systemuhr ein jüngeres Datum zeigt, und du kannst bei jedem Start die Systemzeit einlesen und in einer (verschlüsselten) Datei speichern, um beim nächsten Start unterscheiden zu können ob das Systemdatum zurückgesetzt wurde. Die verschlüsselte Datei machst du dann als Pflicht-Bedingung für den Start des Programms.

Allerdings lässt sich das auch einfach umgehen: Einfach die gesicherte Datei mit der ersetzen, die frisch nach der Installation auf der Platte war. Aber du kannst die Datei ja entsprechend tarnen und verstecken. Dann isses nciht ganz so offensichtlich.

- Alex
 

JPKI

Top Contributor
Zumindest für MS Windows hab ich ne Lösung, gegen die die meisten Windows-Benutzer nix tun können:

Hier kann man nachlesen, wie man unter MS Windows etwas in die Registry einträgt. Erstell irgendeinen gut versteckten Schlüssel, in dem du die Anzahl der noch möglichen Aufrufe speicherst und frag diese bei jedem Start ab.

Mit dieser Lösung sind wohl die meisten Benutzer überfordert, weil die Windows-Registry wirklich ein hochkomplexes (und meiner Meinung nach systemloses und unaufgeräumtes) Gebilde ist und solch ein verstecker Eintrag (wenn er nicht gerade den Namen deines Programmes trägt, sondern aus irgendwelchen Hexadezimalzeichen besteht) sehr schwer zu finden ist.

Natürlich könnten wirkliche Cracks den Speicher zur Laufzeit auslesen oder dein Programm decompilieren und schauen, wo das alles gespeichert wird, aber wie gesagt, die meisten Windows-Nutzer (und damit so c.a. 80-90% aller PC-Nutzer :wink: ) werden damit überfordert sein.
 
T

tuxedo

Gast
Ja, das is auch ne Idee ...Wobei: Manche Sicherheitstools melden solche Aktionen. D.h. der User bekommts dann bei jeden Start mit dass die Registry benutzt wird.

- Alex
 

JPKI

Top Contributor
Nachtrag zu meinem obigen Beitrag: Bei anderen Betriebssystemen wie z.B. GNU/Linux könntest du die von alex0801 angepriesene verschlüsselte Datei irgendwo schön versteckt im Systemverzeichnis abspeichern (Root-Rechte vorrausgesetzt :wink: ).
 
T

tuxedo

Gast
Naja, oder er hat sonst noch irgendwelche (dummy) Dateien die im Installationsverzeichnis liegen unter die er die File mischen kann....

- Alex
 

JPKI

Top Contributor
Hm. Jetzt frag ich mich, ob man ohne Root-Rechte in allen restlichen Betriebssytemen auf die TEMP-Ordner zugreifen kann... Dort könnte man solch eine Datei auch speichern.

Andererseits... Viele Leute löschen oder lassen ihren Temp-Ordner beim Runterfahren automatisch löschen, oder ???:L
 
T

tuxedo

Gast
Soll vorkommen, ja...

Man könnte die File auch in ~/.MeinProgramm/meineGeheimeDatei.dat oder so verstecken... die meisten kennen und sehen die Verzeichnisse, beginnend mit einem Punkt gar nicht. Wobei damit auch nur die absoluten 0815 User ausgegrenzt wären.
 

JPKI

Top Contributor
Oder man hängt die Daten als Kommentar in die erste Zeile einer wichtigen, aber vom Benutzer nicht oft genutzen Systemdatei (z.B. xorg.conf: Einmal configuriert, ändert man da ja kaum noch was [ich bin jetzt bei Ubuntu]).
 

kleiner_held

Top Contributor
JPKI hat gesagt.:
... weil die Windows-Registry wirklich ein hochkomplexes (und meiner Meinung nach systemloses und unaufgeräumtes) Gebilde ist ...
wenn alle moeglichen Programme da heimlich kryptische Eintraege ablegen ist das ja auch kein Wunder :-D

Ansonsten:
- Registry ist plattformabhaengig.
- Alle hier genannten Linux-Hacks mit versteckten Dateien funktionieren nicht, wenn ein verantwortungsvoller User ein Demo Programm mit chroot installiert bzw ausfuehrt (ist uebrigens sehr zu empfehlen!)

Sauberer ist mMn nach das Vorgehen, eine funktional abgespeckte und keine zeitlich begrenzte Demo-Version anzubieten. Da kann man bei einem sauberen Design auch nur die notwendigen Klassen mit ins Jar packen, so dass auch kein Decompilieren was bringt.
 

Wildcard

Top Contributor
Einfach den verbleibenden erlaubten Starts im Java Preference Store ablegen und gut.
Ein nicht-Java Programmierer weiß nichtmal das soetwas existiert.
 
G

Guest

Gast
Man kann dem Benutzer noch zusätzlich damit auf den Sack gehen, indem man Teile der Demo-Anwendung
von irgendeinem Server lädt. Soll heissen, Demo nur lauffähig, wenn gleichzeitig online und nicht abgelaufen.
Serverseitig kannst du dann den Zähler präparieren und zum Client mit übertragen. Wird er manipuliert,
merkst du es.

1) Jede runtergeladene Kopie der Anwendung kriegt eine eigene, verschlüsselte Zählerdatei (pro Download
eine und Download nur mit Anmeldung).
2) Diese Datei wird bei jedem Start zum Server übertragen, geprüft und zusammen mit einem Teil der Anwendung
zurück an den Client geschickt.
3) Beim nächsten Start das gleiche.

Wird die Datei manipuliert, merkst du serverseitig, dass die Datei nicht dem aktuellen Stand des Clients
entspricht und zweigst den Finger.
Hat sich jemand eine Kopie der Datei angelegt, kann er sie sowieso nicht zweimal nutzen, da serverseitig
der Zähler hochgezählt wurde.

OK, das ist nur so 'ne Idee, die mir auf die Schnelle so einfällt. Die Anwender werden entzückt sein. :roll: :wink:
 
G

Guest

Gast
Ätch, keine "verschlüsselte Zählerdatei" sondern eine Art eindeutiges Client-Zertifikat.
Der Zähler wird nur serverseitig verwendet.
 
G

Gast

Gast
Die Idee mit dem Server ist gut. Wäre nur doof bei Offline-Systemen... Aber die werden ja immer seltener.

- Alex
 

Leroy42

Top Contributor
kleiner_held hat gesagt.:
Sauberer ist mMn nach das Vorgehen, eine funktional abgespeckte und keine zeitlich begrenzte Demo-Version anzubieten. Da kann man bei einem sauberen Design auch nur die notwendigen Klassen mit ins Jar packen, so dass auch kein Decompilieren was bringt.

100% Zustimmung.

Alle anderen, hier gemachten, Vorschläge sind in meinen Augen,
ziemlich wirre Rumpfuschereien am System.
 
T

tuxedo

Gast
Naja, ich für meinen Teil hasse es wenn ich ne Demo habe und diverse Funktionen die mir wichtig sind gar nicht testen kann, weil sie in der Dem nicht drin sind.

Bin mir sicher da gibts noch genug andere denen es genau so geht.

Ich denke sowas ist aber ne Grundsatzentscheidung...

Ergo muss jeder Entwickler für sich selbst entscheiden welche der zwei Ansätze er verfolgt.
 
G

Guest

Gast
Wäre interessant zu wissen, was das für eine Anwendung ist? Eventuell reicht es bestimmte Funktionen zu deaktivieren.

Beispiel: Bildbearbeitung

Man kann Bilder laden, manipulieren, eigentlich sämtliche Funktionen nutzen, nur speichern kann man das Ergebnis nicht. Gut, könnte man per Screenshot umgehen, aber nur mal als Anregung.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
X Software schützen! DEMOVersion Allgemeine Java-Themen 12
I Module-Info für Jar erzeugen Allgemeine Java-Themen 7
S Klickbare Stacktraces selber erzeugen..? Allgemeine Java-Themen 9
I OpenPDF (ehem. iText) will kein PDF mit CMYK only erzeugen Allgemeine Java-Themen 6
J Runable jar erzeugen Allgemeine Java-Themen 2
O Wie kann ich in Apache POI (Excel Dateien schreiben) Datumszellen in Excel erzeugen Allgemeine Java-Themen 6
B Klassen Objekt erzeugen und Konstruktor aufrufen - Welche Lösung ist besser? Allgemeine Java-Themen 2
temi Valides Dreieck erzeugen Allgemeine Java-Themen 6
D Konstruktor - jedes Objekt einzeln erzeugen - alternative? Allgemeine Java-Themen 8
dereki2000 Windows Benachrichtigung erzeugen Allgemeine Java-Themen 2
J In einem Set doppelte Elemente erzeugen Allgemeine Java-Themen 4
F Objekte erzeugen Allgemeine Java-Themen 1
M Variabe a[i] erzeugen Allgemeine Java-Themen 8
Meeresgott Kapselung Tabellen der Datenbank erzeugen. Allgemeine Java-Themen 7
Thallius String erzeugen sehr langsam Allgemeine Java-Themen 16
L ICS-Kalenderdatei aus PDF erzeugen Allgemeine Java-Themen 0
A Jasper Report Performance bei PDF erzeugen Allgemeine Java-Themen 0
F Java Spintax: Alle Kombinationen Erzeugen Allgemeine Java-Themen 2
L Klassen Konstruktor soll Objekt anderer Klasse erzeugen Allgemeine Java-Themen 2
H Vektor rekursiv erzeugen Allgemeine Java-Themen 2
S Best Practice verschiedene Exceptions fangen und neue Exception erzeugen Allgemeine Java-Themen 11
V 2D-Grafik BufferdImage aus gif Datei in Jar erzeugen geht nicht. Allgemeine Java-Themen 6
R Aus Eclipse Projekt ein UML erzeugen Allgemeine Java-Themen 3
G Texte erzeugen Allgemeine Java-Themen 3
R Großes Hash-Set erzeugen Allgemeine Java-Themen 12
P Excel-Sheets erzeugen aus Report Allgemeine Java-Themen 2
Ollek Barcode mit Barcode4J erzeugen - Exception Allgemeine Java-Themen 4
P Arrays erzeugen Allgemeine Java-Themen 5
G Strings erzeugen Allgemeine Java-Themen 20
C QR-Codes erzeugen. Allgemeine Java-Themen 43
M Input/Output Datei erzeugen funktioniert nicht (immer) vom .jar aus Allgemeine Java-Themen 5
T "Platzsparende" und "schnelle" Indizes erzeugen Allgemeine Java-Themen 10
N Objekte aus Array Inhalt erzeugen Allgemeine Java-Themen 8
E Objekt beim Erzeugen in ArrayList Allgemeine Java-Themen 9
D 2D-Grafik Funktionierende .jar datei mit Images (jpg) erzeugen Allgemeine Java-Themen 2
S Schnell eine fortlaufende nummer erzeugen SQL, kein Primkey Allgemeine Java-Themen 8
M Graphen erzeugen und visualisieren, jgraph oder was was anderes? Allgemeine Java-Themen 2
M Klassen Zugriff auf getMethode ohne Klasse zu erzeugen Allgemeine Java-Themen 6
J Verschiedene Klassen als "Object" in ArrayList und dann in for-Schleife erzeugen!? Allgemeine Java-Themen 2
M Txt einlesen & Objekte erzeugen Allgemeine Java-Themen 2
Y Eclipse ppt Folie erzeugen + text plazieren Allgemeine Java-Themen 4
G log4j File erzeugen und Pfad bestimmen Allgemeine Java-Themen 3
B class dateien "einlesen" und objekte erzeugen Allgemeine Java-Themen 6
S Algorithmus um Labyrinth zu erzeugen Allgemeine Java-Themen 6
A HashCode von DatagrammPacket(content) erzeugen. Allgemeine Java-Themen 3
A auführbare Jar erzeugen mit ant Allgemeine Java-Themen 5
D Browser-Objekt erzeugen Allgemeine Java-Themen 8
Developer_X Java ton erzeugen Allgemeine Java-Themen 3
D character kodierung, barcode für barcode font erzeugen Allgemeine Java-Themen 4
D Worddocumente erzeugen Allgemeine Java-Themen 4
F Wie zur Laufzeit ganz neue Objekte erzeugen? Allgemeine Java-Themen 5
A Dummy-Objekte für Webgui erzeugen Allgemeine Java-Themen 12
S JUnit: Erzeugen einer IOException Allgemeine Java-Themen 9
S Neue Instanz eines Objekts erzeugen - Konstruktor erhaelt Parameter. Allgemeine Java-Themen 5
A AES Key aus Text erzeugen Allgemeine Java-Themen 2
N JFrame Icon selbst erzeugen Allgemeine Java-Themen 2
D Objekte nur unter bestimmten Voraussetzungen erzeugen Allgemeine Java-Themen 4
F Klasse vorhanden - wie daraus Objekt erzeugen Allgemeine Java-Themen 8
C PDF erzeugen Allgemeine Java-Themen 3
Landei Objekte ohne Konstruktoraufruf erzeugen Allgemeine Java-Themen 7
F Zufallszahl erzeugen Allgemeine Java-Themen 4
P Objekt einer Klasse erzeugen, die als String vorliegt Allgemeine Java-Themen 3
multiholle Objekt einer Klasse anhand eines String erzeugen Allgemeine Java-Themen 3
M odt-Datei erzeugen Allgemeine Java-Themen 6
G File zur Laufzeit erzeugen Allgemeine Java-Themen 4
G Windows Pipe erzeugen Allgemeine Java-Themen 12
A Wie eine Seriennummer erzeugen und auswerten? Allgemeine Java-Themen 11
G erzeugen von "ArrayList<Integer>[][]" Allgemeine Java-Themen 7
T Log4J: Bei Programmstart immer eine neue LogDatei erzeugen Allgemeine Java-Themen 9
S Zweidimensionales Array neue Zeile erzeugen Allgemeine Java-Themen 3
A Objekt in einem Array erzeugen Allgemeine Java-Themen 6
Q Objekte durch Reflection erzeugen Allgemeine Java-Themen 18
V Enums aus Datei-Einträgen erzeugen? Allgemeine Java-Themen 6
M KML Datei automatisch erzeugen Allgemeine Java-Themen 3
H Problem mit erzeugen eienr neuen Session Allgemeine Java-Themen 3
G zweierKompliment erzeugen Allgemeine Java-Themen 12
L Objekt erzeugen Allgemeine Java-Themen 2
R Jasper iReport erzeugen Allgemeine Java-Themen 7
MQue über iBatis Tabellen erzeugen Allgemeine Java-Themen 4
V Aus String -> Objekt einer Klasse erzeugen Allgemeine Java-Themen 7
P UML erzeugen Allgemeine Java-Themen 3
M wav datei/ ton erzeugen Allgemeine Java-Themen 4
M eigenen Desktop erzeugen Allgemeine Java-Themen 3
S Asymmetrisches Array dynamisch erzeugen Allgemeine Java-Themen 4
T Objekte dynamisch über eine Methode erzeugen Allgemeine Java-Themen 10
X PowerPoint Files in Java erzeugen Allgemeine Java-Themen 2
M File im memory erzeugen Allgemeine Java-Themen 5
R Object Dynamisch erzeugen (Reflection API) Allgemeine Java-Themen 22
B Grafik erzeugen in java Allgemeine Java-Themen 2
P Image erzeugen Allgemeine Java-Themen 7
S Uml erzeugen (nicht: JavaCode-Erzeugung) Allgemeine Java-Themen 4
G Reflection objekt mit generics erzeugen Allgemeine Java-Themen 5
L iText: Mehrseitiges PDF erzeugen Allgemeine Java-Themen 9
G UML automatisch erzeugen lassen Allgemeine Java-Themen 2
H In Testklasse Objekte erzeugen und in einer Schleife ausgebe Allgemeine Java-Themen 4
G Problem mit ArrayList bzw. dem erzeugen derer Allgemeine Java-Themen 2
T hashCode() erzeugen. Allgemeine Java-Themen 11
G Queue erzeugen Allgemeine Java-Themen 2
N Verknüpfung in Java erzeugen Allgemeine Java-Themen 6
B objekt einer klasse dynamisch erzeugen Allgemeine Java-Themen 6

Ähnliche Java Themen

Neue Themen


Oben