2017-12-26 4 views
-2

Wie kann ein Java-Programm closed-source sein, wenn der Quellcode einfach durch die Verwendung von jad oder ähnlichen Programmen abgerufen werden kann?Wie kann man ein Java-Programm Closed Source machen?

Zum Beispiel kann ein Jar entpackt werden, um Klassendateien zu erhalten, und diese können erneut dekompiliert, gelesen, bearbeitet und kompiliert werden. Also, wie?

Da eine proprietäre Lizenz den Code nicht versteckt.

+0

Ich weiß über Closed-Source-Lizenzen, aber Sie tun den Code mit diesen –

+5

Closed Source bedeutet, dass Sie nicht Ihren Quellcode allgemein verfügbar machen. Es bedeutet nicht, dass es für jemanden unmöglich ist, irgendeine Version Ihrer Quelle zu erhalten. – khelwood

Antwort

1

Die beste Option, die Sie haben, ist, Ihren Code vor der Veröffentlichung zu verschleiern.

Die Grundidee besteht darin, alle "lesbaren" Namen (zB "fetchTaxRate") durch möglichst kurze Namen (zB "a") zu ersetzen. Wenn Sie eine Anweisung in Ihrer Quelle haben "taxManager.fetchTaxRate (customerClass, countryID)" das könnte am Ende "aB.e (zY, Q)" sein; und jeder, der versucht, den Binärcode zu dekompilieren, wird sehen, dass letzterer nicht der erstere ist.

Ein guter Artikel auf Verschleierung ist bei https://www.excelsior-usa.com/articles/java-obfuscators.html

Der Artikel auch eine Liste von obfuscators hat und die, die ich persönlich verwenden, um meine Zufriedenheit (ProGuard) ist unter der Liste.

-2

Nun, das Beste, was ich vorschlagen kann ist, was Web-Entwickler tun, die den Algorithmus unmöglich zu lesen machen. Sie können damit beginnen, jedes Leerzeichen oder jede Registerkarte aus dem Code zu entfernen (natürlich mit einem Algorithmus), dann Var-Namen durcheinander zu bringen und so weiter.

+1

Das Entfernen von Leerzeichen wirkt sich nicht auf den dekompilierten Java-Quellcode aus. – khelwood

+0

Aber es gibt immer noch etwas, was Sie tun können, um es unlesbar zu machen. –

+0

Aber das ist nur eine Vermutung. Ich habe noch nicht deconpiled Java gelesen. –

0

"Geschlossene Quelle" bedeutet, dass der Quellcode nicht veröffentlicht ist, nicht dass eine Darstellung des Codes nicht erhalten werden kann.

Verschleierter Code kann sehr schwer zu lesen sein, wenn er dekompiliert wird, aber mit der Zeit, den Werkzeugen und der Bestimmung werden die Geheimnisse des gesamten Codes fallen.

Verwandte Themen