Roland: .class -> .java

Hi!

gibts ein Programm, mit dem ich aus .class-Dateien wieder den Java Quelltext bekomme?

Viele Grüße,
Roland

  1. hallo,

    gibts ein Programm, mit dem ich aus .class-Dateien wieder den Java Quelltext bekomme?

    Nö, davon gibts mehrere. Allerdings gibts da ein Problem mit dem Copyright. In der Regel ist es nicht erlaubt, fertige .class-Dateien zu dekompilieren. Wenn der Autor des Applets oder der Applikation den Code (als *.java-Datei) nicht ausdrücklich freigibt, ist das eben keine OpenSource und du solltest normalerweise nicht daran herumfummeln.

    Google ist dein Freund, wenn du mal nach "Java dekompilieren" fragst.

    Grüße aus Berlin

    Christoph S.

    1. Hi,

      Standard-Disclaimer:
      Ich bin kein Anwalt und dies ist auch in keinster Weise als Rechtsberatung zu verstehen. Das Folgende spiegelt nur meine unbedarfte Meinung wieder.

      gibts ein Programm, mit dem ich aus .class-Dateien wieder den Java Quelltext bekomme?

      Nö, davon gibts mehrere. Allerdings gibts da ein Problem mit dem Copyright.

      Nein, gibt es nicht. Ich weiß zwar nicht, wie das nach der nächsten Urheberrechts"reform" aussieht, aber zur Zeit darfst Du das noch unbesorgt, wenn Du das machen mußt, um den Code Deinen Bedürfnissen anzupassen.

      Javabytecode könnte man sogar noch als reine Bequemlichkeit ansehen, da im Grunde nicht viel an Informationen beim umwandeln des Javacodes nach Classcode verlorengeht, eigentlich gar nix. Auch wenn ich mich da teilweise natürlich auf Church et al berufen muß: ich würde Java prinzipiell als quelloffen ansehen. "Quelloffen" hat hier natürlich rein gar nichts mit OpenSource zu tun, nur mit der Lesbarkeit des Codes.

      In der Regel ist es nicht erlaubt, fertige .class-Dateien zu dekompilieren.

      Wie schon erwähnt: es ist in der Regel erlaubt. Aber bevor noch jemand kommt: man darf den so gewonnenen Code nicht ohne Genehmigung des Autoren in der Gänze oder auch nur in wesentlichen Teilen veröffentlichen!

      Wenn der Autor des Applets oder der Applikation den Code (als *.java-Datei) nicht ausdrücklich freigibt, ist das eben keine OpenSource und du solltest normalerweise nicht daran herumfummeln.

      Sondern gleich in die Tonne hauen? ;-)
      Nä, so brutal ist es (noch?) nicht, man hat als Kunde schon noch ein paar Rechte übrigbehalten.

      Google ist dein Freund, wenn du mal nach "Java dekompilieren" fragst.

      Sehr zu empfehlen ist hier "jad", das aber leider nicht quelloffen ist. Dummerweise zieht der auch noch regelmäßig um, daher kann ich hier ebenfalls nur auf Google verweisen.

      Da der allgemeie Umstand bei Java aber bekannt ist, sind auch eine Menge Obfuskatoren in Umlauf, die das Dekompilat ziemlich unlesbar machen. Wenn man auf sowas stößt ist aber davon auszugehen, das der Autor noch viel mehr zu verbergen hat (meist weil er selber Code geklaut hat oder noch schlimmer: Trojaner, Backdoor etc) und auf ein anderes Angebot umzuschwenken.

      so short

      Christoph Zurnieden

      1. hallo Christoph ;-)

        (ähm, das "Grinsemännchen" bedeutet, daß ich bei dieser Anrede nicht sicher bin, ob ich grade ein Selbstgespräch führe)

        Sehr zu empfehlen ist hier "jad", das aber leider nicht quelloffen ist. Dummerweise zieht der auch noch regelmäßig um, daher kann ich hier ebenfalls nur auf Google verweisen.

        Im Moment findest du jad hier.

        Grüße aus Berlin

        Christoph S.

    2. Danke erstmal!

      Allerdings gibts da ein Problem mit dem Copyright. In der Regel ist es nicht erlaubt, fertige .class-Dateien zu dekompilieren. Wenn der Autor des Applets oder der Applikation den Code (als *.java-Datei) nicht ausdrücklich freigibt, ist das eben keine OpenSource und du solltest normalerweise nicht daran herumfummeln.

      Darum gehts auch nicht! Mich interessiert nur die Funktionsweise von manchen Programmen!

      1. Hej Roland,

        Darum gehts auch nicht! Mich interessiert nur die Funktionsweise von manchen Programmen!

        Mich interessiert sogar noch viel mehr die Funktionsweise meiner eigenen Programme. Es ist schon ganz interessant zu sehen wo der Compiler manchmal Optimierungen findet.

        Lese hierzu: http://www.galileocomputing.de/openbook/javainsel4/javainsel_25_005.htm

        Übrigens wird auch der rechtliche Aspekt erwähnt: "Das Reverse Engineering von vollständigen Anwendungen, die unter Urheberschutz stehen, ist dabei auch nicht unbedingt das Problem. Vielmehr beginnt die Straftat, wenn dieser Quelltext verändert und als Eigenleistung verkauft wird."

        Beste Grüße
        Biesterfeld

        --
        Selfcode:
        fo:| br:> n4:? ie:{ mo:} va:} de:] zu:| fl:| ss:| ls:]