FAQ 0030: Anwendung dekompilieren
von Florian Rittmeier
Frage
Ich habe ein Programm erstellt, bei einem Crash sind leider alle Daten verloren gegangen. Mir liegt nur noch die EXE des Projektes vor.
Wie kann ich die Anwendung in ein VB-Projekt zurück konvertieren?
Informationen
Es gibt keinen Decompiler für VB5 und VB6.
Warum?
VB5/6 erzeugt standardmäßig "Native Code". Dies bedeutet, daß in der EXE Maschinencode steht, wie ihn auch C oder C++ produzieren.
Geschichte
Microsoft entschloss sich mit VB5 auf nativen Code zu setzen, da man den schon hochoptimierten Pseudo-Code nicht schneller bekam.
Dies ist auch der Grund warum Programme in der IDE langsamer ablaufen.
Für Visual Basic bis einschließlich Version 3 gibt es einen funktionierenden Decompiler. Dieser wurde von Dr. Dietrich geschrieben. Im Netz kann man ihn finden, indem man nach "Dodi's Decompiler" sucht. Dr. Dietrichs eigene Homepage ist jedoch nicht mehr online.
Dr. Dietrich versuchte, seinen Decompiler auch für VB4 und VB5 anzupassen. Jedoch wurde es von Version zu Version schwieriger, Informationen aus den Executables zu bekommen.
Seine Homepage:
http://ourworld.compuserve.com/homepages/DoDi/homepage.htm
Praktisch gesehen kann man höchstens einen Disassembler verwenden. Dann muss man sich jedoch durch tausende von Assemblerzeilen durchkämpfen. Wer das möchte kann es natürlich machen. Hierzu muss man in einer Suchmaschine seiner/ihrer Wahl nach Disassembler suchen.
Es gibt im Netz immer mal das ein oder andere Tool, mit dem man angeblich zumindestens Teile seines VB-Sourcecodes zurück bekommt. Bisher scheint es aber kein wirklich funktionierendes Programm zu geben.
Nachtrag von Herfried K. Wagner:
http://members.v3space.com/blackfenix/wktvbdebug/bin/vbdebug14e.exe (Achtung: EXE-File!)
Besser ist:
http://members.v3space.com/blackfenix/wktvbdebug/downloads.htm
Am besten mit einer alten Version des Netscape Navigators mit abgeschaltetem Javascript besuchen.
Einen Decompiler für .NET gibt es hier: Reflector .NET
Ein weiterer ist hier zu finden: http://www.saurik.com/net/exemplar/.
Ihre Meinung
Falls Sie Fragen zu dieser FAQ haben, Ihre Erfahrung mit anderen Nutzern austauschen möchten oder auf eine Ergänzung hinweisen möchten, dann teilen Sie uns diese bitte in einem der unten vorhandenen Themen oder über einen neuen Beitrag mit. Hierzu können sie einfach einen Beitrag in einem zum Thema passenden Forum anlegen, welcher automatisch mit dieser Seite verknüpft wird.