Entwickler-Ecke

Sonstiges (Delphi) - Exe-Dateien wieder in Delphi umwandeln


Mäthew Glide - Fr 11.12.09 23:01
Titel: Exe-Dateien wieder in Delphi umwandeln
Hallo!
Ich hab mal eine Frage: Ich habe eine .exe DAtei bekommen die mit Delphi geschrieben wurde, allerdings fehlen mri die andere Dateien um es zu öffnen und zu bearbeiten. Gibts es irgendeine Möglichkeit diese exe DAtei wieder umzuwandeln?


Gausi - Fr 11.12.09 23:10

Den Delphi-Quellcode (*.pas) kann man nicht wieder herstellen. Die DFM-Dateien geht wohl, aber das ist dann schon alles (hab ich gehört, aber das bringt einem ja nun auch nicht viel).

Ich zitiere (mal wieder) user profile iconLuckie: Kann man aus einem Kilo Halb-und-Halb wieder die Kuh und das Schwein bauen?


Mäthew Glide - Fr 11.12.09 23:20

okay danke und sau gutes Zitat gefällt mir echt


turboPASCAL - Sa 12.12.09 00:15

Theoretisch ja. ;)

Da Exectutable Dateien aus Assemblerbefehlen usw. bestehen kann man diese
mit diversen Disasseblern in die Assembler-Programiersprache "wandeln".
Jetzt müsste man diesen wieder in eine Delphisprache umsetzen.

Da aber alle Variablen, Funktionen und Prozedurennamen nicht mehr existent sind
würden diese durch neue, anders benannte ersetzt werden. Das wiederum würde
den Code schwer lesbar machen.

Was die Fenster (Forms) angeht, ist nur dann möglich wenn sie als Resource
mit in die Exectutable übernommen wurde, also bei der VCL-Programmierung.
Bei einigen nonVCL-Programmen werden diese direkt im Programmcode erzeugt.


alzaimar - Sa 12.12.09 09:15

user profile iconturboPASCAL hat folgendes geschrieben Zum zitierten Posting springen:
Theoretisch ja. ;)

Definiere: Theoretisch.

user profile iconturboPASCAL hat folgendes geschrieben Zum zitierten Posting springen:
Da Exectutable Dateien aus Assemblerbefehlen usw. bestehen kann man diese
mit diversen Disasseblern in die Assembler-Programiersprache "wandeln".
Jetzt müsste man diesen wieder in eine Delphisprache umsetzen.

"Man müsste einfach nur..." hat man auch über KI gedacht: Und bis heute is nix draus geworden. Es gibt Dinge, die man "einfach nur machen müsste", aber nie hinbekommt. Z.B. müsste man ja eigentlich nur das Licht einholen, das vor 10 Jahren von der Erde abgestrahlt würde, und schon hätte man einen Blick in die Vergangenheit geworfen.

Mich würde der Algorithmus interessieren, der optimierten Code wieder zurückverwandelt. Sowas wie "Neuronales Netz" allein reicht da nicht. "Fuzzy Logic" und "Mustererkennung" wären noch Kandidaten. Aber der wirkliche Algorithmus bleibt mir verborgen. Oder hast Du eine Vorstellung?


Flamefire - Sa 12.12.09 12:33

Ich definiere: Man schaue sich den Code im Disassembler an und rekonstruire daraus Delphi Code.
Mit genügend Zeit, etwas Verständnis für den Code, den man analysiert, und umfangreichem Assembler-Kenntnissen, ist es möglich.

So wie es möglich ist, Primzahlen per Hand zu berechnen ;-)


JoelH - Mo 14.12.09 12:00

user profile iconFlamefire hat folgendes geschrieben Zum zitierten Posting springen:
Ich definiere: Man schaue sich den Code im Disassembler an und rekonstruire daraus Delphi Code.


Das halte ich bei Optimierung für nahezu unmöglich.

Wenn du nur das Ergebnis einer Rechnung, nehmen wir einfach mal 42, hast, dann kannst du daraus den Rechenweg nicht mehr rekonstruieren. Es kann 36+6 sein, es kann aber auch 7*6 oder 84/2 usw. sein.

Sicherlich könnte man diverse Strukturen rekonstruieren aber das würde recht rudimentäres Stückwerk bleiben und wohl den Aufwand nicht lohnen, denn trotz allem kämst du ohne gehörige Assemblerkentnisse auf keinen grünen Zweig.


muetzenjoe - So 20.12.09 00:07

Es gab da doch mal sonen Delphi Decompiler ?!?

http://www.softpedia.com/get/Programming/Debuggers-Decompilers-Dissasemblers/Delphi-and-C-Builder-Decompiler.shtml

http://delphi.about.com/od/devutilities/a/decompiling_3.htm

http://www.program-transformation.org/Transform/DecompilationPossible

und der bekannteste: http://www.softpedia.com/get/Programming/Debuggers-Decompilers-Dissasemblers/DeDe.shtml

Kein Plan obs funzt! Wollte es vor Jahren mal testen aber habs irgendwie nie getan *g


jakobwenzel - So 20.12.09 00:18

Da kommt aber auch nur Assembler raus:
Zitat:

Note: pas files contains the mentioned above well commented ASM code. They can not be recompiled !