Quellcode wiederherstellen

Greg50007

Aktives Mitglied
Hi :(
Ich hab durch einen dummen Fehler meinen Quellcode gelöscht.

Was noch übrig ist, ist eine .jar und eine Anwendung die ich aus dem Quellcode generiert habe.

Besteht die Möglichkeit daraus den verlorenen Code wiederherzustellen?

LG.

Greg
 

Greg50007

Aktives Mitglied
Wenn ich die Anwendung entpacke finde ich zwar meine klassen. Die aber nur als .class und nicht als .java

Ist das der richtige Weg?
 

JuKu

Top Contributor
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.
 

mihe7

Top Contributor
Wobei man dazu sagen muss, dass git alleine nicht vor Verlust schützt. Dazu braucht es dann schon ein Remote-Repository.
 

Greg50007

Aktives Mitglied
Danke für dir antworten :)

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

Greg
 

mrBrown

Super-Moderator
Mitarbeiter
Weder beim kompilieren noch beim dekompilieren geht Code verloren, höchstens hat der wie schon gesagt eine etwas andere, aber gleichwertige, Form.

Wie hast du die Klassen denn dekompiliert?
 

Greg50007

Aktives Mitglied
Das hab ich mir auch gedacht...
Der Code der fehlt sollte in der actionlistenermethode eines buttons stehen.
Decompiled hab ich es online.
Mich ärgert das, das der komplette Inhalt des Buttons fehlt...
 
K

kneitzel

Gast
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.
 

Greg50007

Aktives Mitglied
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?
 
K

kneitzel

Gast
Ja, das sind diese anonymen inner classes.

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.
 

Greg50007

Aktives Mitglied
Gut... o_O
Dann werde ich mich dan setzen und alle .class dekompilieren und durchforsten.
(Auch die sie ich nicht selbst benannt habe)

Melde mich wenn es vollbracht ist
 

Greg50007

Aktives Mitglied
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 ;)

Greg
 

Anhänge

  • MedienLister 4.0.zip
    1,9 MB · Aufrufe: 2

ocsme

Top Contributor
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 :)

LG
 
K

kneitzel

Gast
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 ....
 
K

kneitzel

Gast
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.)
 

ocsme

Top Contributor
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) :D :D :D

Kann mich ja auch sehr Irren da fehlt mir leider noch die Erfahrung :(

Nochmals Danke :)
 

johnniemelton

Neues Mitglied
[QUOTE = "Greg50007, post: 1179559, member: 56981"]
Hi :(
I deleted my source code with a stupid mistake.

What's left is a .jar and an application I generated from the source code.

Is it possible to recover the lost code from it?

LG.

Greg
[/ QUOTE]
He your issue resolved?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Verwendet Programmiersprache aus Quellcode - Datei ermitteln Allgemeine Java-Themen 6
C Quellcode-Übersetzung englisch zu deutsch Allgemeine Java-Themen 9
D Suche Quellcode! Allgemeine Java-Themen 8
B Quellcode einer Java libary finden um zu copy & paste'n Allgemeine Java-Themen 5
B Quellcode lesen - Aussortieren Allgemeine Java-Themen 3
M Quellcode von Java-Methoden Allgemeine Java-Themen 9
U Swing Hilfe beim Quellcode für ein Codierungs-/Decodierungsprogramm Allgemeine Java-Themen 9
G Externer Quellcode Allgemeine Java-Themen 3
L Methoden "Schiffe versenken" Quellcode in Methoden umwandeln Allgemeine Java-Themen 6
T Android Webview Webpage Quellcode to string Allgemeine Java-Themen 0
B Quellcode für Zwischenprüfung Allgemeine Java-Themen 4
M Aus Javaprogramm .NET Quellcode kompileren Allgemeine Java-Themen 2
J XML Dokument Zeilenumbruch in den Quellcode einfügen Allgemeine Java-Themen 5
T ExceptionHandling mit bescheidenem Quellcode Allgemeine Java-Themen 14
I Methoden Quellcode auslesen (Refelction o.ä.) Allgemeine Java-Themen 5
H Zeilenumbruch in Quellcode Allgemeine Java-Themen 4
G Eingegeben Formeln in Quellcode einbetten?! Allgemeine Java-Themen 4
E Compiler-Fehler wie muss ich die entstandene Quellcode kompilieren?? Allgemeine Java-Themen 2
T Api in Quellcode laden Allgemeine Java-Themen 8
L Java Quellcode auf Windows 7 ausführen? Allgemeine Java-Themen 3
S jsr in Quellcode Allgemeine Java-Themen 4
M R250 Quellcode Allgemeine Java-Themen 2
J Quellcode aus .jar auslesen? Allgemeine Java-Themen 3
M JLapack Quellcode beifügen? Allgemeine Java-Themen 4
P Probleme mit wikipedia quellcode zur binären Suche Allgemeine Java-Themen 6
X Quellcode von nativen Funktionen Allgemeine Java-Themen 2
D Übersetzen von Quellcode Allgemeine Java-Themen 11
N Java Quellcode zu Syntaxbaum Allgemeine Java-Themen 3
M Wie in Eclipse Quellcode incl. Zeilennummern kopieren? Allgemeine Java-Themen 6
G SourceForge - Quellcode Allgemeine Java-Themen 15
V Quellcode auf "Güte" testen? Allgemeine Java-Themen 5
C Java Quellcode parsen Allgemeine Java-Themen 8
M Quellcode DriverManager Allgemeine Java-Themen 2
C Fehler im Quellcode. Suche in einem Baum Allgemeine Java-Themen 3
G Problem mit Quellcode, Eingabe wird nicht angezeigt --HELP-- Allgemeine Java-Themen 2
T Problem mit Quellcode Allgemeine Java-Themen 2
D Was haltet ihr von meinem Quellcode - JConsole? Allgemeine Java-Themen 2
Lazybone Java Quellcode sichern Allgemeine Java-Themen 9
P Fehler im Quellcode Allgemeine Java-Themen 8
J Viel Text mit " im Quellcode abspeichern Allgemeine Java-Themen 7
R Copyright-Notiz am Anfang jeder Quellcode-Datei? Allgemeine Java-Themen 5
R Problem mit Quellcode Allgemeine Java-Themen 2
M Events im Quellcode auslösen Allgemeine Java-Themen 4
J Java Quellcode Aufbereitung für Dokumentation Allgemeine Java-Themen 11
padde479 Organisation von Quellcode Allgemeine Java-Themen 6
F Quellcode von Java ansehen Allgemeine Java-Themen 4
S In einem HTML Quellcode gewünschten Abschnitt in Datei Save Allgemeine Java-Themen 9
R Java Quellcode zu exe Datei unsw. Allgemeine Java-Themen 5
G Quellcode inkludieren Allgemeine Java-Themen 3
J Quellcode aus JAVA Programmen Allgemeine Java-Themen 4
Q Speichern & Wiederherstellen von Daten (-objekte) Allgemeine Java-Themen 7

Ähnliche Java Themen

Neue Themen


Oben