14-Tage Testversion erstellen?

Status
Nicht offen für weitere Antworten.
B

bygones

Gast
wichtig ist das ganze zu verschlüsseln in irgendeiner Form. Eine Datei die heißt "14tageCountdown" wäre ein bisschen zu eindeutig.

Des weiteren musst du sicher stellen (hahaha), dass dein Programm nicht dekompiliert wird und somit ermittelt wird wie du die Abfrage erstellst ?!
 

Sky

Top Contributor
... entscheidend könnte auch noch sein, dass man es irgendwie hinbekommen muss, dass dein Prog. nicht alle 14 Tage neu installiert wird !?
 

Nova

Bekanntes Mitglied
Wenn du die Version nur an eine handvoll Leute verschickst könntest du auch hardcodiert eine Datum in eine Klasse reinschreiben.
Beim Start des Programms wird dann anhand der Systemuhr überprüft ob das Datum überschritten wurde und ggf. der Dienst verweigert.
Das hilft allerdings nicht wenn jemand die Systemuhr zurückstellt...
Um das zu verhindern könntest du noch das Erstellungsdatum deiner Dateien überprüfen, dann müsste der User die Dateien nochmal neu erstellen UND die Systemuhr zurückstellen => unwahrscheinlich das da jemand drauf kommt.
Oder beim ersten Start nach Ablauf der Frist den Inhalt einer Klassendatei ändern sodass sie nicht mehr läuft. (=> meistens setzt man die Systemuhr erst dann zurück wenn das Programm einem sagt die Testversion sei abgelaufen ;-) )


Würde mich aber auch interessieren ob es da nicht eine "saubere" Lösung für das Problem gibt.


mfg
Nova
 

TRunKX

Bekanntes Mitglied
.... hmmm wie wäre es mit Oldschool?

Ich habe mal bei Siemens gesessen die haben einfach eine DAtei mit der Lizens das ist ein kleines Script das auch mit Java läuft und es " zerstört " einen Festplattensektor und die Platte speichert wann dieser defakt gegangen ist und anhand dieses HardwareDatums kannn man die Lizens machen..... Wie die das hinbekommen haben die mir natürlich nicht verraten... Aber sie meinen das es bisher das sicherste gewesen sei um vERsionen zu schützen mit Frist!
 

byte

Top Contributor
sicher ist imo gar nix. problem ist wie schon gesagt: wenn jemand die dateien lokal auf seiner platte hat, dann kann er damit machen was er will. also wenns gar nich anders geht, decompilen und und nen beipass legen, so dass die datumsabfrage umgangen wird. deshalb gibts heutzutage für jede shareware nen crack und für jedes computerspiel nen no-cd patch (naja, für fast jedes).

was ansonsten recht sicher sein sollte: man baut nen key ein, der sich aus der id der netzwerkkarte errechnet (die ist unique) und dieser key wird online errechnet und bereit gestellt. der webserver verwaltet dabei alle bisher verwendeten netzwerk-ids und vergibt für keine id nen zweiten key. der key enthält zusätzlich nen timestamp und verfällt nach 30 tagen. zeit sollte dabei online überprüft werden und nicht über die lokale systemuhr.
 

thE_29

Top Contributor
Ne MAC Adresse Unique??

Jo Unique schon, aber man kann die ändern...
http://www.java-forum.org/de/viewtopic.php?t=22186

Soviel zu der Sicherheit :)


Ich hätte ja da so eine Idee! (wenn es ein Jar File wäre)

Du veränderst einfach die Manifest.MF beim 1. start des programmes.

Also man sieht in der Manifest.MF nach ob zB in der letzten Zeile ein White Space ist, bzw. ein geschütztes Leerzeichen (ALT + 255).
Ist so eines vorhanden, nimmt man dieses raus (daher weiß man den 1. Start) und speichert die Manifest.MF neu in die jar Datei!

So nun ist dieses Veränderungsdatum der Startzeitpunkt deines Programmes....

Solange das keiner decompiliert (musst halt obfuscatern) findet der auch keine veränderte Datei, etc. und nachzusehen ob sich die Manifest.MF geändert hat, tut glaube ich keiner... (bzw. siehts niemand weil ein Leerzeichen verschwunden ist)
 

byte

Top Contributor
habs recherchiert und du hast recht. man kann den lokalen teil dieser adressen tatsächlich ändern. ich würde das verfahren trotzdem als relativ sicher betrachten. erstens wissen wohl die wenigsten von diesen adressen und dass man sie ändern kann. zweitens würden wohl nur wenige die firmware ihrer hardware für ein shareware produkt verändern. denn bei sowas bleibt durchaus immer ein restrisiko, wenn man sich nicht genau auskennt und die auswirkungen nicht abschätzen kann.


thE_29 hat gesagt.:
Ich hätte ja da so eine Idee! (wenn es ein Jar File wäre)

Du veränderst einfach die Manifest.MF beim 1. start des programmes.

Also man sieht in der Manifest.MF nach ob zB in der letzten Zeile ein White Space ist, bzw. ein geschütztes Leerzeichen (ALT + 255).
Ist so eines vorhanden, nimmt man dieses raus (daher weiß man den 1. Start) und speichert die Manifest.MF neu in die jar Datei!

So nun ist dieses Veränderungsdatum der Startzeitpunkt deines Programmes....

Solange das keiner decompiliert (musst halt obfuscatern) findet der auch keine veränderte Datei, etc. und nachzusehen ob sich die Manifest.MF geändert hat, tut glaube ich keiner... (bzw. siehts niemand weil ein Leerzeichen verschwunden ist)

klingt interessant! allerdings ist es fraglich, ob man ein verfahren als sicher einstufen kann, dass alleine darauf basiert, dass der zugrunde liegende algorithmus nicht bekannt wird. sollte es doch mal jemand rausfinden (z.b. indem er den thread hier liest ;)) und seinen lösungsvorschlag veröffentlicht (nämlich das leerzeichen vor dem ersten starten zu entfernen), dann ist das verfahren fürn fuß. :roll:
 

Sky

Top Contributor
Die Methode mit dem Ändern des Manifest's geht auch nur solange gut, wie man das Prog. nicht ein zweites mal runterläd zum "testen"... dann haste nämlich direkt ein 'neues' Manifest
 

thE_29

Top Contributor
Verdammt :)

Mein Algorithmus hat schon einen Fehler...

Dieses verdammte nochmals runterladen... argl :/

Dann muss man sowas halt verhindern indem man nur registrierten Benutzern was runterläden lässt :)

Bzw. wenn man einen Misch masch aus meinem Algo, dem MAC-Adressen -Unique Identifier und diese Info auf einem WebServer speichern macht, könnte das hinhaun ;)

Also man setzt eine inet verbindung voraus, bzw man sagt halt das man beim 1. Starten eine braucht

Beim 1. mal starten => speichert der WebServer die MAC Adresse mit dem veränderten Datum der Manifest.MF ab!

Ist beim 1. start keine inetverbindung da, soll der MAC-AdreesenAbspeicherungsvorgang bei jedem start "probiert" werden, da sich das Datum der Manifest.MF nicht ändert (Solange man nix runterlädt...)


Dh, der Benutzer kann es dann nur noch umgehn, indem er das von der Manifest.MF weiß oder nie Online ist wenn das Programm gestartet wird, bzw. es immer wieder neu runterlädt und eben nie Online ist...

Achja und wenn man immer mit dem Server die Zeit abgleicht, fehlt auch das Problem weg, indem man die Systemzeit zurückdreht ;)
 

Sky

Top Contributor
Jetzt mal die Frage: ist das ein System für IT-Fachkräfte oder für DAU's (Oder halt irgendwas dazwischen...)?

Je nachdem, wer die Zielgruppe ist, versichere ich dir, dass mehr als die Hälfte nicht mal in der Lage sind ohne Handbuch die Systemzeit zu ändern! Dafür sollte man nicht so viel Aufwand investieren.

Alternativ: Du baust 2-jar-Files: Eines mit allen Funktionen und eines mit weniger. Wer zahlt, bekommt ein neues jar und kann alles tun, was das Programm hergibt.
 

CCMario

Mitglied
Sky hat gesagt.:
Je nachdem, wer die Zielgruppe ist, versichere ich dir, dass mehr als die Hälfte nicht mal in der Lage sind ohne Handbuch die Systemzeit zu ändern! Dafür sollte man nicht so viel Aufwand investieren.

:toll: :toll: :lol:

mehr fällt mir dazu nicht ein!
 

Campino

Top Contributor
Sky hat gesagt.:
Je nachdem, wer die Zielgruppe ist, versichere ich dir, dass mehr als die Hälfte nicht mal in der Lage sind ohne Handbuch die Systemzeit zu ändern! Dafür sollte man nicht so viel Aufwand investieren.
ähm...naja...

nenn mir mal ein Programm das NUR DAUs brauchen, an das bestimmt keine IT-Fachkraft jemals drankommt...und wenn einer das knackt und die Lösung ins Internet stellt, was meinst du wie schnell auch DAUs plötzlich ihre Systemzeit ändern?
 

Sky

Top Contributor
Campino hat gesagt.:
Sky hat gesagt.:
Je nachdem, wer die Zielgruppe ist, versichere ich dir, dass mehr als die Hälfte nicht mal in der Lage sind ohne Handbuch die Systemzeit zu ändern! Dafür sollte man nicht so viel Aufwand investieren.
ähm...naja...

nenn mir mal ein Programm das NUR DAUs brauchen, an das bestimmt keine IT-Fachkraft jemals drankommt...und wenn einer das knackt und die Lösung ins Internet stellt, was meinst du wie schnell auch DAUs plötzlich ihre Systemzeit ändern?
Wenn man alle Programme unter dem Aspekt bauen würde, so würde man nie Fertig werden.
Natürlich hast Du recht, wenn sich jemand auskennt und das "Geheimis" (egal ob Systemzeit oder was anderes) knackt so wissen es bald alle... aber dass kann m.E. nicht die Grundlage der Anwendungsentwicklung sein!

Außerdem geht es nicht zwingend darum, dass ein Programm NUR von DAUs gebraucht wird. Vielmehr kann es auch ein Programm sein, welches für einen DAU genau das richtige ist (einfache Bedienung mit der Maus; "wenig Möglichkeiten"), und ein Experte hat evtl. spezielle Software für derartige Probleme oder plagt sich mit solchen Problemen überhaupt nicht rum...
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Stunden/Tage Countdown Java Basics - Anfänger-Themen 9
sserio Gregorianischer Kalender und dessen Tage. Java Basics - Anfänger-Themen 14
B Programm, dass alle 3 Tage eine Webseite öffnet? Java Basics - Anfänger-Themen 20
M Rekursion Tage Ansteckung gesamte Bevölkerung Java Basics - Anfänger-Themen 15
B Anzahl von Stunden / Tage von zwei Datumswerten ermitteln Java Basics - Anfänger-Themen 1
M Wochentag ermittel und ggf tage abziehen Java Basics - Anfänger-Themen 4
Bluedaishi Einen Betrag X auf X Tage verteilen Java Basics - Anfänger-Themen 14
H Datentypen Tage zwischen zwei Datums berechnen Java Basics - Anfänger-Themen 4
T Jahre, Monate, Tage, Stunden, Minuten Java Basics - Anfänger-Themen 1
P Wieviele Tage seit dem Datum vergangen sind Java Basics - Anfänger-Themen 5
S Erste Schritte Tage zwischen 2 Daten berechnen Java Basics - Anfänger-Themen 6
F Für Abgabe vor Feiertagen 3 Tage für Abholung hinzuaddieren Java Basics - Anfänger-Themen 19
S Ein Jahr hat 363,7 Tage ? Java Basics - Anfänger-Themen 2
S Methoden Tage zwischen 2 Daten Java Basics - Anfänger-Themen 19
P System - Tage erkennen ( System Time ?) Java Basics - Anfänger-Themen 3
G maximale Anzahl der Tage im Monat Java Basics - Anfänger-Themen 18
R Tage subtrahieren von einem Date() Java Basics - Anfänger-Themen 6
A GregorianCalendar heute + X Tage Java Basics - Anfänger-Themen 11
S Tage aus zwei Datumsangaben berechnen Java Basics - Anfänger-Themen 3
T Tage Zahlen zuordnen Java Basics - Anfänger-Themen 24
T tage in monate und jahre Java Basics - Anfänger-Themen 9
H Dates "Tage" auf gleichheit prüfen? Java Basics - Anfänger-Themen 4
H Anzahl der Tage von Monat ausgeben Java Basics - Anfänger-Themen 7
N Tage in Jahre, Monate umrechnen Java Basics - Anfänger-Themen 1
B Errechnen(Jahre Monate Tage)von einem Datum zu einem anderen Java Basics - Anfänger-Themen 3
A Verständnisfrage Sekunden/Tage Umrechnung Java Basics - Anfänger-Themen 3
I Tage ermitteln Java Basics - Anfänger-Themen 4
G Altersberechnung falsch auf 1-2 Tage Java Basics - Anfänger-Themen 3
DStrohma Millisekunden umwandeln in Jahre, Monate, Tage, Stunden Java Basics - Anfänger-Themen 5
G Differenz in Tage Java Basics - Anfänger-Themen 3
T Bestimmte Tage ausschließen Java Basics - Anfänger-Themen 6
T Datum+ 100 Tage Java Basics - Anfänger-Themen 23
M wieviele Tage der Monat X hat Java Basics - Anfänger-Themen 2
S zu einem Datum Tage addieren Java Basics - Anfänger-Themen 2
W Tage im Monat Java Basics - Anfänger-Themen 3
S Calendar.set Time, Ermittlung der Anzahl Tage fehlerhaft Java Basics - Anfänger-Themen 9
U tage ausrechnen Java Basics - Anfänger-Themen 4
G HILFE!!! JEDER MONAT HAT 31 TAGE Java Basics - Anfänger-Themen 2
J Datum, Tage herausfinden Java Basics - Anfänger-Themen 2
XWing Int erstellen lassen? Java Basics - Anfänger-Themen 11
onlyxlia Schlüsselworte Was meint man mit "einen Typ" in Java erstellen? Java Basics - Anfänger-Themen 2
A exe Datei erstellen Java Basics - Anfänger-Themen 8
J Packages erstellen Java Basics - Anfänger-Themen 7
Athro-Hiro Weißes Bild in Java erstellen Java Basics - Anfänger-Themen 3
H Excel-Tabellen mit Java erstellen Java Basics - Anfänger-Themen 4
D MacOS: PDF erstellen geht nicht Java Basics - Anfänger-Themen 1
benny1993 Java Programm erstellen für ein Fußball-Turnier Java Basics - Anfänger-Themen 3
M Datentypen While-Schleife eine Java Methode erstellen Java Basics - Anfänger-Themen 3
P Welches SDK für das erstellen einer ausführbaren Datei? Java Basics - Anfänger-Themen 4
I Klassen von einem package laden, Statisches Feld auslesen und Objekt erstellen Java Basics - Anfänger-Themen 8
C Gewinnspiel erstellen mit Algorithmus Java Basics - Anfänger-Themen 3
Ostkreuz Spielfeld Schatz erstellen Java Basics - Anfänger-Themen 5
I Erste Schritte Einfache Datenbank-Webseite erstellen als Nicht-IT-lerin Java Basics - Anfänger-Themen 24
T Objekte mit arrays erstellen Java Basics - Anfänger-Themen 6
B Klasse statisch erstellen da n-mal geladen Java Basics - Anfänger-Themen 3
laxla123 Dreieck erstellen Java Basics - Anfänger-Themen 1
XWing Random Punkte erstellen mit der Random klasse Java Basics - Anfänger-Themen 15
A Passwort erstellen Java Basics - Anfänger-Themen 3
S CVS erstellen Java Basics - Anfänger-Themen 1
RashAGhul Java Verwaltungstool Erstellen mit kaum Wissen Java Basics - Anfänger-Themen 9
K warum kann ich das Objekt nicht erstellen ? Java Basics - Anfänger-Themen 2
paulen1 Best Practice "Unchecked Assignment" Warnung beim erstellen eines 2D Arrays of Arraylists Java Basics - Anfänger-Themen 2
dennis_lnz Klassen Wie kann ich mein Java Textadventure verbessern, um ein Klassendiagramm zu erstellen? Java Basics - Anfänger-Themen 9
dcHost Java Kara Sensor erstellen Java Basics - Anfänger-Themen 1
JustAProgrammer Ein Dreieck mit Arrays erstellen Java Basics - Anfänger-Themen 2
C GLOOP Problem beim Erstellen der Kamera Java Basics - Anfänger-Themen 9
N Array beim erstellen mit Werten füllen Java Basics - Anfänger-Themen 6
F abbruch Exception lässt sich nicht erstellen Java Basics - Anfänger-Themen 2
U JList erstellen Java Basics - Anfänger-Themen 2
X Wie kann man ein Regex erstellen, die 8-Bit-Binär-Zahlen darstellen. Java Basics - Anfänger-Themen 1
httprt Probleme bei dem erstellen von leveln in meinem Spiel Java Basics - Anfänger-Themen 2
frager2345 Programm erstellen ohne Autoboxing und Unboxing Java Basics - Anfänger-Themen 13
berserkerdq2 IO Streams logfile erstellen und Sachen schreiben wie? Java Basics - Anfänger-Themen 2
B Teilprofil erstellen Java Basics - Anfänger-Themen 1
B Teilprofil erstellen Java Basics - Anfänger-Themen 1
I String Kombination erstellen anhand fortlaufender Zahl (Vertragsnummer) Java Basics - Anfänger-Themen 13
N 2D Array Summe erstellen Java Basics - Anfänger-Themen 6
T Log Funktion erstellen Java Basics - Anfänger-Themen 1
Dorfschmied Kartesisches Produkt von zwei Liste mit Hashmaps<String,String> erstellen Java Basics - Anfänger-Themen 4
S Programm erstellen Java Basics - Anfänger-Themen 3
S MinMax Programm erstellen Java Basics - Anfänger-Themen 4
S Mit for-Schleife ein 2D JLabel-Array mit veränderbaren Icons erstellen Java Basics - Anfänger-Themen 3
T Countdown erstellen Java Basics - Anfänger-Themen 7
I ZIP File erstellen Java Basics - Anfänger-Themen 10
L Ordner in neuen erstellten Ordner erstellen Java Basics - Anfänger-Themen 12
C Fehler beim erstellen eines Objektes Java Basics - Anfänger-Themen 3
B Zurück Button erstellen Java Basics - Anfänger-Themen 1
melaniemueller Lagerverwaltung erstellen - mehrdimensionale Arrays Java Basics - Anfänger-Themen 62
B JaxB - Referenzen erstellen? Java Basics - Anfänger-Themen 2
K Rekursion: Rechenmauer mit Array erstellen Java Basics - Anfänger-Themen 17
alice98 Erste Schritte Liste erstellen ohne vorgefertigte Klassen Java Basics - Anfänger-Themen 1
Aqtox Hallo ich muss für die Schule ein Wuerfell Duell erstellen jedoch habe ich ein fehler Java Basics - Anfänger-Themen 4
E Classpath Datai erstellen Java Basics - Anfänger-Themen 3
B eine methode erstellen Java Basics - Anfänger-Themen 7
I Entity erstellen, die für API gedacht ist Java Basics - Anfänger-Themen 33
M Packages erstellen mit Java-Editor Java Basics - Anfänger-Themen 6
L FinanzApp erstellen Java Basics - Anfänger-Themen 1
J Junit4 Klasse erstellen Java Basics - Anfänger-Themen 5
B Warteschlange erstellen mit LinkedList ? Java Basics - Anfänger-Themen 6
Animal-Mother BMI Rechner erstellen für W/M Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben