Hallo,
Preisfrage:
Kollege hat ein QBasic-Programm gebildet.
Nun ist die Diskette, auf der das war, beschädigt.
Nur noch die exe-Datei des kompilierten Textes ist noch vorhanden.
Gibt es eine Möglichkeit, die exe-Datei auf den Entwurf in QBasic
zurückzuführen, so dass er sie weiter bearbeiten kann?
Wahrscheinlich auch für IT-Kenner schon höhere Mathematik.
Kollege würde sich sehr freuen.
MfG
juergen
Programmieren - alles kontrollieren 4.935 Themen, 20.621 Beiträge
Frage deutsch
~~~~~~~~~~~~~~
Kann ich ein QuickBasic EXE-Programm in ein BAS-Programm zurückübersetzen?
Wie kann man eine BAS-Datei oder eine Library aus einer EXE-Datei erzeugen?
Gibt es einen Decompiler für QB?
Question English
~~~~~~~~~~~~~~
Is there a way to decompile a qb executable or get the code from .qlb's?
Can I decompile a QB executable back to a QB sorce program?
Antwort 1
~~~~~~~~~~
[ von BufferUnderrun , 11.1999 ]
Nein!!! So ein Recompiler ist nicht realisierbar! Das wäre, als wollte man aus vielen Big Macs wieder eine Kuh erzeugen ;-)
Es gibt jedoch sogenannte Disassembler, die EXE-Dateien in Assemblercode (zurück)verwandeln können - natürlich auch von QuickBasic erzeugte EXE-Programme.
Bezüglich Assembler siehe auch die Frage ==> "Was ist ein Assembler und wie verwende ich ihn in QB?".
Der bekannteste Disassembler ist wohl WIN32DISASM. Unter DOS tut Hiew600 (eigentlich ein HEX-Editor) gute Dienste.
Es gibt aber auch Verrückte, die versucht haben einen Disassembler in QBasic zu programmieren. Diesen Disassembler "QBDISASM" müsste man irgendwo im Internet herunterladen können.
Es gibt auch ein Tool ASM2BAS finden. Nein! Es verwandelt nicht Assembler in QBasic, das ist ziemlich unmöglich. Aber es integriert Assembler-Befehle in QBasic.
Wenn ihr also beide Schritte anwendet (wobei letzterer nach meiner Erfahrung nur selten mit dem Auswurf eines Disassemblers zurecht kommt) hättet ihr QUASI das Programm in QBASIC zurückverwandelt und könntet es mit dem QuickBasic-Interpreter ändern und ausführen wobei ihr es aber vermutlich nicht verstehen würdet, da es ja nur aus in QBasic integrierte Assembler-Befehlen besteht.
Um an die Hamburger/Kuh - Parallele (die es wohl am treffensten beschreibt) anzuknüpfen: Aus dem Haufen Hamburger wird schließlich ein halbverdauter Hackfleischberg, der die Form eines Flußpferds hat, welches den Kopf einer mongolischen Wüstenrennmaus und die Füße eines Brachiosaurus trägt ;-)
Antwort 2
~~~~~~~~~
[ von Thomas Antoni, 18.5.2002 ]
BAS aus EXE - das geht nicht. Das wäre ja, als wenn man aus einem Haufen Big Macs wieder eine Kuh erzeugen könnte *hihihi*
Warum sollte das gehen? Einem Haufen Maschinenbefehlen kann man ja nicht mehr ansehen, durch welches Hochsprachekonstrukt sie ehemals erzeugt wurden.
Was man natürlich immer machen kann ist, aus Maschinencode wieder ein Assembler-Quellspracheprogramm erzeugen. Dafür gibt es EXE2ASM-Converter. Nur damit kann man recht wenig anfangen, weil alle symbolischen Variablen-Namen und Adressen
durch Hexa-Zahlen ersetzt sind und alle Kommentare fehlen.
Außerdem stellt sich die Frage "Wozu brauche ich überhaupt einen Decompiler?"
Bei eigenen Programmen macht man ja immer eine regelmäßige Datensicherung seiner wertvollen BAS-Dateien.
Bei fremden Programmen beachtet man fairerweise das Copyright des Autors und stiehlt nicht durch Decompilieren sein geistiges Eigentum.
Na ja, Spaß muss sein. Aber im Ernst - einen brauchbaren EXE2BAS-Compiler gibt es leider nicht. Wer mir das Gegenteil beweist, bekommt von mir eine Kiste Sekt!
Auszug aus Monster FAQ www.qbasic.de