Frank Schönmann: Wie kann ich eine *.class Datei öffnen?

Beitrag lesen

hi!

Insbesondere stehen in den .class-Dateien keine Variablen- oder
auch Funktionsnamen mehr drin, genauso wie evtl. Rekursionen
beseitigt wurden. Daher dürfte das anschließende Abändern des
Codes alles andere als ein Vergnügen werden.
Wieso das? Dekompilieren ist natürlich möglich. Die Regeln, die zum
Kompilieren verwendet werden, sind reversiv auch zur Rekonstruktion
des Quellcodes anwendbar.

Nein, ist es nicht, wenn der Compiler Optimierungen am Code vornimmt,
bevor er diesen in Maschinensprache/Bytecode übersetzt, zb. indem er
rekursive Funktionsaufrufe erkennt und beseitigt.

Wenn mit "javac" kompiliert wurde, sind sogar noch alle Identifier,
Funktionsnamen etc. vorhanden.

Ich wusste nicht, dass der javac nichtmal das schafft, überflüssige
Daten über Bord zu werfen, wenn er ein Java-Programm kompiliert. Aber
ich hoffe, dass es auch vernünftige Java-Compiler gibt, die das machen.

bye, Frank!