Programmieren - alles kontrollieren 4.937 Themen, 20.647 Beiträge

.exe in programmcode umwandeln

broty / 2 Antworten / Flachansicht Nickles

hallo leute
ich probiere grade mit visual basic kleine programme zu schreiben. da ich erst 14 jahre alt bin und noch kaum erfahrung hab lassen diese sehr zu wünschen übrig. kann man eine .exe datei wieder in ihren quellcode umwqandeln???
denn wenn ichmal sehe wie so ein programm aufgebaut ist verstehe ich vllt was mehr.
also kann mir jemand sagen ob und wie man eine .exe in einen quellcode zurückbekommt???

Dankes schon mal vorher


Broty

bei Antwort benachrichtigen
Herman Munster broty „.exe in programmcode umwandeln“
Optionen

Radio Eriwan antwortet: "... im Prinzip JA!". Mit Betonung auf "im Pinzip"!

Die Sache ist die: zunächst muß man wissen, in welcher Programmiersprache dieses Programm erstellt wurde. Dann muß man wissen, welcher Compiler von welcher Firma in welcher Version mit welchen Compileroptionen verwendet wurde. Dann muß man wissen, welches z.B. Pascal-oder Basic-Konstrukt welche Maschinensprachenbefehle erzeugt.

"Im Prinzip" !! sollte man dann bei Vorliegenden einer bestimmten Maschinencode-Abfolge sagen können, daß die und die Pascal oder Basic usw -Befehle verwendet wurden. Dies müßte - wieder "im Prinzip" - umso leichter gelingen, je weniger stark optimiert wurde, was ja letztlich auf weniger "Füllsel-Code" hinausläuft, der aber wahrscheinlich die korrekte Compiler-Erkennung erleichtern würde. Vielleicht auch nicht...

Gut möglich ist das jedoch, wenn man weiß, daß dieses Programm 100%ig in Assembler geschrieben wurde. De-Assemblierer gibt es manche. Ausgehend vom Einsprungprunkt bei EXE- oder COM- usw. -Programmen jedes Byte untersucht wird, ob es für sich alleine schon einen Assembler-Befehl darstellt oder ob noch ein oder zwei oder noch mehr Bytes dazugehören, um ihn zu komplettieren. Das ergibt dann, ab welchen Byte der nächste neue Befehl beginnt. Schwierig wird dann auch hier, wenn in den Original-Assembler-Quelltext Daten eingebettet werden. Es ist manchmal nicht eindeutig, zu sagen, welches Byte noch Quelltext oder schon zu den eingebetteten Daten zählt.

Im Prinzip könnte man nun jedes Programm, egal, in welcher Programmiersprache es erstellt wurde, im einen Assembler-Quelltext überführen. Da man aber nun Hochsprachen u.a. zu dem Zweck erfunden hat, sich die monströsen und apokalyptisch unübersichtlichen Assembler-Quelltext-Bestien ersparen zu können, ist das - insbesondere für Anfänger!! - definitiv die falscher Herangehensart.

Besser wäre es, sich in einer gut sortierten Buchhandlung nach einer Einführungsliteratur umzusehen. Darin findet sich dann stets auch Programm-Material, das man einsehen und verändern kann.

bei Antwort benachrichtigen