Frage

Jemand hat mir gerade eine decompile eines Programms in C. Es war ein sehr gutes decompile, produziert schöne, meist readabe C-Code (wenn man die Tatsache übersehen, dass keine der Variablen oder Funktionen hatte einen Menschen lesbaren Namen), dass meist sah aus wie es tatsächlich kompilieren würde.

Es gibt ein großes Problem, wenn. Ich weiß zufällig, dass das Programm, das er war decompiling in Delphi geschrieben wurde, die von Konzepten voll ist, die schwer in C zu übersetzen, aber ich wurde von den Decompiler des Ausgang wirklich beeindruckt, und es machte mich fragen. Gibt es etwas, dass für Delphi tun?

Das beste decompiling Tool, das ich für Delphi gesehen habe, ist DeDe. Es kann eine Menge Dinge tun, aber es versucht nicht, auch Pascal-Code als Ausgangsobjekt zu erzeugen, und es nicht aktualisiert wurde seit Delphi 6. Gibt es etwas Besseres da draußen?

War es hilfreich?

Lösung

Ich glaube nicht, gibt es keinen Maschinencode Decompiler, die Pascal-Code zu erzeugen. Die meisten „Delphi Decompiler“ analysieren Form und RTTI-Daten, aber decompile nicht eigentlich den Maschinencode. Ich kann nur mit so etwas wie DeDe (oder rel="noreferrer">) empfehlen zu extrahieren Symbolinformationen in Kombination mit einem C-Decompiler, dann übersetzen die dekompilierten C-Code zu Delphi (es gibt viele Quellcode-Konverter gibt).

Andere Tipps

Sie können mit IDR es ist ein großes Programm delphi zu dekompilieren, es ist Update auf die aktuelle delphi Versionen, und es hat eine Menge Features.

Hier ist eine Liste: http://delphi.about.com/od/ devutilities / a / decompiling_3.htm (und diese Seite erwähnt einige mehr: http: // www.program-transformation.org/Transform/DelphiDecompilers )

Ich habe DeDe gelegentlich verwendet, aber es ist nicht wirklich alles, was kraftvoll, und es ist nicht up-to-date mit dem aktuellen Delphi-Versionen (neueste Version unterstützt ist Delphi 7 glaube ich)

Sprachen wie Delphi, C und C ++ Compile an den Prozessor-nativen Maschinencode, und die Ausgangs Executables wenig oder gar keine Metadaten in ihnen. Dies steht im Gegensatz zu Java- oder .NET, die kompiliert in der objektorientierten plattformunabhängigen Bytecode, der die Namen von Methoden, Verfahrensparametern, Klassen und Namensräumen und anderen Metadaten beibehält.

So gibt es viel weniger nützlich decompiling ist, die auf Delphi oder C-Code ausgeführt werden kann. Allerdings hat Delphi typischerweise eingebettete Formulardaten für jede Form in dem Projekt (von der $ R * .dfm Linie erzeugt wird), und es hat auch Metadaten auf all veröffentlichten Eigenschaften, so dass ein Delphi-spezifisches Werkzeug wäre in der Lage, diese Informationen zu extrahieren.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top