Spigot Java-Code verschleiern mit IntelliJ und Maven?

6 Antworten

Richtig "verschleiern" kann man sowas ja nicht, da es sich ja wieder von Java gelesen werdne muss und so im umkehrschluss auch wieder decompiliert werden kann, das einzige das man machen kann, ist es so kompilieren zu lassen das der Code unleserlicher wird, was das decompilieren aber dennoch nicht verhindert.

Umgekehrt sehe ich es als deren gutes Recht, den Code zu überprüfen, bevor jemand irgendwelchen Schadcode einschleust.

Wenn du nicht willst das dein Code "geklaut" wird, meine Güte, dann gib denen halt deinen Code nicht. Und dh. nicht nur als Quellcode sondern auch die ausführbare Version.

Ich würde dich als Serverbetreiber auslachen, natürlich ist es gute Praxis Code den man ausführt zu überprüfen. Und gerade bei Minecraft gibt es ja genügend Script Kiddies die einem bösartigen Code als Plugin unterschieben wollen, wenn man dann Code von jemanden zu dem man kein richtiges Vertrauensverhältnis hat ungeprüft ausführt wäre das schlicht dumm.

Wenn du nicht willst das die den Code anderweitig nutzen leg das vertraglich fest, gib denen erst gar nicht den Code oder stell den Code direkt Open Source für alle zur Verfügung, dann kann den auch keiner "klauen".

Woher ich das weiß:Berufserfahrung – Software Entwickler / Devops

Naja… gar nicht. Jede Java Datei kann decompiled werden, da es ja nur eine zip bzw. ein Ordner mit Dateien ist. Warum bist du dagegen das sie deinen Code decompilen? Du „Arbeitest“ Ja für die also wirst du ja bezahlt. Und wenn du nicht bezahlt wird und du das freiwillig machst warum interessiert es dich dann so sehr?


kid2407  13.12.2021, 13:29

Genau das, wenn du Sorge hast, dass man deine Arbeit "klaut", dann machst du was falsch.

1
schemil053 
Fragesteller
 13.12.2021, 13:30

Ich mache das kostenlos.

0
schemil053 
Fragesteller
 13.12.2021, 13:32

Ich tu das, weil ich diesem Server etwas gutes tun möchte. Ich möchte lediglich meinen Code verschleiern, damit er mir nicht geklaut wird.

0
kid2407  13.12.2021, 13:48
@schemil053

Wieso wäre es denn schlimm für dich, wenn der "geklaut" wird? Hast doch keinen wirtschaftlichen Schaden davon o.ä.

0

Schau dir mal Proguard an. Gibt auch ein Maven Plugin dafür. Das benennt aber nur Methoden und Klassennamen um. Ganz"undecompilierbar" kannst du es nicht machen, es ist dann lediglich weniger einfach zu verstehen.

Aber warum willst du das Decompilen überhaupt verhindern? Schliesslich arbeitest du für den Server. Dein Code ist für den Server also einzigartig, was kümmert es dich dann? Das Plugin wird ja so oder so auf dem Server eingesetzt werden.

Woher ich das weiß:eigene Erfahrung – Spiele Minecraft Java seit 2014
ich arbeite für einen Minecraft-Server.

Ist es jetzt schon so weit, dass wir für die maschinen arbeiten?

Die Owner decompilen zum Teil den Code,
um ihn zu kopieren

Eine übersetzte Java-Datei im Class-Format ist natürlich einfach dekompillierbar, jedoch ist das Produkt des dekompillierens auf keinen Fall 1:1 dein Quellcode. Klar kann man damit aber Java-Code ableiten, der das selbe macht, wie dein Code. Und das können die dann in ihrem eigenen Java-Quellcode verwenden.

Dagegen kannst du aber nichts tun. Selbst wenn du den Java Code verschleierst wird das Produkt des Kompillierens trotzdem eine einfache zu dekompillierende Class-Datei. Die Class-Dateien selbst zu verschleiern bringt auch nichts, das verwirrt einen decompiler nicht.

du hast also effektiv keine Möglichkeit ein java-programm so zu verschleiern, dass dekompillierung erschwert wird.

Woher ich das weiß:Berufserfahrung – Berufserfahrung