How to protect Java-codes gegen decompiler?
Wie wir wissen , es gibt eine Menge von java-decompiler tools, die das konvertieren kann .Klasse .java-Datei.
Daher müssen wir schützen, unsere .java-Dateien gegen decompiler. Ich weiß, das ist ein großes Thema,und vielleicht gibt es kein Ende.
In der Regel gibt es zwei Möglichkeiten : obfuscator und angepasster classloader.
Gibt es eine ausgereifte Lösung oder open-source-framework, das kombiniert die beiden Arten ?
Ein weiterer Aspekt ist im Zusammenhang mit exe4j, welches Paket Gläser exe-Datei,wie es scheint, schützen können java-codes , denn das, was wir sehen können ist der exe-Datei anstelle von Gläsern oder class-Dateien. Aber in der Tat, wenn es ausgeführt wird, es zersetzen alle Gläser-Dateien in temporären Verzeichnissen, das heißt, es ist leicht zu bekommen-class-Dateien decompiler.
Also alle überlegungen zum Schutz von java-codes aus dem Aspekt der exe4j ?
Vielen Dank für Ihre Kommentare und schlägt.
Aktualisierung
Danke an alle für Ihr vorschlagen, oder Erfahrungen teilen. Das ist hilfsbereit zu mir.
Schluß zu machen, ich werde jeden obfuscator oder angepasst classloader mit Verschlüsselung Dinge. Denn schließlich Java-codes können weitergegeben werden, vor cleveren Hackern.
Werde ich entfernen Sie einige core-codes während der compiler mal mit tricks wie "#ifdef" in der C-Sprache. In Java static und final boolean class-variable kann verwendet werden, um die gleiche Arbeit.
Dann die compilered class-Datei nicht enthalten, müssen geschützt java-codes.
Ja, dies ist eine doppelte: stackoverflow.com/questions/49379/...
Einsatz von open-source-framework für die Erstellung von closed-source-Produkt. Interessant.
und noch mehr "geschlossen" source als üblich in diesem Fall 😉
InformationsquelleAutor Forrest | 2009-12-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie nicht davor schützen, dass die class-Dateien aus decompiler und von böswilligen Benutzern. Jedoch ist die Ausgabe der decompiler kann keine gültige java -.
Die beste Methode ist die Dokumentation der API (vorausgesetzt diese ist verfügbar für Ihre Kunden) und die Anwendung sehr gut. Und die haben Ihren support-Mitarbeiter in der Lage sein zu beheben, API-und Applikations-Problemen. Dann werden Ihre Kunden keinen Grund haben, zu wollen, zu einem decompiler zu erforschen, warum Dinge nicht richtig.
"Man kann nicht schützen, die class-Dateien aus decompiler und von böswilligen Benutzern." 🙂 Es ist nicht möglich, schützen Sie Ihre classfiles in einer Weise, dass es nicht interpretierbar, indem ein decompiler. Wenn es so wäre, wäre es auch geschützt werden vor der Ausführung in der Java-VM und daher nutzlos, da Sie nicht unterscheiden kann, die interpretation von Dekompilierung (aus der Sicht des classfile).
InformationsquelleAutor David Harris
Nur so schützen Sie Ihre software-Bereitstellung im SaaS/PaaS.
Aber halten Sie den Kopf: die meisten Menschen nutzen einen decompiler, weil Sie haben ein technisches problem, und die Dokumentation ist schlecht oder nicht existent. Schreiben Sie eine gute Dokumentation und eine fest-EULA ist die bessere Lösung.
InformationsquelleAutor Emmanuel Dupuy
Software-as-a-Service.
InformationsquelleAutor Thilo
Die einzige Möglichkeit, die besonders effektiv ist, bieten Ihr Programm als web-service von einer Art, so dass der kompilierte code ist noch nie auf einer end-user-Maschine.
Den nächsten effektivste Lösung, die ist, die weit verbreitet in der Praxis ist Ihr Programm so schrecklich, dass niemand es nutzen möchte, oder die Zeit verbringen, reverse engineering es in den ersten Platz. Ich vermute, dass, wenn dies geschieht, ist es in der Regel zufällig, jedoch.
InformationsquelleAutor DrPizza
Können Sie versuchen, open-source-Projekt proguard
InformationsquelleAutor baybora.oren
In der Tat, nicht nur Java, silverlight und flash habe auch das gleiche Problem. Jeder, der heruntergeladen werden kann das Paket entpacken und dann zu dekompilieren, durch reverse Engineering den code.
Ich Stimme mit Saas wird die beste Lösung sein, dass der web-service, um alle die zu Grunde liegende Logik und stellt Daten stellt eine relativ gesichert & isolierte Schicht an den end-Kunden zum verarbeiten von Daten.
InformationsquelleAutor Jay Zeng
Mein Rat ist, dass, wenn Sie es wirklich ernst ist, sollten Sie lassen Sie nur die demo-software zu Menschen, die unterzeichnet haben, eine rechtsverbindliche non-disclosure agreement. Und bereit sein, vor Gericht zu gehen, wenn Sie gegen die Vereinbarung.
Mit allen Mitteln, verschleiern Ihre demo-Anwendung, etc, aber kann mir nicht vorstellen, dass dies wird stop-ein entschlossener hacker aus der Entdeckung der "geheimen Soße" in Ihrer Anwendung. Es ist nicht möglich um zu verhindern, dass diese in der Theorie und in der Praxis. Piraterie ist unvermeidlich, wenn Sie die pay-for-Lizenz-Modell von Geld verdienen mit Ihrer software.
(Tatsächlich, es ist theoretisch möglich, aber nur mit einer völlig gesicherten Plattform wie TPM. Und das ist nicht eine option für Sie. Vertrauen Sie mir.)
InformationsquelleAutor Stephen C
Was über die Verschlüsselung Ihrer Klasse Dateien und mit einem individuellen classloader zum laden der class-Dateien ?
InformationsquelleAutor divesh premdeep
Alles ist hackable. Nur eine solide EULA und setzen die Bemühungen in es, anstatt Sie zu hoffnungslosen versuche zu schützen, den code.
InformationsquelleAutor BalusC