zerstörte cpp mittels objekt datei wiederherstellen?



  • Hullo

    duch einenn dummen fehler ist eine cpp datei eines wichtigen Projektes "zerstört" worden, (die Datei ist jetzt leer). Ich hab aber noch die objekt datei des Programms. Ist es irgendwie moeglich aus der objekt datei die cpp datei zu generieren? ich weiss das dies mit ferigen ausführbaren datein nicht moeglich ist, aber objekt datein enthalten doch mehr als nur den compilerten quellcode.



  • Hmm...
    es gibt Decompiler. Die sind allerdings nicht perfekt..

    Deine Obj hat den Vorteil, dass externe Verweise noch als Plaintext drin stehen. Alles andere, interne Prozedurennamen, Variablennamen, etc wirst du nicht retten können. Diese bekommen dann den Namen Var1, Var2, ...
    Ansonsten ist es zumindest denkbar..
    Dummerweise gibt es wenige gute Decompiler und der, der einen schreibt, dem ist er ein Heiligtum...



  • welche Decompiler wären das den so? Ich hab nur die folgenden gefunden http://www.backerstreet.com/cg/work.htm und von denen scheint auch nur boomerang etwas zu taugen. Leider bekomm ich nicht mal den zum laufen (Bekomm immer die Fehlermeldung ? No slash in argv[0]!).

    Doch das sind alles Decompiler fuer fertige exes, gibts nicht auch welche die sich auf die decompilierung von objekt datein spezialisiert haben?



  • Sind in der Objektdatei die Debuginformationen gespeichert? Dann findet sich
    dort auch der gesamte Quelltext. Welchen Compiler verwendest du?



  • Taurin schrieb:

    Sind in der Objektdatei die Debuginformationen gespeichert? Dann findet sich
    dort auch der gesamte Quelltext.

    Das stimmt nicht.



  • idr. kannst du gelöschte Dateien ohne Probleme wieder herstellen. Der Umweg die OBJ Datei zu dekompilieren ist so gut wie nicht möglich. (Was anderes wär es da wenn du irgend einen künstlichen Bytecode wie Java Bytecode oder dotNET CLI hast)



  • kingruedi schrieb:

    oder dotNET CLI hast)

    Meinst du nicht eher MSIL?



  • öh ja, CLI ist ja die VM. Naja, die ganzen Abkürzungen verwirren. Warum die nicht einfach dotNET Bytecode sagen können 😉



  • kingruedi schrieb:

    öh ja, CLI ist ja die VM.

    Nein, das ist die CLR. 🤡 😉

    Aber wie du schon sagtest: Wichtig sind die Konzepte. Namen sind Schall & Rauch.



  • Hi,
    habe ähnliches Problem. Durch einen Festplattenfehler ist eine .cpp Datei beschädigt worden und nun fehlt die Hälfte.

    Versuch doch mal mit einem Dateiwiederherstellungsprogramm (z.B. Restoration von Brian Kato) dein Glück.

    Bei Boomerang bekomm ich auch immer die Meldung "? No slash in argv[0]!"

    Arbeite mit Visual C++ 6.0, habe noch alle zum Release gehörenden Dateien, wie
    *.obj, *.bsc und *.pch und die erzeugte Anwendung, in meinem Fall eine dll.

    Gruß

    Dominik


Anmelden zum Antworten