Entwickler-Ecke

Programmierwerkzeuge - Delphi Decompiler


fusco123 - Sa 01.12.07 17:53
Titel: Delphi Decompiler
Hi,
kennst jemand nen vernünfitgen Decompiler für Delphi ???
fusco


.#R4id - Sa 01.12.07 18:01

Es gibt nur Decompiler die die .DFM Datei(en) Decompilieren können. Dennoch sind die meisten Decompiler Shareware!


BenBE - Sa 01.12.07 18:04

Für DCUs gibt's DeDe und noch einige weitere. Ich hab aber bisher keinen gesehen, der besser als ASM-Level decompiliert.


Timosch - Sa 01.12.07 18:04

Ein kompletter Decompiler ist auf Grund der Komplexität kaum möglich. So was gibt es für C, aber das Ergebnis ist kaum lesbar. Disassembler jedoch sind weit verbreitet.
Was es jedoch auch gibt, wie .#R4id schon gesagt hat, sind Programme, die aus den EXE-Dateien die DFMs generieren.
Und DeDe, aber ich sehe, das erläutert BenBE gerade. (Diese orangene Warnung ist echt praktisch...)


.#R4id - Sa 01.12.07 18:15

Eine DCU-Datei kann man Decompilieren, die Software dafür gibt es glaub ich auf [url=http://www.torry.net]Torry.net[/url].


fusco123 - Sa 01.12.07 18:54

danke schon mal für die Antworten
Kann man die dfm datei nur von delphiprogrammen sichtbar machen?
also kann man mit dede nur delphi programme decompilieren, bzw mit einem c decompiler nur c programme?
oder zeigt der decompiler wie es in der jeweiligen Sprache geschrieben wäre?
fusco


.#R4id - Sa 01.12.07 19:25

Es gibt Decompiler die können:


Und es gibt welche, die können vieles mehr :!:


Timosch - Sa 01.12.07 19:40

user profile icon.#R4id hat folgendes geschrieben:
Es gibt Decompiler die können:
  • Delphi Programme als Delphi Code darstellen
  • Delphi Programme als C++ Code darstellen
  • Delphi Programme als C++ oder als Delphi Code darstellen

  • C++ Programme als C++ Code darstellen
  • C++ Programme als Delphi Code darstellen
  • C++ Programme als Delphi oder als C++ Code darstellen


Und es gibt welche, die können vieles mehr :!:

Kannst du mir einen Decompiler für Delphi zeigen, der wirklich den Sourcecode (nicht nur asm) wiederherstellt? Die meisten, die sich Decompiler nennen, arbeiten nur recht eingeschränkt, den Sourcecode kriegt man nicht zurück (weswegen man IMHO nicht von einem Decompiler sprechen kann), nur die Struktur (Procedures etc.), aber Inhalte nur in ASM.


mkinzler - Sa 01.12.07 21:01

Zitat:
Kannst du mir einen Decompiler für Delphi zeigen, der wirklich den Sourcecode (nicht nur asm) wiederherstellt? Die meisten, die sich Decompiler nennen, arbeiten nur recht eingeschränkt, den Sourcecode kriegt man nicht zurück (weswegen man IMHO nicht von einem Decompiler sprechen kann), nur die Struktur (Procedures etc.), aber Inhalte nur in ASM.
Das wird auch nicht funktionieren.


Delete - Sa 01.12.07 21:47

Man kann aus einer compilierten Exe-Datei nicht wieder den ursprünglichen Code herstellen. Variablen-, Funktions- und Methodennamen werden nur zu Sprungadressen im Speicher. Alle Bezeichner sind also nur Schall und Rauch im Compilat. Hinzukommt dass heutige Compiler den Quelltext hochgradig optimieren. Das höchste aller Gefühle sind die Ressourcen und die DFM-Dateien sind nichst anderes und ASM-Code. Um aber aus dem ASM-Code wieder den Quelltext generieren zu können, wirst du exzelente ASM-Kenntnisse benötigen und viel Zeit.

Es ist ungefähr so als wolle man aus 200 kg Gehacktes halb und halb wieder das Rind und das Schwein machen.

Ausserdem stellt sich mir die Frage, wozu du das brauchst.


fusco123 - Sa 01.12.07 22:20

Vielen Dank erstmal für eure Beiträge, für mich hätten sich damit alle Fragen geklärt.
also gibt es de facto keinen "richtigen funktionierenden" Decompiler um wieder an den Code zu kommen.
@mkinzler ich beginne grad Delphi zu lernen und hätte es gebraucht um mir mal den Code von dem einen oder anderen Programm lesen zu können.
fusco


mkinzler - Sa 01.12.07 22:23

War zwar Michael der dich nach dem Grund gefragt hat, aber wenn du Delphi lerne willst, ese besser Tutorials.
http://www.delphi-forum.de/forum_Open+Source+Projekte_28.html


.#R4id - Sa 01.12.07 22:32

user profile iconTimosch hat folgendes geschrieben:

Kannst du mir einen Decompiler für Delphi zeigen, der wirklich den Sourcecode (nicht nur asm) wiederherstellt? Die meisten, die sich Decompiler nennen, arbeiten nur recht eingeschränkt, den Sourcecode kriegt man nicht zurück (weswegen man IMHO nicht von einem Decompiler sprechen kann), nur die Struktur (Procedures etc.), aber Inhalte nur in ASM.


Die Procedure Inhalte, Variablen, Constanten, etc... werden nicht dargestellt!
z.B.

Delphi-Quelltext
1:
2:
3:
4:
procedure SchlagMichTot(Wenn?: TNoob);
begin
  //1a6d5w
end;
wird dargestellt.


Delete - Sa 01.12.07 23:58

Aber nur, wenn die exe mit Debuginformationen compiliert wurde.

Und zum lernen gibt es genug OpenSource, wenn man sich Quellcode angucken will.


Timosch - So 02.12.07 15:15

user profile icon.#R4id hat folgendes geschrieben:
user profile iconTimosch hat folgendes geschrieben:

Kannst du mir einen Decompiler für Delphi zeigen, der wirklich den Sourcecode (nicht nur asm) wiederherstellt? Die meisten, die sich Decompiler nennen, arbeiten nur recht eingeschränkt, den Sourcecode kriegt man nicht zurück (weswegen man IMHO nicht von einem Decompiler sprechen kann), nur die Struktur (Procedures etc.), aber Inhalte nur in ASM.


Die Procedure Inhalte, Variablen, Constanten, etc... werden nicht dargestellt!
z.B.

Delphi-Quelltext
1:
2:
3:
4:
procedure SchlagMichTot(Wenn?: TNoob);
begin
  //1a6d5w
end;
wird dargestellt.

Wie ich schon sagte, das ist für mich kein Decompiler.