Frage von Marc747, 53

.jar schützen?

Hi Leute, Ich schreibe gerade an einem Bukkit Plugin für meinen Minecraft Server. Ich würde das Plugin auch gerne veröffentlicht, möchte aber nicht, dass mir jemand meinen Code "Klaut". Ich habe nämlich gerade erfahren, dass jeder die die .jar hat auch in den .jar Code gucken kann. Wie kann ichdas zuverlässig und dauerhaft verhindern?

Antwort
von TeeTier, 9

Also Reversing ist gerade bei solchen Bytecodesprachen wie auf der JVM oder im .Net-Universum (MSIL) sehr leicht.

Und um es kurz zu machen: Da wirst du auch nichts dran ändern können, egal welche Kopfstände du machst.

Du könntest jetzt natürlich einen Obfuscator benutzen, aber dazu muss dir Folgendes klar sein:

  1. So richtig geschützt ist deine Software dadurch nicht, da man sie immer noch dekompilieren oder mindestens disassemblieren kann. Wer es drauf anlegt, wird die Funktionsweise zu 100% nachvollziehen und manipulieren können. Punkt.
  2. Im Gegensatz zu "richtig" kompiliertem Maschinencode, sind diese Bytecode-Geschichten verhältnismäßig leicht zu reversen. Wenn man bei einem C++ Programm noch ziemlich viel wissen und Zeit investieren muss, sind die Ansprüche bei einer JAR-Datei sehr sehr viel niedriger. Ein Einsteiger wird sich mit z. B. einer nativen Binär-Datei schwer tun, bei Java und C# Programmen hingegen ist das selbst für Anfänger durchaus machbar.
  3. Es gibt Drittsoftware die eine Analyse und Manipulation verhindern soll. Also so etwas wie einen Kopierschutz. Die Dinger sind aber alle Geldschneiderei. Nach spätestens 3 Wochen tauchen für all diese Produkte irgendwelche automatischen Crack-Programme auf, die einem dann nur noch durch einen einfachen Klick die ganze Arbeit abnehmen. Spätestens zu diesem Zeitpunkt sind dann auch wieder absolute Anfänger in der Lage, irgendwie an die Funktionsweise deiner Software zu kommen.
  4. Ein Kopier- oder Knackschutz hat IMMER False-Positives. D. h. du wirst deinen regulären Benutzern damit gehörig auf die nerven gehen, wenn sich der Knackschutz "irrt" und etwas nicht funktioniert, was eigentlich funktionieren sollte. Irgendeinen Nachteil hat das immer, verglichen mit fast Null Vorteilen. Ist es das Wert?

So, das wars ... also wenn du deine Kleine Schwester aufhalten willst, dann nimm einen Obfuscator. Aber falls deine kleine Schwester clever ist, und wirklich Interesse hat, kommt sie nach kurzer Zeit trotzdem ran ... egal was du tust.

Naja, viel Spaß noch! :)

Antwort
von androhecker, 26

In den Fall bleibt dir nur der Obfuscator. Man kann die Klassen dann immer noch dekompilieren, aber es ist dann sehr unleserlich.

Antwort
von derzockerXD, 19

Die Obfuskation wäre da die einzige Methode, denke ich.

Wenn du dich fragst was das ist:

Obfuskation im Zusammenhang mit programmieren bedeutet, den Code einfach zum Chaos zu machen. einfach sehr viel unnützes reinschreiben, verwirrende Klassen erstellen usw. (Geht in Java ja ziemlich gut) damit derjenige, der das irgendwann mal liest es sehr schwer hat den unnützen Code von dem tatsächlichen zu unterscheiden und somit das ganze zu verstehen. Das der unnütze Code die Funktion des Plugins nicht stören sollte, ist denke ich klar.

MfG

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten