2009-08-24 10 views
17

Ich habe eine alte DLL, die nicht mehr funktioniert (log2vis.dll) und ich möchte nach innen schauen, um zu sehen, welche Objekte es verwendet.
Die DLL wurde in C++ (nicht .NET) geschrieben. Gibt es ein Tool, das C++ - Dateien dekompiliert/disassembliert?Welches Werkzeug kann eine DLL in C++ Quellcode dekompilieren?

+0

Dies ist kein Duplikat. Die andere Frage bezieht sich speziell auf Pro * C/C++, eine Oracle-Sprache zum Schreiben und Lesen ihrer RDMS-Systeme. Außerdem wurde die andere Frage als off-topic abgeschlossen. Diese Frage ist gültig und verdient meiner Meinung nach eine Antwort. – Blisterpeanuts

Antwort

21

Dies könnte unmöglich oder zumindest sehr schwer sein. Der Inhalt der DLL hängt (sehr) nicht davon ab, dass sie in C++ geschrieben wird; Es ist alles Maschinencode. Dieser Code wurde möglicherweise optimiert, so dass viele Informationen, die im ursprünglichen Quellcode vorhanden waren, einfach weg sind.

Das gesagt, here ist ein Artikel, der eine Menge Material darüber geht, dies zu tun.

4

Ich denke, eine C++ DLL ist eine Maschinencode-Datei. Daher führt das Dekompilieren nur zu Assemblercode. Wenn Sie das lesen und C++ daraus erstellen können, sollten Sie loslegen.

+3

gibt es nicht schon etwas, das diese Maschinencodedatei etwas auf c oder C++ abbildet? – FidEliO

3

Es gibt wirklich keine Möglichkeit, dies zu tun, da die meisten nützlichen Informationen im Kompilierungsprozess verworfen werden. Sie können jedoch einen Blick auf this site werfen, um zu sehen, ob Sie eine Möglichkeit finden, etwas aus der DLL zu extrahieren.

5

Es gibt keine Decompiler, die ich kenne. W32dasm ist gut Win32 Disassembler.

Verwandte Themen