Closed Source Programm schuetzen

Status
Nicht offen für weitere Antworten.

elmato

Mitglied
hi, hat einer von euch evt. ein gutes java tutorial zum Thema programmcode schuetzen, welche moeglickeiten es gibt, was gut/schlecht ist etc. am besten fuer anfaenger :lol:
mfg
 
Es gibt so genannte Obfuscatoren, die den Bytecode bei einem Decompilierversuch recht unleserlich machen, so das es schwer ist, die Zusammenhänge zu erfassen. Daber werden Klassenamen, Variablen und Methoden umbenannt.
Ein Beispiel hierfür ist Retroguard.
Eine andere Sache sind so genannte Native Code Compiler, die den Java-Code aber plattformabhängig übersetzen.
Ein Beispiel hierfür ist Excelsior JET.
Zu diesem Thema gab es auch schon mehrere Beiträge. Bitte mal die Suchfunktion benutzen.
 
Was meinst Du denn mit schützen??

Also, wenn Du die Plattformunabhängigkeit nicht verlieren willst, so gibt es keine Möglichkeit deine Sourcen zu schützen.
Obfuscatoren machen zwar den Code bei einem Decompilierversuch unleserlich, die 'fachliche Logik' ist aber nach wie vor vorhanden...
 
sorry nein was ich meine sind techniken um Kaufer daran zu hindern das programm auf anderen rechnern zu nutzen, im prinziep sowas wie registrierungsprozesse, trialversion, kopierschutz so kram halt. Ich hab zwar schon im internet gesucht aber nichts wirklich gutes gefunden. evt. kennt einer von euch ein paar gute buecher zu dem thema?
 
Das Problem dabei ist ja wieder, dass das Programm dekompiliert werden kann um dir funktionsweise des Algorythmus zu untersuchen. Dann kann man das ganze leicht aushebeln. Also geben wird es sowas, aber es ist absolut unverlässlich
 
Du darfst einen solchen Schlüssel dann nicht im Code verstecken (wie Gast schon richtig festgestellt hat), sondern mußt eine Art 'Online-Freischaltung' einbauen...

So ein ähnliches Thema gab es hier schon mal. Guck doch mal im Forum...
 
Viele mir bekannte Java-Tools und Libs arbeiten mit einer Lizenzdatei. In der sind dann verschlüsselt die Daten des Lizenznehmers, Freischaltdatum, Features, Lizenzdauer, ... abgelegt.

Das ist ne normale Vorgehensweise zur Registrierung, verhindert aber nicht das jemand die Softweare crackt (wenn er sich die Mühe machen will und entsprechend Ahnung hat) oder einfach Programm und Lizenzdatei kopiert.

Bis zu einem gewissen Grad muss man Usern auch einfach vertrauen. Mit allzu ausgewfuchsten Mechanismen macht man sich protenzielle Kunden auch gerne abspenstig. Und ein ganz wichtiger Punkt ist die Preisgestaltung! Ich persönlich bin auch gerne bereit mir (oder meinem Chef) Software mal was kosten zu lassen, wenn sie gut ist und der Preis ordentlich ist. Das gilt für so Sachen wie Virenscanner, Firewall, JFormDesigner, JExplorer, JGo, Half Life 2 😉 , MindManager, The Bat, ...

Wenn man erstmal will, dass die eigene Software bekannt wird, sollte man Trial-Versionen in Betracht ziehen, aber bitte keine Crippleware und wenn man weiß das die eigene Software noch ne Menge Missstände hat, sollte man sie erstmal gar nicht verkaufen.. 😉
 
naja... Das mit der verschlüsselten Datei hinkt IMHO am gleichen Problem wie ich als Gast (sry login vergessen) schon geschrieben habe. Wenn du das Prog dekompilierst siehst du den Entschlüsselungsalgorhytmus und kannst dir so eine Datei dann selbst basteln. Onlineregistrierung... Das wird manche potentielle Nutzer nicht sehr freuen. Außerdem ist das auch nicht zu schwer zu umgehen wenn man den Quelltext hat.
 
es geht mir nicht darum ein Fort Knox zu bauen 🙂 aber irgendwie sichern muss ich das programm schon, ich meine da draussen in den weiten des Inets gibt es 100000 leute die 100000 fach bessere programmierer sind als ich und imho ohne probleme in der lage waeren mein programm zu knacken, da mach ich mir garkeine falsche Hoffnung.
Aber das mit der Lizenzdatei klingt doch schon mal ganz ok, hast du da weiterfuehrende infos zu al? ok werd auch mal googeln gehen... wie wuerde so eine lizenzdatei aussehen? und welche verschluesselungsmethoden sind angebracht md5? blowfish? habe ueber crypto leider nicht sehr viel ahnung(bin voellige mathe niete 🙁
 
Verschlüsselungen werden mit Java schon mitgeliefert. Schau Dir mal die Klasse MessageDigest an. Die kann bspw. schon MD5.

Wenn das Programm auch einen Server besitzt bzw. dringend braucht, könntest Du ja bspw. die Lizenzdatei auf dem Server ablegen. Über die würde dann geregelt werden, wieviele Clients maximal eine Verbindung gleichzeitig zum Server haben dürfen.
 
Ich kenne die Dinger nur als Anwender. Wie die jeweiligen Prgger das umgesetzt haben weiß ich nicht. Aber schau mal auf www.jformdesigner.com und schick mal ne Mail an den Support (Karl Tauber). Aber halt ihn nicht zu sehr von der Arbeit ab 😉
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben