Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Version Control Systeme sind absolute pflicht!
Bitte schau dir Git mal genauer an!
Du kannst die JAR decompilen und erhälst deinen Quellcode zurück, allerdings nicht in der selben Form, wie du ihn geschrieben hast.
z.B. sind Variablen dort anders benannt und alle Kommentare wurden entfernt.
Ich hab mal versucht die Anwendung zu entpacken und die Klassen (.class) zu (.java) zu formen. Hat auch alles gut geklappt. Nur fehlt das wichtigste im Code. Ist es normal das viele Teile im Code fehlen?
Und kann man irgendwie alles wiederherstellen?
Schönen Abend noch
Bist Du dir wirklich sicher? Also alle .class Dateien aus dem Jar musst Du dekompilieren. Hintergrund ist halt, dass Deine Implementierung wohl eine anonyme inner class sein dürfte und ich habe es jetzt nicht geprüft, aber ich würde vermuten, dass die in einer eigenen .class Datei stecken dürfte.
Dann nein. Alle .class habe ich nicht dekompiliert, da viele doppelt waren.
Z.b
Bearbeiten.class
Bearbeiten$1.class
Bearbeiten$2.class
Bearbeiten$3.class
Bearbeiten$4.class
...
Die die ich überprüft habe hatten nur null drinne.
Aber da sind ja auch noch andere Dateien die vorher keine Klassen waren.
Soll ich wirklich ALLE Dateien dekompilieren?
Und was mach ich dann mit den allen?
Also in der Klasse Bearbeiten hast Du dann sowas gemacht wie:
Java:
myFrame.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent me) {
// Do something
}
}
Damit erzeugst Du innerhalb Deiner Klasse (inner class) eine neue Klasse (ohne Namen, also anonym) welche MouseListener impementiert und welche lediglich mousePressed implementiert.
Und von dieser Klasse wird direkt eine Instanz erzeugt und als Parameter an addMouseListener übergeben.
Und bezüglich der .class dateien gilt wohl:
Die namen bilden sich aus Parent Klassenname und Inner Class Name, getrennt durch $.
Und da die inner class anonym ist, wird statt dessen ein Zähler verwendet.
Also in diesen ,class Dateien sollte der noch fehlende Code stecken.
Also ich hab jetzt mal durchgeguckt... aber irgendwie wird das nix. Ich hänge das Verzeichnis gleich mal an, falls von euch da experte ist und die zeit hat... (mir geht es ansich nur um Bearbeiten.class -> die will ich als .java)
Habe alle Bearbeiten$... .class dekompeliert -> alles "null". Aber vielleicht habt ihr mehr glück!
Vielen dank wenn es wer probiert.
Schönen Start in die Woche
So langsam gefällt mir Java
das Teil kann echt super viel und ich lerne immer was neues hier
Danke mrBrown das muss ich mir auf meine Liste schreiben das ich es mir irgendwann mal anschaue
Thema Obfuscator ist etwas, das du weg lassen kannst. Du kannst die Latte damit für Hacker höher legen, aber egal was du machst: Deine Software wird dekompiliert.
Selbst große Firmen haben damit enorme Probleme und stecken da viel Geld rein und dennoch werden Produkte wie AutoCAD gehackt....
Und es wird sogar immer leichter, die NSA hat jetzt erst vor kurzem ein Open Source Tool veröffentlicht, das mit den Kommerziellen Tools dafür gleichzieht. Also: verschwende Deine Zeit nicht damit!
So du Software entwickelst, die schützenswert sein sollte: Zahlende Kunden werden mehr oder weniger belästigt, weil es ggf. bei bestimmten Konstellationen nicht geht oder Support ist schwer, weil Stacktrace nichts aussagt oder du zumindest den erhaltenen Stacktrace erst umwandeln musst und und und .... wieso willst du Kunden gewinnen nur um sie zu vergraulen?
Meine Erfahrungen gehen hier aber vor allem auf den .Net Bereich zurück. Da habe ich in der Vergangenheit auch diverse Tools getestet und dann alle verworfen. Zwei Produkte kamen damals in Betracht, so dass ich sogar eine Lizenz erworben hatte ....
Ach ja: besserer Ansatz ist trivial: Microservices und co sorgen dafür, dass Code eben nicht heraus gegeben wird. Damit gibt es den Angriffsvektor bezüglich dekompilieren auch nicht mehr. Setzt dann aber natürlich auf Clientseite eine Netzwerkverbindung voraus.
Aber da ist natürlich auch die Frage, was Du überhaupt machen willst - ist nicht für alles eine Lösung (Aber da geht extrem viel. webassembly mal ansehen... Wird alles auch auf Client Seite immer stärker.)
Danke für die Infos
Naja Java gibt einem so so viele Vorteile, irgendwo muss dann eben auch einmal ein Hagen sein! Es gibt nichts was nur Vorteile hat
Klar doof für Entwickler oder Firmen die da viel Zeit reinstecken doch die andere Seite ist die wieviel "neue" Entwicklung gibt es heute noch? <- gut damit kenne ich mich ehrlich gesagt gar nicht aus deswegen Behaupte ich jetzt einfach mal das es Heut zu Tage keine neuen Revolutionären Algorithmen mehr in solchen Programmen zu finden gibt!
Damit meine ich jetzt sowas wie naja ich berechne eine Primzahl egal wie groß in O(1)
Kann mich ja auch sehr Irren da fehlt mir leider noch die Erfahrung
Also der Link dahinter geht dann über eine Weiterleitung und wird dann bei mir direkt geblockt da unsicher - daher sollte da besser niemand den Link nutzen, bis das von den Admins/Moderatoren entfernt wurde.