Programmierung [C/C++]

Registriert
21. Mai 2002
Reaktionspunkte
5
Hallo!

Erstmal frohe Weihnachten!
Ich will nicht lange drumherum reden, hat jmd. eine Ahnung, ob ich eine
von mir compilierte *.exe Datei wieder zurück "compilieren" kann, um den Quellcode zu sehen? Ich habe leider den Quellcode verloren, aber noch die *.exe Datei von dem Programm!


Gruß,
Thorsten
 
Bei C bzw. C++ weiß ich's nicht, aber es gibt für diverse andere Sprachen wie Delphi oder VB sog. Decompiler. Ich nehme mal an, dass das auch Bei C o. C++ geht. Die decompilierte exe wird aber nicht Deinem ursprünglichen Quelltext entsprechen. Zumindest Kommentierungen sind keine enthalten, genausowenig wie selbst vergebene Variablen. Du mußt Dir also den Quelltext erst wieder erschließen, damit Du mit diesem weiterarbeiten kannst.
 
Gibt es sowas denn auch als Freeware? Kommentierungen und eigene Variabln sind ganz egal...es geht eher um die allgemeine Realisierung!

Gruß,
Thorsten
 
Das wird bei C/C++ sehr sehr sehr sehr schwierig, da es keine Interpreter-Sprache ist wie zum Beispiel Basic.
Aber du bekommst auf jeden Fall den Assembler-Code und wenn du fix in C/C++ bist und die Linker und Compiler aus dem efef kennst kannst du daraus deinen Quelltext wieder erstellen. ;)
 
Für Assembler heißt so etwas Reassembler, Disassembler, o.ä.

Nützen wird es nichts, selbst wenn man hochgradig fit in der jeweiligen Assemblerprogrammierung ist, lässt sich daraus kaum wieder der komplette C-Code machen. Jedenfalls nicht mit vertretbarem Aufwand. Neu schreiben geht in der Regel schneller.

Es kann trotzdem sinnvoll sein, um minimale Änderungen/Fehlerkorrekturen einzubringen.
 
Wenn Du Dein Programm mit Debug-Infos übersetzt hast, stehen die Chancen durchaus gut. gcc -g (-O0) schreibt ja auch jede Quelltextzeile (die Maschinencode erzeugt hat) ins Compilat. Von anderen C-Compilern hab ich keine Ahnung.

Ansonsten: Auch für .exe-Formate gibts eine Handvoll Disassembler. Kannst ja mal alle (zutreffenden) von da austesten und berichten ;)

Du solltest Dir dennoch keine Hoffnungen machen, dass Du Deinen Quelltext danach wiedererkennst. Insbesondere C++ Strukturen gibts definitiv nicht mehr.
 
carmin schrieb:
gcc -g (-O0) schreibt ja auch jede Quelltextzeile (die Maschinencode erzeugt hat) ins Compilat.
Das wäre mir jetzt völlig neu. Richtig ist, dass Referenzen zum Quellcode in das Programm geschrieben werden. Man weiss also beim Debuggen, in welcher Zeile man sich befindet. Ohne Quellcode ist diese Information trotzdem nicht sonderlich hilfreich.
 
Die Debugg Informationen habe ich mit compiliert. Das habe ich gestern mal nach geschaut!
ICh werde mal schauen! Ich muss auch nur "C" Strukturen sehen, der Rest ist egal!

Gruß,
Thorsten
 
Zurück